/** * Kysely database type definitions. * Defines the table schemas for type-safe queries. */ export interface FeedItemTable { id: string; source: string; title: string; url: string; published_at: string; // ISO 8601 format content: string | null; summary: string | null; created_at: string; // ISO 8601 format } export interface SeenIdTable { id: string; seen_at: string; // ISO 8601 format } export interface FeedSourceTable { id: string; url: string; name: string | null; format: 'rss' | 'atom'; poll_interval_ms: number; is_active: number; // SQLite stores boolean as 0/1 last_fetched_at: string | null; // ISO 8601 last_success_at: string | null; // ISO 8601 consecutive_failures: number; created_at: string; // ISO 8601 updated_at: string; // ISO 8601 } // Database interface used by Kysely export interface Database { feed_items: FeedItemTable; seen_ids: SeenIdTable; feed_sources: FeedSourceTable; }