Migration fix

This commit is contained in:
Stephanos A
2026-06-29 12:42:37 +03:00
parent c6e56d1c4f
commit f8810253ff
5 changed files with 89 additions and 31 deletions

View File

@@ -185,7 +185,7 @@ function BookingsPageContent() {
},
},
{
key: 'contact', label: 'Contact',
key: 'contact', label: 'Primary contact',
render: (booking: any) => (
<div>
<div className="font-medium">{booking.contactPhone || booking.passenger?.phone}</div>

View File

@@ -348,14 +348,8 @@ export default function TicketsPage() {
key: 'contact',
label: 'Contact',
render: (ticket: any) => {
// Find the booking seat that matches this ticket's passenger
const matchingSeat = ticket.booking?.seats?.find((s: any) =>
s.passengerName === ticket.passengerName && s.leg === ticket.leg
);
// Try to get phone from BookingSeat first, then fall back to booking contact
const phone = matchingSeat?.phone || ticket.booking?.contactPhone || ticket.booking?.passenger?.phone || 'N/A';
const email = matchingSeat?.email || ticket.booking?.contactEmail || ticket.booking?.passenger?.email || 'N/A';
const phone = ticket.booking?.passenger?.phone || 'N/A';
const email = ticket.booking?.passenger?.email || 'N/A';
return (
<div>
@@ -372,16 +366,21 @@ export default function TicketsPage() {
label: 'Trip',
render: (ticket: any) => {
const isRoundTrip = ticket.booking?.bookingType === 'ROUND_TRIP' || ticket.booking?.bookingType === 'ROUND_TRIP_TRANSIT';
const returnArrivalAt = ticket.booking?.returnSchedule?.arrivalAt;
const returnDeparture = ticket.booking?.returnSchedule?.departureAt;
return (
<div>
<div className="font-medium">
{ticket.schedule?.originStation?.name || 'N/A'} {ticket.schedule?.destinationStation?.name || 'N/A'}
</div>
<div className="text-xs text-muted-foreground">
{ticket.schedule?.departureAt ? formatDateTimeShort(ticket.schedule.departureAt) : 'N/A'}
{isRoundTrip && (
<span> {returnArrivalAt ? formatDateTimeShort(returnArrivalAt) : 'N/A'}</span>
{!isRoundTrip ? (
<span>{ticket.schedule?.departureAt ? formatDateTimeShort(ticket.schedule.departureAt) : 'N/A'}</span>
) : (
<span>
{ticket.schedule?.departureAt ? formatDateTimeShort(ticket.schedule.departureAt) : 'N/A'} ·
{returnDeparture ? formatDateTimeShort(returnDeparture) : 'N/A'}
</span>
)}
</div>
</div>
@@ -425,9 +424,26 @@ export default function TicketsPage() {
{
key: 'arrivalDate',
label: 'Arrival Date',
render: (ticket: any) => (
<span className="text-sm">{ticket.schedule?.arrivalAt ? new Date(ticket.schedule.arrivalAt).toLocaleDateString() : '—'}</span>
),
render: (ticket: any) => {
const isRoundTrip = ticket.booking?.bookingType === 'ROUND_TRIP' || ticket.booking?.bookingType === 'ROUND_TRIP_TRANSIT';
const outboundArrival = ticket.schedule?.arrivalAt;
const returnArrival = ticket.booking?.returnSchedule?.arrivalAt;
if (!isRoundTrip) {
return (
<span className="text-sm">
{outboundArrival ? new Date(outboundArrival).toLocaleDateString() : '—'}
</span>
);
}
return (
<div className="flex flex-col gap-0.5 text-sm">
<span> {outboundArrival ? new Date(outboundArrival).toLocaleDateString() : '—'}</span>
<span> {returnArrival ? new Date(returnArrival).toLocaleDateString() : '—'}</span>
</div>
);
},
},
{
key: 'boardingTimes',