Files
biblical-guide.com/types/index.ts
2025-11-11 19:08:31 +00:00

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
}