From 50808add4ead74dbbe05a81a44b78d83831408f6 Mon Sep 17 00:00:00 2001 From: Abubeker Yasin Date: Wed, 3 Jun 2026 15:12:33 +0300 Subject: [PATCH] fix ( seed ) fix delete constraints --- apps/edr-passenger-api/prisma/seed-complete.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/edr-passenger-api/prisma/seed-complete.ts b/apps/edr-passenger-api/prisma/seed-complete.ts index b5f66cfc0..f9cc064be 100644 --- a/apps/edr-passenger-api/prisma/seed-complete.ts +++ b/apps/edr-passenger-api/prisma/seed-complete.ts @@ -113,8 +113,19 @@ async function main() { const existingSchedules = await prisma.trainSchedule.findMany({ where: { trainId: train.id }, select: { id: true } }); if (existingSchedules.length > 0) { const scheduleIds = existingSchedules.map(s => s.id); - // Delete in correct order to avoid foreign key constraints - await prisma.bookingSeat.deleteMany({ where: { booking: { scheduleId: { in: scheduleIds } } } }); + const bookingIds = ( + await prisma.booking.findMany({ where: { scheduleId: { in: scheduleIds } }, select: { id: true } }) + ).map(b => b.id); + // Delete booking children in FK-safe order before deleting the bookings themselves + await prisma.foodOrderItem.deleteMany({ where: { order: { bookingId: { in: bookingIds } } } }); + await prisma.foodOrder.deleteMany({ where: { bookingId: { in: bookingIds } } }); + await prisma.paymentIntent.deleteMany({ where: { bookingId: { in: bookingIds } } }); + await prisma.ticket.deleteMany({ where: { bookingId: { in: bookingIds } } }); + await prisma.agentBooking.deleteMany({ where: { bookingId: { in: bookingIds } } }); + await prisma.bookingModification.deleteMany({ where: { bookingId: { in: bookingIds } } }); + await prisma.bookingCancellation.deleteMany({ where: { bookingId: { in: bookingIds } } }); + await prisma.baggageBooking.deleteMany({ where: { bookingId: { in: bookingIds } } }); + await prisma.bookingSeat.deleteMany({ where: { bookingId: { in: bookingIds } } }); await prisma.booking.deleteMany({ where: { scheduleId: { in: scheduleIds } } }); await prisma.fareRule.deleteMany({ where: { tripId: { in: scheduleIds } } }); await prisma.tripStopTime.deleteMany({ where: { scheduleId: { in: scheduleIds } } });