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? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt agents Agent[] } model Agent { id Int @id @default(autoincrement()) name String slug String @unique description String icon String? categoryId Int? features String @default("") hotQuestions String @default("[]") quickQuestions String @default("[]") usageCount Int @default(0) status String @default("active") createdAt DateTime @default(now()) updatedAt DateTime @updatedAt category Category? @relation(fields: [categoryId], references: [id]) 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 userId Int? title String @default("新对话") createdAt DateTime @default(now()) updatedAt DateTime @updatedAt user User? @relation(fields: [userId], references: [id]) agent Agent @relation(fields: [agentId], references: [id], onDelete: Cascade) messages Message[] } model Message { id Int @id @default(autoincrement()) conversationId Int role String content String timestamp DateTime @default(now()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt conversation Conversation @relation(fields: [conversationId], references: [id], onDelete: Cascade) }