generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") } model User { id BigInt @id @default(autoincrement()) phone String @unique @db.VarChar(32) nickname String? @db.VarChar(100) avatarUrl String? @map("avatar_url") @db.VarChar(512) status Int @default(1) @db.SmallInt createdAt DateTime @default(now()) @map("created_at") updatedAt DateTime @updatedAt @map("updated_at") sessions ChatSession[] @@map("users") } model ChatSession { id BigInt @id @default(autoincrement()) userId BigInt @map("user_id") user User @relation(fields: [userId], references: [id], onDelete: Cascade) title String? @db.VarChar(200) messages ChatMessage[] createdAt DateTime @default(now()) @map("created_at") updatedAt DateTime @updatedAt @map("updated_at") @@index([userId]) @@map("chat_sessions") } model ChatMessage { id BigInt @id @default(autoincrement()) sessionId BigInt @map("session_id") session ChatSession @relation(fields: [sessionId], references: [id], onDelete: Cascade) role String @db.VarChar(20) content String @db.Text tokenCount Int @default(0) @map("token_count") provider String? @db.VarChar(64) createdAt DateTime @default(now()) @map("created_at") @@index([sessionId]) @@map("chat_messages") }