70
types.ts
Normal file
70
types.ts
Normal file
@@ -0,0 +1,70 @@
|
||||
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user