Updated seat class and coach mangement

This commit is contained in:
Roba Boru
2026-05-19 16:49:22 +03:00
parent 071a57a668
commit a73277ae38
23 changed files with 310 additions and 61 deletions

View File

@@ -35,10 +35,16 @@ enum SeatStatus {
BLOCKED
}
enum ServiceClass {
ECONOMY
BUSINESS
FIRST
model SeatClass {
id String @id @default(uuid())
name String @unique
description String?
basePrice Int
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
coaches Coach[]
fareRules FareRule[]
}
enum BookingStatus {
@@ -249,12 +255,13 @@ model TripLiveStatus {
}
model Coach {
id String @id @default(uuid())
id String @id @default(uuid())
tripId String
label String
serviceClass ServiceClass
trip Trip @relation(fields: [tripId], references: [id])
seats Seat[]
seatClassId String
trip Trip @relation(fields: [tripId], references: [id])
seatClass SeatClass @relation(fields: [seatClassId], references: [id])
seats Seat[]
@@unique([tripId, label])
}
@@ -283,11 +290,12 @@ model SeatHold {
}
model FareRule {
id String @id @default(uuid())
id String @id @default(uuid())
tripId String?
route String?
serviceClass ServiceClass
seatClassId String
baseFareMinor Int
seatClass SeatClass @relation(fields: [seatClassId], references: [id])
currency String @default("ETB")
refundable Boolean @default(true)
validFrom DateTime