generator client { provider = "prisma-client-js" } datasource db { provider = "sqlite" url = env("DATABASE_URL") } /// Категория изделий (игрушки, сувениры и т.д.) model Category { id String @id @default(cuid()) name String slug String @unique sort Int @default(0) products Product[] } model Product { id String @id @default(cuid()) title String slug String @unique shortDescription String? description String? /// Цена в копейках (целое число, без дробной части) priceCents Int imageUrl String? published Boolean @default(false) inStock Boolean @default(true) leadTimeDays Int? category Category @relation(fields: [categoryId], references: [id], onDelete: Cascade) categoryId String createdAt DateTime @default(now()) updatedAt DateTime @updatedAt images ProductImage[] } model ProductImage { id String @id @default(cuid()) url String sort Int @default(0) createdAt DateTime @default(now()) product Product @relation(fields: [productId], references: [id], onDelete: Cascade) productId String @@index([productId, sort]) } model User { id String @id @default(cuid()) email String @unique name String? passwordHash String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt codes AuthCode[] } model AuthCode { id String @id @default(cuid()) email String codeHash String purpose String expiresAt DateTime usedAt DateTime? createdAt DateTime @default(now()) user User? @relation(fields: [userId], references: [id], onDelete: Cascade) userId String? @@index([email, purpose]) @@index([expiresAt]) }