71 lines
1.7 KiB
TypeScript
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;
|
|
}
|