MindSpark / types.ts
TheK3R1M's picture
Initial secure upload
fd4dc0d verified
export enum NoteType {
ROOT = 'ROOT',
TEXT = 'TEXT',
CODE = 'CODE',
IMAGE = 'IMAGE',
}
export enum GenerationStatus {
IDLE = 'IDLE',
PLANNING = 'PLANNING',
GENERATING = 'GENERATING',
COMPLETED = 'COMPLETED',
ERROR = 'ERROR',
}
export interface NoteStep {
title: string;
description: string;
type: 'text' | 'code' | 'image';
agentRole?: string;
assignedAgent?: string;
}
export interface ProjectPlan {
title: string;
summary: string;
steps: NoteStep[];
}
export interface Category {
id: string;
name: string;
color: string;
}
export interface Attachment {
id: string;
type: 'image' | 'audio' | 'file';
url: string; // Base64 data URL
name: string;
}
export interface Note {
id: string;
projectId: string;
parentId: string | null;
title: string;
content: string; // Markdown or Image URL
type: NoteType;
status: GenerationStatus;
children: string[]; // IDs of children
timestamp: number;
attachments?: Attachment[];
tags?: string[];
linkedNoteIds?: string[];
isTask?: boolean;
isCompleted?: boolean;
dueDate?: number;
agentRole?: string;
assignedAgent?: string;
lastEditedBy?: string;
lastEditedAt?: number;
}
export interface StyleMemory {
id: string;
userId: string;
projectName: string;
styleKeywords: string[];
summary: string;
timestamp: number;
}
export interface AITemplate {
id: string;
name: string;
prompt: string;
icon: string;
}
export interface Project {
id: string;
title: string;
summary?: string;
originalPrompt?: string;
rootNoteId: string;
createdAt: number;
categoryId?: string;
creatorId: string;
creatorEmail?: string;
collaborators?: string[]; // Array of user IDs
}