// 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" previewFeatures = ["postgresqlExtensions"] } datasource db { provider = "postgresql" url = env("DATABASE_URL") } // ================================ // Enums // ================================ enum ProjectStatus { ACTIVE ARCHIVED } enum LinkType { WEBSITE GITHUB HUGGINGFACE PAPER } // ================================ // Models // ================================ model Project { id String @id @default(cuid()) name String nameEn String? slug String @unique description String descriptionEn String? content String? @db.Text contentEn String? @db.Text status ProjectStatus @default(ACTIVE) source String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt // Relations tags Tag[] links ExternalLink[] // Indexes @@index([status, createdAt], map: "idx_project_status_createdAt") @@index([slug], map: "idx_project_slug") @@map("projects") } model Tag { id String @id @default(cuid()) name String @unique nameEn String? slug String @unique createdAt DateTime @default(now()) // Relations projects Project[] // Indexes @@index([slug], map: "idx_tag_slug") @@map("tags") } model ExternalLink { id String @id @default(cuid()) type LinkType url String title String? projectId String // Relations project Project @relation(fields: [projectId], references: [id], onDelete: Cascade) // Indexes @@index([projectId], map: "idx_link_projectId") @@index([type], map: "idx_link_type") @@map("external_links") }