// 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 User { id Int @id @default(autoincrement()) email String @unique username String @unique password String name String? role String @default("admin") createdAt DateTime @default(now()) updatedAt DateTime @updatedAt conversations Conversation[] } model Category { id Int @id @default(autoincrement()) name String @unique icon String? description String? agents Agent[] createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } model Agent { id Int @id @default(autoincrement()) name String slug String @unique description String icon String? categoryId Int? category Category? @relation(fields: [categoryId], references: [id]) features String @default("") usageCount Int @default(0) status String @default("active") createdAt DateTime @default(now()) updatedAt DateTime @updatedAt conversations Conversation[] } model News { id Int @id @default(autoincrement()) title String content String type String @default("news") published Boolean @default(false) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } model Conversation { id Int @id @default(autoincrement()) agentId Int agent Agent @relation(fields: [agentId], references: [id], onDelete: Cascade) userId Int? user User? @relation(fields: [userId], references: [id], onDelete: SetNull) title String @default("新对话") messages Message[] createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } model Message { id Int @id @default(autoincrement()) conversationId Int conversation Conversation @relation(fields: [conversationId], references: [id], onDelete: Cascade) role String // 'user' 或 'assistant' content String timestamp DateTime @default(now()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt }