Files
my-loves-calendar/types.ts
drjones c373bbdab4 first commit
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 21:05:27 -08:00

71 lines
1.7 KiB
TypeScript

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;
}