generated from google-gemini/aistudio-repository-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypes.ts
More file actions
55 lines (47 loc) · 1.18 KB
/
types.ts
File metadata and controls
55 lines (47 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
export interface Tag {
id: string;
name: string;
color: string;
}
export type TodoType = 'once' | 'daily' | 'weekly' | 'target';
export type TodoPriority = 'normal' | 'important' | 'urgent';
export interface Todo {
id: string;
text: string;
completed: boolean; // For 'once' and 'target'
completedDates?: string[]; // For 'daily' and 'weekly', stores YYYY-MM-DD strings
type: TodoType;
priority: TodoPriority;
date: string; // Creation ISO String
tagIds: string[];
}
export interface BlogPost {
id: string;
title: string;
content: string; // Markdown
date: string; // ISO String
tagIds: string[];
wordCount: number;
}
export interface PomodoroRecord {
id: string;
startTime: string;
duration: number; // minutes
tagIds: string[];
}
export interface DayAnnotation {
date: string; // YYYY-MM-DD
color: string;
label: string;
}
export interface AppData {
appName: string;
motto: string;
todos: Todo[];
posts: BlogPost[];
tags: Tag[];
pomodoroRecords: PomodoroRecord[];
images: Record<string, string>;
annotations: Record<string, DayAnnotation>; // New: Manual day tagging
}
export type Module = 'todo' | 'blog' | 'timer' | 'stats' | 'tags';