generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") } model User { id Int @id @default(autoincrement()) firstName String @default("") lastName String @default("") phone String @unique email String @default("") password String? companyName String? inn BigInt? ogrn BigInt? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt yachts Yacht[] reservations Reservation[] @relation("Reservator") reviews Review[] refreshTokens RefreshToken[] } model Yacht { id Int @id @default(autoincrement()) name String model String? year Int length Float speed Int? @default(0) minCost Int? @default(0) mainImageUrl String? @default("") galleryUrls Json? hasQuickRent Boolean @default(false) isFeatured Boolean @default(false) topText String? comfortCapacity Int? @default(0) maxCapacity Int? @default(0) width Float? @default(0) cabinsCount Int? @default(0) matherial String? @default("") power Int? @default(0) description String? @default("") userId Int createdAt DateTime @default(now()) updatedAt DateTime @updatedAt owner User @relation(fields: [userId], references: [id], onDelete: Cascade) reservations Reservation[] reviews Review[] @@map("yachts") } model Reservation { id Int @id @default(autoincrement()) yachtId Int reservatorId Int startUtc Int endUtc Int yacht Yacht @relation(fields: [yachtId], references: [id], onDelete: Cascade) reservator User @relation("Reservator", fields: [reservatorId], references: [id], onDelete: Cascade) @@map("reservations") } model Review { id Int @id @default(autoincrement()) reviewerId Int yachtId Int starsCount Int description String yacht Yacht @relation(fields: [yachtId], references: [id], onDelete: Cascade) reviewer User @relation(fields: [reviewerId], references: [id], onDelete: Cascade) @@map("reviews") } model RefreshToken { id Int @id @default(autoincrement()) token String @unique userId Int expiresAt DateTime user User @relation(fields: [userId], references: [id], onDelete: Cascade) @@map("refresh_tokens") } model VerificationCode { id Int @id @default(autoincrement()) phone String code String createdAt DateTime @default(now()) @@index([phone]) @@map("verification_codes") } model SmsSendLog { id Int @id @default(autoincrement()) phone String ip String sentAt DateTime @default(now()) @@index([phone, sentAt]) @@index([ip, sentAt]) @@map("sms_send_logs") } model VerifyBlock { id Int @id @default(autoincrement()) phone String ip String count Int @default(0) blockedUntil DateTime @@unique([phone, ip]) @@map("verify_blocks") }