| export enum Tab { | |
| HOME = 'HOME', | |
| RECORD = 'RECORD', | |
| COMMUNITY = 'COMMUNITY', | |
| MINE = 'MINE' | |
| } | |
| export enum MoodAction { | |
| MOOD = 'MOOD', | |
| INSPIRATION = 'INSPIRATION', | |
| TODO = 'TODO' | |
| } | |
| export enum RecordSource { | |
| MOOD = 'MOOD', | |
| INSPIRATION = 'INSPIRATION', | |
| VOICE = 'VOICE', | |
| MANUAL = 'MANUAL' | |
| } | |
| export enum MoodType { | |
| HAPPY = 'HAPPY', // Warm Pink/Coral | |
| CALM = 'CALM', // Lavender | |
| TIRED = 'TIRED', // Foggy Blue | |
| ANXIOUS = 'ANXIOUS', // Warm Beige/Grey | |
| HOPEFUL = 'HOPEFUL' // Creamy Yellow | |
| } | |
| export interface NavItem { | |
| id: Tab; | |
| label: string; | |
| iconName: string; | |
| } | |
| export interface ActionItem { | |
| id: MoodAction; | |
| label: string; | |
| iconName: string; | |
| } | |
| export interface RecordItem { | |
| id: string; | |
| content: string; | |
| createdAt: number; // Unix timestamp | |
| sourceType: RecordSource; | |
| } | |
| export interface CommunityPost { | |
| id: string; | |
| user: { | |
| name: string; | |
| avatarColor: string; // Tailwind bg class | |
| }; | |
| content: string; | |
| createdAt: number; | |
| likeCount: number; | |
| isLiked: boolean; | |
| commentCount: number; | |
| } | |
| export interface Profile { | |
| name: string; | |
| birthday: string; // e.g., "Mar 12" | |
| moodStatus: string; | |
| avatarUrl?: string; // Optional image URL | |
| } | |
| export interface DeviceStatus { | |
| isConnected: boolean; | |
| batteryLevel: number; // 0-100 | |
| deviceName: string; | |
| } | |
| export interface MoodItem { | |
| id: string; | |
| type: MoodType; | |
| date: number; | |
| intensity: number; // 0-1 (affects size) | |
| x?: number; // relative position percentage (optional for random placement) | |
| y?: number; // relative position percentage | |
| } | |
| export interface InspirationItem { | |
| id: string; | |
| content: string; | |
| createdAt: number; | |
| tags?: string[]; | |
| } | |
| export type TodoCategory = 'study' | 'work' | 'life' | 'health'; | |
| export interface TodoItem { | |
| id: string; | |
| title: string; | |
| createdAt: number; | |
| scheduledAt?: number; | |
| isDone: boolean; | |
| category?: TodoCategory; | |
| location?: string; | |
| time?: string; | |
| } |