Adding ticket generation and booking for staff employees logic

This commit is contained in:
Muluhabt
2026-07-25 11:20:47 +03:00
parent 7320c359d1
commit 2a0fd9bda5
29 changed files with 2659 additions and 74 deletions

View File

@@ -0,0 +1,10 @@
-- Adds Booking.payToken/payTokenExpiresAt: an opaque, expiring token used by the
-- reserve-seat "issue booking (passenger)" flow to let a traveler pay via an SMS'd
-- link without needing a portal session (see GuestBookingService.issueBookingFromReservation
-- and BookingsService.getByPayToken). Nullable — only set for reservation-issued bookings
-- awaiting passenger payment; a normal guest/portal booking never sets it.
ALTER TABLE "passenger"."Booking" ADD COLUMN IF NOT EXISTS "payToken" TEXT;
ALTER TABLE "passenger"."Booking" ADD COLUMN IF NOT EXISTS "payTokenExpiresAt" TIMESTAMP(3);
CREATE UNIQUE INDEX IF NOT EXISTS "Booking_payToken_key" ON "passenger"."Booking"("payToken");

View File

@@ -550,6 +550,8 @@ model Booking {
paidAt DateTime?
paymentReminderSentAt DateTime?
packageDepartureStationId String?
payToken String? @unique
payTokenExpiresAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
passenger Passenger @relation(fields: [passengerId], references: [id])