Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
97 lines
1.8 KiB
TypeScript
97 lines
1.8 KiB
TypeScript
export interface User {
|
|
id: string
|
|
email: string
|
|
name: string | null
|
|
role: string
|
|
theme: string
|
|
fontSize: string
|
|
createdAt: Date
|
|
updatedAt: Date
|
|
lastLoginAt: Date | null
|
|
}
|
|
|
|
export interface BibleVerse {
|
|
id: string
|
|
chapterId: string
|
|
verseNum: number
|
|
text: string
|
|
version: string
|
|
chapter: {
|
|
chapterNum: number
|
|
book: {
|
|
name: string
|
|
}
|
|
}
|
|
}
|
|
|
|
export interface ChatMessage {
|
|
id: string
|
|
userId: string
|
|
role: 'user' | 'assistant'
|
|
content: string
|
|
metadata?: any
|
|
createdAt: Date
|
|
}
|
|
|
|
export interface Bookmark {
|
|
id: string
|
|
userId: string
|
|
verseId: string
|
|
note: string | null
|
|
color: string
|
|
createdAt: Date
|
|
verse: BibleVerse
|
|
}
|
|
|
|
export interface PrayerRequest {
|
|
id: string
|
|
userId: string | null
|
|
content: string
|
|
isAnonymous: boolean
|
|
isPublic: boolean
|
|
language: string
|
|
prayerCount: number
|
|
createdAt: Date
|
|
updatedAt: Date
|
|
}
|
|
|
|
// Bible Reader 2025 Types
|
|
export interface BibleChapter {
|
|
id: string
|
|
bookId: number
|
|
bookName: string
|
|
chapter: number
|
|
verses: BibleVerse[]
|
|
timestamp?: number
|
|
}
|
|
|
|
export interface ReadingPreference {
|
|
fontFamily: string // 'georgia', 'inter', 'atkinson', etc.
|
|
fontSize: number // 12-32
|
|
lineHeight: number // 1.4-2.2
|
|
letterSpacing: number // 0-0.15
|
|
textAlign: 'left' | 'center' | 'justify'
|
|
backgroundColor: string // color code
|
|
textColor: string // color code
|
|
margin: 'narrow' | 'normal' | 'wide'
|
|
preset: 'default' | 'dyslexia' | 'highContrast' | 'minimal' | 'custom'
|
|
}
|
|
|
|
export interface UserAnnotation {
|
|
id: string
|
|
verseId: string
|
|
chapterId: string
|
|
type: 'bookmark' | 'highlight' | 'note' | 'crossRef'
|
|
content?: string
|
|
color?: string // for highlights
|
|
timestamp: number
|
|
synced: boolean
|
|
}
|
|
|
|
export interface CacheEntry {
|
|
chapterId: string
|
|
data: BibleChapter
|
|
timestamp: number
|
|
expiresAt: number
|
|
}
|