export type UserRole = 'mom' | 'dad'; export type EventCategory = 'general' | 'chore' | 'date' | 'work' | 'fun' | 'magic'; export type UserStatus = 'online' | 'busy' | 'sleeping' | 'casting_spells' | 'thinking' | 'offline'; export type ZodiacSign = 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces' | 'Unknown'; export type Familiar = 'Cat' | 'Owl' | 'Toad' | 'Bat' | 'Crow' | 'Wolf' | 'None'; export type AIProvider = 'ollama' | 'gemini'; export interface User { username: string; role: UserRole; avatarColor: string; } export interface Collaborator { role: UserRole; status: UserStatus; lastActive: Date; currentAction?: string; } export interface CalendarEvent { id: string; title: string; description?: string; startTime: string; // ISO string endTime: string; // ISO string createdBy: UserRole; category: EventCategory; isAllDay?: boolean; color?: string; location?: string; } export interface AppSettings { momColor: string; dadColor: string; mcpServerUrl: string; enableMcp: boolean; aiProvider: AIProvider; ollamaUrl: string; ollamaModel: string; momZodiac: ZodiacSign; dadZodiac: ZodiacSign; familiar: Familiar; } export interface PulseAnalysis { harmonyScore: number; vibe: string; burnoutWarning: string | null; upcomingConflicts: string[]; smartNudges: string[]; // Suggestions like "Text Mom good luck on her meeting" } export interface DreamEntry { id: string; date: string; user: UserRole; content: string; interpretation: string; } export interface ChatMessage { id: string; role: 'user' | 'assistant'; content: string; timestamp: Date; isSystem?: boolean; }