Files
senaro_dealer_api/prisma/schema.prisma
T
2026-10-01 11:52:17 +05:30

129 lines
3.8 KiB
Plaintext

generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
model User {
id String @id @default(cuid())
name String
phone String @unique
role String
dealerId String?
dealer Dealer? @relation("DealerStaff", fields: [dealerId], references: [id])
currentOtp String?
otpExpiresAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
assignments DealerAssignment[] @relation("SalesRepAssignments")
stageLogs StageLog[]
transfers StockTransfer[]
events Event[]
servicePoints ServicePoint[]
}
model Dealer {
id String @id @default(cuid())
name String
code String @unique
district String?
address String?
phone String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
staff User[] @relation("DealerStaff")
assignments DealerAssignment[]
stocks Stock[]
transfersFrom StockTransfer[] @relation("TransferFrom")
transfersTo StockTransfer[] @relation("TransferTo")
events Event[]
}
model DealerAssignment {
salesRepId String
dealerId String
createdAt DateTime @default(now())
salesRep User @relation("SalesRepAssignments", fields: [salesRepId], references: [id], onDelete: Cascade)
dealer Dealer @relation(fields: [dealerId], references: [id], onDelete: Cascade)
@@id([salesRepId, dealerId])
}
model Stock {
id String @id @default(cuid())
chassisNumber String @unique
engineNumber String @unique
model String
color String
currentDealerId String
currentDealer Dealer @relation(fields: [currentDealerId], references: [id])
dateReceived DateTime @default(now())
currentStage String @default("received")
paymentType String?
leaseProviderType String?
financeCompanyName String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
stageLogs StageLog[]
transfers StockTransfer[]
}
model StageLog {
id String @id @default(cuid())
stockId String
stock Stock @relation(fields: [stockId], references: [id], onDelete: Cascade)
stage String
loggedAt DateTime @default(now())
actorId String?
actor User? @relation(fields: [actorId], references: [id])
}
model StockTransfer {
id String @id @default(cuid())
stockId String
stock Stock @relation(fields: [stockId], references: [id], onDelete: Cascade)
fromDealerId String
fromDealer Dealer @relation("TransferFrom", fields: [fromDealerId], references: [id])
toDealerId String
toDealer Dealer @relation("TransferTo", fields: [toDealerId], references: [id])
actorId String
actor User @relation(fields: [actorId], references: [id])
transferredAt DateTime @default(now())
}
model Event {
id String @id @default(cuid())
dealerId String
dealer Dealer @relation(fields: [dealerId], references: [id])
planType String
month Int?
year Int?
title String
description String
expense Float
imageUrls String @default("[]")
createdById String
createdBy User @relation(fields: [createdById], references: [id])
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model ServicePoint {
id String @id @default(cuid())
name String
district String
address String?
phone String?
notes String?
createdById String
createdBy User @relation(fields: [createdById], references: [id])
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}