-- 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");
