Booking and pricing related updates

This commit is contained in:
Stephanos A
2026-06-18 14:02:11 +03:00
parent aefee5027a
commit b491f39d42
10 changed files with 410 additions and 626 deletions

View File

@@ -1,5 +1,6 @@
generator client {
provider = "prisma-client-js"
provider = "prisma-client-js"
previewFeatures = ["multiSchema"]
}
datasource db {
@@ -79,7 +80,6 @@ model CoachType {
updatedAt DateTime @updatedAt
coaches Coach[]
seatClasses SeatClass[]
@@schema("passenger")
}
@@ -116,11 +116,11 @@ enum BookingStatus {
}
enum ReturnLegStatus {
NOT_APPLICABLE // one-way booking
BOTH_USED // passenger used both legs
OUTBOUND_ONLY // return leg not used (no-show on return)
INBOUND_ONLY // outbound leg not used, return leg used
NEITHER_USED // neither leg boarded yet
NOT_APPLICABLE
BOTH_USED
OUTBOUND_ONLY
INBOUND_ONLY
NEITHER_USED
@@schema("passenger")
}
@@ -269,7 +269,6 @@ model User {
fraudAlerts FraudAlert[]
faydaVerificationSessions FaydaVerificationSession[]
@@schema("passenger")
}
@@ -283,7 +282,6 @@ model Session {
lastActivityAt DateTime @default(now())
createdAt DateTime @default(now())
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@schema("passenger")
}
@@ -315,7 +313,6 @@ model TravelerProfile {
notes String?
createdAt DateTime @default(now())
passenger Passenger @relation(fields: [passengerId], references: [id])
@@schema("passenger")
}
@@ -350,7 +347,6 @@ model Train {
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
schedules TrainSchedule[]
@@schema("passenger")
}
@@ -412,7 +408,6 @@ model TripLiveStatus {
platformLabel String?
updatedAt DateTime @updatedAt
schedule TrainSchedule @relation(fields: [scheduleId], references: [id])
@@schema("passenger")
}
@@ -500,7 +495,6 @@ model FareRule {
validFrom DateTime
validUntil DateTime?
createdAt DateTime @default(now())
@@schema("passenger")
}
@@ -584,7 +578,6 @@ model BookingSeat {
displayFareMinor Int?
booking Booking @relation(fields: [bookingId], references: [id])
seat Seat @relation(fields: [seatId], references: [id])
@@schema("passenger")
}
@@ -600,7 +593,6 @@ model PaymentMethod {
sortOrder Int @default(0)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@schema("passenger")
}
@@ -661,7 +653,6 @@ model PaymentRefund {
status String
createdAt DateTime @default(now())
paymentIntent PaymentIntent @relation(fields: [paymentIntentId], references: [id])
@@schema("passenger")
}
@@ -681,7 +672,6 @@ model Ticket {
booking Booking @relation(fields: [bookingId], references: [id])
validationLogs GateValidationLog[]
seats TicketSeat[]
@@schema("passenger")
}
@@ -709,7 +699,6 @@ model LoyaltyAccount {
passenger Passenger @relation(fields: [passengerId], references: [id])
ledger LoyaltyLedgerEntry[]
rewards LoyaltyReward[]
@@schema("passenger")
}
@@ -722,7 +711,6 @@ model LoyaltyLedgerEntry {
balanceAfter Int
createdAt DateTime @default(now())
account LoyaltyAccount @relation(fields: [accountId], references: [id])
@@schema("passenger")
}
@@ -734,7 +722,6 @@ model LoyaltyReward {
available Boolean @default(true)
description String?
account LoyaltyAccount @relation(fields: [accountId], references: [id])
@@schema("passenger")
}
@@ -763,7 +750,6 @@ model WalletLedgerEntry {
relatedBookingId String?
createdAt DateTime @default(now())
wallet WalletAccount @relation(fields: [walletId], references: [id])
@@schema("passenger")
}
@@ -778,7 +764,6 @@ model Notification {
metadata Json?
createdAt DateTime @default(now())
passenger Passenger @relation(fields: [passengerId], references: [id])
@@schema("passenger")
}
@@ -794,7 +779,6 @@ model Promotion {
deepLink String?
active Boolean @default(true)
createdAt DateTime @default(now())
@@schema("passenger")
}
@@ -808,7 +792,6 @@ model StationCrowdSignal {
observedAt DateTime?
updatedAt DateTime @updatedAt
station Station @relation(fields: [stationId], references: [id])
@@schema("passenger")
}
@@ -820,7 +803,6 @@ model WeatherAlert {
message String
validUntil DateTime
createdAt DateTime @default(now())
@@schema("passenger")
}
@@ -828,7 +810,6 @@ model MenuCategory {
id String @id @default(uuid())
name String
items MenuItem[]
@@schema("passenger")
}
@@ -843,7 +824,6 @@ model MenuItem {
availableUntil DateTime?
schedule TrainSchedule @relation(fields: [scheduleId], references: [id])
category MenuCategory @relation(fields: [categoryId], references: [id])
@@schema("passenger")
}
@@ -858,7 +838,6 @@ model FoodOrder {
createdAt DateTime @default(now())
booking Booking @relation(fields: [bookingId], references: [id])
items FoodOrderItem[]
@@schema("passenger")
}
@@ -871,7 +850,6 @@ model FoodOrderItem {
unitPriceMinor Int?
lineTotalMinor Int
order FoodOrder @relation(fields: [orderId], references: [id])
@@schema("passenger")
}
@@ -880,7 +858,6 @@ model FaqCategory {
title String
iconKey String?
articles FaqArticle[]
@@schema("passenger")
}
@@ -891,7 +868,6 @@ model FaqArticle {
answerMarkdown String
rank Int @default(0)
category FaqCategory @relation(fields: [categoryId], references: [id])
@@schema("passenger")
}
@@ -902,7 +878,6 @@ model SupportConversation {
status SupportConversationStatus @default(OPEN)
createdAt DateTime @default(now())
messages SupportMessage[]
@@schema("passenger")
}
@@ -914,7 +889,6 @@ model SupportMessage {
attachments Json?
createdAt DateTime @default(now())
conversation SupportConversation @relation(fields: [conversationId], references: [id])
@@schema("passenger")
}
@@ -934,7 +908,6 @@ model UserPreferences {
darkMode Boolean @default(false)
language String @default("en")
user User @relation(fields: [userId], references: [id])
@@schema("passenger")
}
@@ -947,7 +920,6 @@ model Device {
trusted Boolean @default(false)
lastSeenAt DateTime @default(now())
user User @relation(fields: [userId], references: [id])
@@schema("passenger")
}
@@ -961,7 +933,6 @@ model SavedRoute {
tripCount Int @default(0)
createdAt DateTime @default(now())
passenger Passenger @relation(fields: [passengerId], references: [id])
@@schema("passenger")
}
@@ -973,7 +944,6 @@ model Journey {
currency String @default("ETB")
createdAt DateTime @default(now())
journeySegments JourneySegment[]
@@schema("passenger")
}
@@ -988,7 +958,6 @@ model JourneySegment {
arrivalStationId String
journey Journey @relation(fields: [journeyId], references: [id])
schedule TrainSchedule @relation(fields: [scheduleId], references: [id])
@@schema("passenger")
}
@@ -1032,7 +1001,6 @@ model Route {
fareRules RouteFareRule[]
segmentFares SegmentFareRule[]
schedules TrainSchedule[]
@@schema("passenger")
}
@@ -1102,7 +1070,6 @@ model Agent {
bookings AgentBooking[]
shifts AgentShift[]
commissions AgentCommission[]
@@schema("passenger")
}
@@ -1117,7 +1084,6 @@ model AgentBooking {
createdAt DateTime @default(now())
agent Agent @relation(fields: [agentId], references: [id])
booking Booking @relation(fields: [bookingId], references: [id])
@@schema("passenger")
}
@@ -1177,7 +1143,6 @@ model BookingCancellation {
processedAt DateTime?
createdAt DateTime @default(now())
booking Booking @relation(fields: [bookingId], references: [id])
@@schema("passenger")
}
@@ -1205,7 +1170,6 @@ model BaggageAllowance {
excessFeePerKg Int
currency String @default("ETB")
createdAt DateTime @default(now())
@@schema("passenger")
}
@@ -1249,7 +1213,6 @@ model NotificationTemplate {
bodyTemplate String
active Boolean @default(true)
createdAt DateTime @default(now())
@@schema("passenger")
}
@@ -1288,7 +1251,6 @@ model FraudRule {
config Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@schema("passenger")
}