// learn more about it in the docs: https://pris.ly/d/prisma-schema generator client { provider = "prisma-client-js" } datasource db { provider = "mysql" url = env("DATABASE_URL") } // This is your Prisma schema file, model Tariff { id Int @id @default(autoincrement()) name String @unique price Float description String? createdAt DateTime @default(now()) servers Server[] } model OperatingSystem { id Int @id @default(autoincrement()) name String @unique type String // linux, windows, etc template String? // путь к шаблону для контейнера createdAt DateTime @default(now()) servers Server[] } model Server { id Int @id @default(autoincrement()) userId Int tariffId Int osId Int status String @default("stopped") // running, stopped, etc createdAt DateTime @default(now()) updatedAt DateTime @updatedAt user User @relation(fields: [userId], references: [id]) tariff Tariff @relation(fields: [tariffId], references: [id]) os OperatingSystem @relation(fields: [osId], references: [id]) } model User { id Int @id @default(autoincrement()) username String email String @unique password String createdAt DateTime @default(now()) plans Plan[] @relation("UserPlans") operator Int @default(0) tickets Ticket[] @relation("UserTickets") responses Response[] @relation("OperatorResponses") checks Check[] @relation("UserChecks") balance Float @default(0) servers Server[] } model Check { id Int @id @default(autoincrement()) userId Int amount Float status String @default("pending") // pending, approved, rejected fileUrl String createdAt DateTime @default(now()) user User @relation("UserChecks", fields: [userId], references: [id]) } model Plan { id Int @id @default(autoincrement()) name String @unique price Float description String? isCustom Boolean @default(false) createdAt DateTime @default(now()) userId Int owner User @relation("UserPlans", fields: [userId], references: [id]) services Service[] @relation("PlanServices") } model Service { id Int @id @default(autoincrement()) name String @unique price Float planId Int? plan Plan? @relation("PlanServices", fields: [planId], references: [id]) } model Ticket { id Int @id @default(autoincrement()) title String message String userId Int status String @default("open") createdAt DateTime @default(now()) updatedAt DateTime @updatedAt responses Response[] @relation("TicketResponses") user User? @relation("UserTickets", fields: [userId], references: [id]) } model Response { id Int @id @default(autoincrement()) ticketId Int operatorId Int message String createdAt DateTime @default(now()) ticket Ticket @relation("TicketResponses", fields: [ticketId], references: [id]) operator User @relation("OperatorResponses", fields: [operatorId], references: [id]) }