feat(Notes): add folder management to notes, allowing notes to be categorized into folders, and update related components for folder selection and display

This commit is contained in:
Julien Froidefond
2026-01-06 09:05:27 +01:00
parent 7ce8057c6b
commit 6c4c6992a9
15 changed files with 1314 additions and 21 deletions

View File

@@ -25,6 +25,7 @@ model User {
dailyCheckboxes DailyCheckbox[]
tasks Task[] @relation("TaskOwner")
tags Tag[] @relation("TagOwner")
folders Folder[] @relation("FolderOwner")
@@map("users")
}
@@ -72,6 +73,7 @@ model Tag {
taskTags TaskTag[]
primaryTasks Task[] @relation("PrimaryTag")
noteTags NoteTag[]
folders Folder[]
@@unique([name, ownerId]) // Un nom de tag unique par utilisateur
@@map("tags")
@@ -142,13 +144,33 @@ model Note {
content String // Markdown content
userId String
taskId String? // Tâche associée à la note
folderId String? // Dossier contenant la note
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
task Task? @relation(fields: [taskId], references: [id])
folder Folder? @relation(fields: [folderId], references: [id])
noteTags NoteTag[]
}
model Folder {
id String @id @default(cuid())
name String
userId String
tagId String? // Tag associé au dossier
parentId String? // Dossier parent pour sous-dossiers
order Int @default(0)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
user User @relation("FolderOwner", fields: [userId], references: [id], onDelete: Cascade)
tag Tag? @relation(fields: [tagId], references: [id])
parent Folder? @relation("FolderHierarchy", fields: [parentId], references: [id], onDelete: Cascade)
children Folder[] @relation("FolderHierarchy")
notes Note[]
@@map("folders")
}
model NoteTag {
noteId String
tagId String