// This is your Prisma schema file, // learn more about it in the docs: https://pris.ly/d/prisma-schema generator client { provider = "prisma-client-js" } datasource db { provider = "sqlite" url = env("DATABASE_URL") } model Task { id String @id @default(cuid()) title String description String? status String @default("todo") priority String @default("medium") source String // "reminders" | "jira" sourceId String? // ID dans le système source dueDate DateTime? completedAt DateTime? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt // Métadonnées Jira jiraProject String? jiraKey String? assignee String? // Relations taskTags TaskTag[] dailyCheckboxes DailyCheckbox[] @@unique([source, sourceId]) @@map("tasks") } model Tag { id String @id @default(cuid()) name String @unique color String @default("#6b7280") isPinned Boolean @default(false) // Tag pour objectifs principaux taskTags TaskTag[] @@map("tags") } model TaskTag { taskId String tagId String task Task @relation(fields: [taskId], references: [id], onDelete: Cascade) tag Tag @relation(fields: [tagId], references: [id], onDelete: Cascade) @@id([taskId, tagId]) @@map("task_tags") } model SyncLog { id String @id @default(cuid()) source String // "reminders" | "jira" status String // "success" | "error" message String? tasksSync Int @default(0) createdAt DateTime @default(now()) @@map("sync_logs") } model DailyCheckbox { id String @id @default(cuid()) date DateTime // Date de la checkbox (YYYY-MM-DD) text String // Texte de la checkbox isChecked Boolean @default(false) type String @default("task") // "task" | "meeting" order Int @default(0) // Ordre d'affichage pour cette date taskId String? // Liaison optionnelle vers une tâche createdAt DateTime @default(now()) updatedAt DateTime @updatedAt // Relations task Task? @relation(fields: [taskId], references: [id], onDelete: SetNull) @@index([date]) @@map("daily_checkboxes") }