From 103117d88b722ffac084a5109adb141037e283a8 Mon Sep 17 00:00:00 2001 From: Stephanos A Date: Wed, 1 Jul 2026 15:04:38 +0300 Subject: [PATCH 1/3] Production checklists, issue fixes --- .../src/common/audit.service.ts | 24 +++- .../common/filters/http-exception.filter.ts | 4 +- .../src/common/i18n/i18n.service.ts | 5 +- .../modules/auth/passenger-auth.service.ts | 2 +- .../src/modules/fleet/fleet.service.ts | 7 +- .../src/modules/health/health.controller.ts | 13 +- .../modules/passengers/passengers.service.ts | 5 +- .../src/modules/reports/reports.service.ts | 5 +- .../modules/schedules/schedules.service.ts | 28 ++-- .../seat-classes/seat-classes.service.ts | 6 +- .../src/modules/stations/stations.service.ts | 4 + .../src/modules/tickets/tickets.service.ts | 14 +- .../backoffice/src/app/coaches/page.tsx | 122 +++--------------- .../backoffice/src/app/dashboard/page.tsx | 26 ---- .../src/app/operational-reports/page.tsx | 1 - .../src/app/payment-methods/page.tsx | 3 - .../src/components/ui/ActionButton.tsx | 3 +- .../backoffice/src/lib/api/dashboard.ts | 24 ++-- .../backoffice/src/lib/api/routes.ts | 2 - .../src/app/booking/passengers/page.tsx | 2 +- 20 files changed, 100 insertions(+), 200 deletions(-) diff --git a/apps/edr-passenger-api/src/common/audit.service.ts b/apps/edr-passenger-api/src/common/audit.service.ts index 3f1dc161f..cff5403da 100644 --- a/apps/edr-passenger-api/src/common/audit.service.ts +++ b/apps/edr-passenger-api/src/common/audit.service.ts @@ -1,9 +1,10 @@ -import { Injectable, Inject, Optional } from '@nestjs/common'; +import { Injectable, Inject, Logger, Optional } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { PrismaService } from './prisma.service'; @Injectable() export class AuditService { + private readonly logger = new Logger(AuditService.name); constructor( private prisma: PrismaService, @Optional() @Inject(REQUEST) private request?: any, @@ -34,7 +35,7 @@ export class AuditService { }, }); } catch (error) { - console.error('Failed to log audit event:', error); + this.logger.error('Failed to log audit event:', error); // Don't throw - audit logging should not break main operations } } @@ -74,11 +75,20 @@ export class AuditService { where.entityType = filters.entityType; } - return this.prisma.auditLog.findMany({ - where, - orderBy: { createdAt: 'desc' }, - take: 500, - }); + const limit = Math.min(filters.limit ?? 50, 200); + const offset = filters.offset ?? 0; + + const [data, total] = await Promise.all([ + this.prisma.auditLog.findMany({ + where, + orderBy: { createdAt: 'desc' }, + take: limit, + skip: offset, + }), + this.prisma.auditLog.count({ where }), + ]); + + return { data, total, limit, offset }; } async getLog(id: string) { diff --git a/apps/edr-passenger-api/src/common/filters/http-exception.filter.ts b/apps/edr-passenger-api/src/common/filters/http-exception.filter.ts index 7810c6d94..39d492b2c 100644 --- a/apps/edr-passenger-api/src/common/filters/http-exception.filter.ts +++ b/apps/edr-passenger-api/src/common/filters/http-exception.filter.ts @@ -41,9 +41,7 @@ export class HttpExceptionFilter implements ExceptionFilter { this.logger.error( `${request.method} ${request.url} -> ${status}`, exception instanceof Error ? exception.stack : JSON.stringify(exception), - ); - console.error('Full error details:', exception); - } else { + ); } else { this.logger.warn(`${request.method} ${request.url} -> ${status} ${message}`); } diff --git a/apps/edr-passenger-api/src/common/i18n/i18n.service.ts b/apps/edr-passenger-api/src/common/i18n/i18n.service.ts index 9c3eee5fc..c53a1e033 100644 --- a/apps/edr-passenger-api/src/common/i18n/i18n.service.ts +++ b/apps/edr-passenger-api/src/common/i18n/i18n.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@nestjs/common'; +import { Injectable, Logger } from '@nestjs/common'; import * as fs from 'fs'; import * as path from 'path'; @@ -6,6 +6,7 @@ type TranslationMap = Record; @Injectable() export class I18nService { + private readonly logger = new Logger(I18nService.name); private translations: Map = new Map(); private readonly supportedLocales = ['en', 'am', 'fr', 'om']; private readonly defaultLocale = 'en'; @@ -21,7 +22,7 @@ export class I18nService { const content = fs.readFileSync(filePath, 'utf-8'); this.translations.set(locale, JSON.parse(content)); } catch (err) { - console.warn(`Failed to load translation file for locale: ${locale}`); + this.logger.warn(`Failed to load translation file for locale: ${locale}`); } } } diff --git a/apps/edr-passenger-api/src/modules/auth/passenger-auth.service.ts b/apps/edr-passenger-api/src/modules/auth/passenger-auth.service.ts index cd583517c..4dd131f3e 100644 --- a/apps/edr-passenger-api/src/modules/auth/passenger-auth.service.ts +++ b/apps/edr-passenger-api/src/modules/auth/passenger-auth.service.ts @@ -548,7 +548,7 @@ export class PassengerAuthService { await this.dataSource.query(`DELETE FROM iam.users WHERE id = $1`, [iamUserId]); } catch (err) { - console.error('[PassengerAuthService] IAM compensating cleanup failed for', email, (err as Error).message); + this.logger.error(`[PassengerAuthService] IAM compensating cleanup failed for ${email}`, (err as Error).message); } } } diff --git a/apps/edr-passenger-api/src/modules/fleet/fleet.service.ts b/apps/edr-passenger-api/src/modules/fleet/fleet.service.ts index df5eea8a1..ebec606c6 100644 --- a/apps/edr-passenger-api/src/modules/fleet/fleet.service.ts +++ b/apps/edr-passenger-api/src/modules/fleet/fleet.service.ts @@ -317,7 +317,10 @@ export class FleetService { } getTrains() { - return this.prisma.train.findMany({ include: { schedules: { take: 5, orderBy: { departureAt: 'desc' } } } }); + return this.prisma.train.findMany({ + where: { isActive: true }, + include: { schedules: { take: 5, orderBy: { departureAt: 'desc' } } }, + }); } createTrain(dto: CreateTrainDto) { @@ -462,6 +465,7 @@ export class FleetService { return this.prisma.coach.update({ where: { id }, data: { + number: dto.number, arrangement: dto.arrangement, capacity: dto.capacity, status: dto.status, @@ -540,6 +544,7 @@ export class FleetService { ]); if (!schedule) throw new NotFoundException('Schedule not found'); if (!coach) throw new NotFoundException('Coach not found'); + if (coach.status !== 'ACTIVE') throw new BadRequestException('Coach is not active'); return this.prisma.coachAssignment.create({ data: dto }); } diff --git a/apps/edr-passenger-api/src/modules/health/health.controller.ts b/apps/edr-passenger-api/src/modules/health/health.controller.ts index 6cc50e24e..a918fa76c 100644 --- a/apps/edr-passenger-api/src/modules/health/health.controller.ts +++ b/apps/edr-passenger-api/src/modules/health/health.controller.ts @@ -1,8 +1,9 @@ -import { Controller, Get } from '@nestjs/common'; +import { Controller, Get, HttpStatus, Res } from '@nestjs/common'; import { ApiTags, ApiOperation } from '@nestjs/swagger'; import { SkipThrottle } from '@nestjs/throttler'; import { IsPublic } from '@tria-plc/api-common/modules/auth/decorators/public.decorator'; import { PrismaService } from '../../common/prisma.service'; +import { Response } from 'express'; @ApiTags('Health') @Controller('health') @@ -20,17 +21,17 @@ export class HealthController { @Get('ready') @IsPublic() @ApiOperation({ summary: 'Readiness probe — checks database connectivity' }) - async readiness() { + async readiness(@Res() res: Response) { const start = Date.now(); try { await this.prisma.$queryRaw`SELECT 1`; - return { + return res.status(HttpStatus.OK).json({ status: 'ok', timestamp: new Date().toISOString(), checks: { database: { status: 'ok', latencyMs: Date.now() - start } }, - }; + }); } catch (err) { - return { + return res.status(HttpStatus.SERVICE_UNAVAILABLE).json({ status: 'error', timestamp: new Date().toISOString(), checks: { @@ -40,7 +41,7 @@ export class HealthController { error: err instanceof Error ? err.message : 'Unknown error', }, }, - }; + }); } } diff --git a/apps/edr-passenger-api/src/modules/passengers/passengers.service.ts b/apps/edr-passenger-api/src/modules/passengers/passengers.service.ts index b2b7ae631..ea952d98c 100644 --- a/apps/edr-passenger-api/src/modules/passengers/passengers.service.ts +++ b/apps/edr-passenger-api/src/modules/passengers/passengers.service.ts @@ -1,4 +1,4 @@ -import { Injectable, NotFoundException, BadRequestException } from '@nestjs/common'; +import { Injectable, Logger, NotFoundException, BadRequestException } from '@nestjs/common'; import { InjectDataSource } from '@nestjs/typeorm'; import { DataSource } from 'typeorm'; import { PrismaService } from '../../common/prisma.service'; @@ -25,6 +25,7 @@ type IamUserRow = { @Injectable() export class PassengersService { + private readonly logger = new Logger(PassengersService.name); constructor( private readonly prisma: PrismaService, @InjectDataSource() private readonly dataSource: DataSource, @@ -373,7 +374,7 @@ export class PassengersService { verifiedData = verification.passengerData; } } catch (error) { - console.warn('Fayda verification failed, using manual data:', error); + this.logger.warn('Fayda verification failed, using manual data:', error); } } diff --git a/apps/edr-passenger-api/src/modules/reports/reports.service.ts b/apps/edr-passenger-api/src/modules/reports/reports.service.ts index 5c1b5e582..e37cac0d3 100644 --- a/apps/edr-passenger-api/src/modules/reports/reports.service.ts +++ b/apps/edr-passenger-api/src/modules/reports/reports.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@nestjs/common'; +import { Injectable, Logger } from '@nestjs/common'; import { InjectDataSource } from '@nestjs/typeorm'; import { DataSource } from 'typeorm'; import { PrismaService } from '../../common/prisma.service'; @@ -6,6 +6,7 @@ import { GenerateReportDto, ReportType } from './reports.dto'; @Injectable() export class ReportsService { + private readonly logger = new Logger(ReportsService.name); constructor( private prisma: PrismaService, @InjectDataSource() private dataSource: DataSource, @@ -60,8 +61,6 @@ export class ReportsService { include: { paymentIntent: true } }); - console.log(`[Reports] Revenue Report: Found ${bookings.length} bookings between ${dateFrom} and ${dateTo}`); - const totalRevenue = bookings.reduce((sum, b) => sum + b.totalMinor, 0); const byPaymentMethod = bookings.reduce((acc, b) => { const method = b.paymentIntent?.method ?? 'UNKNOWN'; diff --git a/apps/edr-passenger-api/src/modules/schedules/schedules.service.ts b/apps/edr-passenger-api/src/modules/schedules/schedules.service.ts index 7a061ac42..66e43d6e9 100644 --- a/apps/edr-passenger-api/src/modules/schedules/schedules.service.ts +++ b/apps/edr-passenger-api/src/modules/schedules/schedules.service.ts @@ -100,10 +100,15 @@ export class SchedulesService { const arr = parseEthiopianTime(dto.arrivalAt); if (arr <= dep) throw new BadRequestException('arrivalAt must be after departureAt'); - const route = await this.prisma.route.findUnique({ - where: { id: dto.routeId }, - include: { stops: { orderBy: { sequence: 'asc' } } }, - }); + const [train, route] = await Promise.all([ + this.prisma.train.findUnique({ where: { id: dto.trainId } }), + this.prisma.route.findUnique({ + where: { id: dto.routeId }, + include: { stops: { orderBy: { sequence: 'asc' } } }, + }), + ]); + if (!train) throw new NotFoundException('Train not found'); + if (!train.isActive) throw new BadRequestException('Train is not active'); if (!route) throw new NotFoundException('Route not found'); if (!route.active) throw new BadRequestException('Route is not active'); if (route.stops.length < 2) throw new BadRequestException('Route must have at least 2 stops'); @@ -247,10 +252,15 @@ export class SchedulesService { const arr = parseEthiopianTime(dto.arrivalAt); if (arr <= dep) throw new BadRequestException('arrivalAt must be after departureAt'); - const route = await this.prisma.route.findUnique({ - where: { id: dto.routeId }, - include: { stops: { orderBy: { sequence: 'asc' } } }, - }); + const [train, route] = await Promise.all([ + this.prisma.train.findUnique({ where: { id: dto.trainId } }), + this.prisma.route.findUnique({ + where: { id: dto.routeId }, + include: { stops: { orderBy: { sequence: 'asc' } } }, + }), + ]); + if (!train) throw new NotFoundException('Train not found'); + if (!train.isActive) throw new BadRequestException('Train is not active'); if (!route) throw new NotFoundException('Route not found'); if (!route.active) throw new BadRequestException('Route is not active'); if (route.stops.length < 2) throw new BadRequestException('Route must have at least 2 stops'); @@ -540,6 +550,8 @@ export class SchedulesService { const coachIds = coaches.map(c => c.coachId); const existingCoaches = await this.prisma.coach.findMany({ where: { id: { in: coachIds } } }); if (existingCoaches.length !== coachIds.length) throw new NotFoundException('One or more coaches not found'); + const inactiveCoach = existingCoaches.find(c => c.status !== 'ACTIVE'); + if (inactiveCoach) throw new BadRequestException(`Coach ${inactiveCoach.number} is not active`); await this.prisma.coachAssignment.deleteMany({ where: { scheduleId } }); diff --git a/apps/edr-passenger-api/src/modules/seat-classes/seat-classes.service.ts b/apps/edr-passenger-api/src/modules/seat-classes/seat-classes.service.ts index 3f2fafebf..10fcfe0cf 100644 --- a/apps/edr-passenger-api/src/modules/seat-classes/seat-classes.service.ts +++ b/apps/edr-passenger-api/src/modules/seat-classes/seat-classes.service.ts @@ -6,12 +6,16 @@ export class SeatClassesService { constructor(private prisma: PrismaService) {} listSeatClasses() { - return this.prisma.seatClass.findMany({ orderBy: { createdAt: 'asc' } }); + return this.prisma.seatClass.findMany({ + where: { isActive: true }, + orderBy: { createdAt: 'asc' }, + }); } async getSeatClass(id: string) { const sc = await this.prisma.seatClass.findUnique({ where: { id } }); if (!sc) throw new NotFoundException('SeatClass not found'); + if (!sc.isActive) throw new NotFoundException('SeatClass is not active'); return sc; } diff --git a/apps/edr-passenger-api/src/modules/stations/stations.service.ts b/apps/edr-passenger-api/src/modules/stations/stations.service.ts index 736e8cd58..9e9fc824d 100644 --- a/apps/edr-passenger-api/src/modules/stations/stations.service.ts +++ b/apps/edr-passenger-api/src/modules/stations/stations.service.ts @@ -33,8 +33,11 @@ export class StationsService { where.countryCode = filters.country; } + // Default to operational stations only; allow explicit override (e.g. back-office) if (filters.operational !== undefined && filters.operational !== '') { where.isOperational = filters.operational === 'true'; + } else { + where.isOperational = true; } return this.prisma.station.findMany({ @@ -46,6 +49,7 @@ export class StationsService { async findOne(id: string) { const s = await this.prisma.station.findUnique({ where: { id } }); if (!s) throw new NotFoundException('Station not found'); + if (!s.isOperational) throw new NotFoundException('Station is not operational'); return s; } diff --git a/apps/edr-passenger-api/src/modules/tickets/tickets.service.ts b/apps/edr-passenger-api/src/modules/tickets/tickets.service.ts index 3c07d8c40..797adbb55 100644 --- a/apps/edr-passenger-api/src/modules/tickets/tickets.service.ts +++ b/apps/edr-passenger-api/src/modules/tickets/tickets.service.ts @@ -99,18 +99,11 @@ export class TicketsService { let guestEmail = null; const matchingProfile = t.booking?.passenger?.travelerProfiles?.find((tp: any) => tp.fullName === t.passengerName); - // DEBUG: Log to see what we're getting - this.logger.debug(`Ticket ${t.id}: passengerName=${t.passengerName}, profiles count=${t.booking?.passenger?.travelerProfiles?.length || 0}, matchingProfile=${!!matchingProfile}`); - if (matchingProfile) { - this.logger.debug(`Matching profile notes: ${matchingProfile.notes}`); - } - if (matchingProfile?.notes) { try { const notesData = JSON.parse(matchingProfile.notes); guestPhone = notesData.phone || null; guestEmail = notesData.email || null; - this.logger.debug(`Extracted from notes: phone=${guestPhone}, email=${guestEmail}`); } catch (err) { this.logger.error(`Failed to parse notes JSON: ${err}`); } @@ -120,13 +113,11 @@ export class TicketsService { if (!guestPhone) guestPhone = t.booking?.contactPhone; if (!guestEmail) guestEmail = t.booking?.contactEmail; - this.logger.debug(`Final values: phone=${guestPhone}, email=${guestEmail}`); const passengerInfo = iam ? { fullName: iam.name?.en ?? iam.name?.am ?? null, email: iam.email, phone: iam.phone_number } : { fullName: 'Guest', email: guestEmail, phone: guestPhone }; - this.logger.debug(`Final passenger info: ${JSON.stringify(passengerInfo)}`); return { id: t.id, @@ -596,8 +587,7 @@ export class TicketsService { } private async fireBoardingPassNotification(booking: any, ticket: any, leg: string | null) { - // TODO: Implement notification logic - console.log(`Boarding pass notification for booking ${booking.bookingRef}, leg: ${leg}`); + this.logger.log(`Boarding pass notification for booking ${booking.bookingRef}, leg: ${leg}`); } async getValidationLogs(ticketId: string) { @@ -687,4 +677,4 @@ export class TicketsService { if (!ticket) throw new NotFoundException('Ticket not found'); return this.prisma.ticket.update({ where: { id }, data: { status: 'ACTIVE' } }); } -} \ No newline at end of file +} diff --git a/apps/edr-passenger-web/backoffice/src/app/coaches/page.tsx b/apps/edr-passenger-web/backoffice/src/app/coaches/page.tsx index b25a40498..5860ea748 100644 --- a/apps/edr-passenger-web/backoffice/src/app/coaches/page.tsx +++ b/apps/edr-passenger-web/backoffice/src/app/coaches/page.tsx @@ -144,11 +144,10 @@ export default function CoachesPage() { const [activeTab, setActiveTab] = useState('coaches'); const [search, setSearch] = useState(''); const [showModal, setShowModal] = useState(false); - const [showPreviewModal, setShowPreviewModal] = useState(false); - const [seatMapPreview, setSeatMapPreview] = useState(null); const [editingItem, setEditingItem] = useState(null); const [deleteConfirm, setDeleteConfirm] = useState<{ isOpen: boolean; item: any | null; error?: string }>({ isOpen: false, item: null }); const [selectedCoachTypeId, setSelectedCoachTypeId] = useState(''); + const queryClient = useQueryClient(); // Coach Types Queries @@ -221,14 +220,6 @@ export default function CoachesPage() { }, }); - const generateSeatMapMutation = useMutation({ - mutationFn: fleetApi.generateSeatMap, - onSuccess: (data) => { - setSeatMapPreview(data); - setShowPreviewModal(true); - }, - }); - const handleCoachTypeSubmit = async (e: React.FormEvent) => { e.preventDefault(); const formData = new FormData(e.currentTarget); @@ -275,27 +266,6 @@ export default function CoachesPage() { } }; - const handlePreviewSeatMap = async () => { - const form = document.querySelector('form') as HTMLFormElement; - const formData = new FormData(form); - const bedCategory = formData.get('bedCategory') as string; - const capacity = parseInt(formData.get('capacity') as string); - - if (!bedCategory || !capacity) { - alert('Please select a bed category and enter capacity to preview seat map'); - return; - } - - const bedsPerRoom = bedCategory === 'VIP_BED' ? 4 : 6; - const roomsPerCoach = Math.ceil(capacity / bedsPerRoom); - - await generateSeatMapMutation.mutateAsync({ - coachCount: 1, - roomsPerCoach, - roomType: bedCategory, - }); - }; - const handleDelete = (item: any, isCoachType: boolean) => { setDeleteConfirm({ isOpen: true, item: { ...item, isCoachType } }); }; @@ -779,23 +749,25 @@ export default function CoachesPage() { /> - {/* Conditionally show bed fields only for Economy and Regular coach types */} {(() => { const selectedCoachType = coachTypesArray.find((ct: any) => ct.id === (selectedCoachTypeId || editingItem?.coachTypeId)); - const isEconomyOrRegular = selectedCoachType && - (selectedCoachType.name?.toLowerCase().includes('economy') || - selectedCoachType.name?.toLowerCase().includes('regular') || - selectedCoachType.type?.toLowerCase().includes('economy') || - selectedCoachType.type?.toLowerCase().includes('regular')); - - return isEconomyOrRegular ? ( + const isBedType = selectedCoachType && + (selectedCoachType.name?.toLowerCase().includes('bed') || + selectedCoachType.name?.toLowerCase().includes('sleeper') || + selectedCoachType.type?.toLowerCase().includes('sleeper')); + + const derivedBedCategory = editingItem?.isCoach && selectedCoachType + ? (selectedCoachType.name?.toLowerCase().includes('vip') ? 'VIP_BED' : 'ECONOMY_BED') + : (editingItem?.bedCategory || ''); + + return isBedType ? ( <>
-
- -
-
-
-

CBE Birr

-

Bank payment provider

-
- -
- - - - )} - - {activeTab === 'integrations' && ( -
-
-

Verifayda 2.0 Integration

-
-
- - -
-
- - -
-
- - -
-
-
- -
-

Corporate IAM Integration

-
-
- - -
-
- - -
-
- - -
-
-
-
- )} - + {activeTab === 'configurations' && (

Rate Limiting (requests / minute / IP)

diff --git a/apps/edr-passenger-web/portal/.env.example b/apps/edr-passenger-web/portal/.env.example index 25ffe6909..295fbe775 100644 --- a/apps/edr-passenger-web/portal/.env.example +++ b/apps/edr-passenger-web/portal/.env.example @@ -1,5 +1,5 @@ # API Configuration NEXT_PUBLIC_API_URL=https://your-api-domain.com -# GitHub Packages Token -GITHUB_PACKAGE_TOKEN=$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 \ No newline at end of file +# GitHub Packages Token (required to install @tria-plc/* private packages) +GITHUB_PACKAGE_TOKEN= \ No newline at end of file From 305e8500738e5632ee2dd178ccdb0e0d2b53a678 Mon Sep 17 00:00:00 2001 From: Roba Boru Date: Wed, 1 Jul 2026 20:45:40 +0300 Subject: [PATCH 3/3] Added tour package booking option --- .../portal/public/packages/kulubi.jpeg | Bin 0 -> 65995 bytes .../portal/src/app/booking/search/page.tsx | 101 -- .../portal/src/app/packages/[id]/page.tsx | 913 ++++++++++++++++++ .../edr-passenger-web/portal/src/app/page.tsx | 2 + .../portal/src/components/PackagesSection.tsx | 544 +++++++++++ 5 files changed, 1459 insertions(+), 101 deletions(-) create mode 100644 apps/edr-passenger-web/portal/public/packages/kulubi.jpeg create mode 100644 apps/edr-passenger-web/portal/src/app/packages/[id]/page.tsx create mode 100644 apps/edr-passenger-web/portal/src/components/PackagesSection.tsx diff --git a/apps/edr-passenger-web/portal/public/packages/kulubi.jpeg b/apps/edr-passenger-web/portal/public/packages/kulubi.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..5c11fb5b395d7518c9bef8e51bbfcd3c75d243b1 GIT binary patch literal 65995 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
- {/* Promotions Section */} -
-
-
-
- 🎁 -

- Offers & Promotions -

-
-
- {/* Wide promo card */} -
-
-
-
-
-
- - Limited Time - -

- 20% Off Weekend -
- Travel -

-

- Book any weekend journey and save 20%. Valid for all seat - classes. -

-
-
- - Valid until 31 Dec 2024 - - - Book now - -
-
-
- - {/* Narrow promo cards */} -
-
-
-
-
-
- - New - -

- Family Package -

-

- 4 tickets for the price of 3 -

-
-
- - Learn more - -
-
-
- -
-
-
-
-
- - Student - -

- Student Discount -

-

- 15% off with valid student ID -

-
-
- - Learn more - -
-
-
-
-
-
-
-
-