add car reservation feature

This commit is contained in:
root
2026-05-09 21:10:38 -04:00
parent 09b0e3b55f
commit 6322b7d2a1
37 changed files with 1169 additions and 119 deletions
+16
View File
@@ -129,6 +129,8 @@ export type PublicSiteDictionary = {
perDay: string
bookNow: string
back: string
availableFrom: string
unavailableNoDate: string
}
}
booking: {
@@ -144,6 +146,8 @@ export type PublicSiteDictionary = {
loadingVehicle: string
vehicleNotFound: string
vehicleLoadError: string
vehicleAvailableFrom: (date: string) => string
vehicleUnavailableNoDate: string
bookingOptionsLoadError: string
startDate: string
endDate: string
@@ -378,6 +382,8 @@ const dictionaries: Record<PublicSiteLanguage, PublicSiteDictionary> = {
perDay: '/ day',
bookNow: 'Book now',
back: 'Back',
availableFrom: 'Available from',
unavailableNoDate: 'This vehicle is temporarily unavailable for new reservations.',
},
},
booking: {
@@ -393,6 +399,8 @@ const dictionaries: Record<PublicSiteLanguage, PublicSiteDictionary> = {
loadingVehicle: 'Loading vehicle...',
vehicleNotFound: 'Vehicle not found.',
vehicleLoadError: 'Could not load vehicle details.',
vehicleAvailableFrom: (date) => `This vehicle can only be reserved starting ${date}.`,
vehicleUnavailableNoDate: 'This vehicle is temporarily unavailable for new reservations.',
bookingOptionsLoadError: 'Could not load booking options.',
startDate: 'Start date',
endDate: 'End date',
@@ -625,6 +633,8 @@ const dictionaries: Record<PublicSiteLanguage, PublicSiteDictionary> = {
perDay: '/ jour',
bookNow: 'Réserver maintenant',
back: 'Retour',
availableFrom: 'Disponible à partir du',
unavailableNoDate: 'Ce véhicule est temporairement indisponible pour les nouvelles réservations.',
},
},
booking: {
@@ -640,6 +650,8 @@ const dictionaries: Record<PublicSiteLanguage, PublicSiteDictionary> = {
loadingVehicle: 'Chargement du véhicule...',
vehicleNotFound: 'Véhicule introuvable.',
vehicleLoadError: 'Impossible de charger les détails du véhicule.',
vehicleAvailableFrom: (date) => `Ce véhicule ne peut être réservé qu’à partir du ${date}.`,
vehicleUnavailableNoDate: 'Ce véhicule est temporairement indisponible pour les nouvelles réservations.',
bookingOptionsLoadError: 'Impossible de charger les options de réservation.',
startDate: 'Date de début',
endDate: 'Date de fin',
@@ -872,6 +884,8 @@ const dictionaries: Record<PublicSiteLanguage, PublicSiteDictionary> = {
perDay: '/ يوم',
bookNow: 'احجز الآن',
back: 'رجوع',
availableFrom: 'متاح ابتداءً من',
unavailableNoDate: 'هذه المركبة غير متاحة مؤقتاً للحجوزات الجديدة.',
},
},
booking: {
@@ -887,6 +901,8 @@ const dictionaries: Record<PublicSiteLanguage, PublicSiteDictionary> = {
loadingVehicle: 'جاري تحميل المركبة...',
vehicleNotFound: 'المركبة غير موجودة.',
vehicleLoadError: 'تعذر تحميل تفاصيل المركبة.',
vehicleAvailableFrom: (date) => `يمكن حجز هذه المركبة ابتداءً من ${date}.`,
vehicleUnavailableNoDate: 'هذه المركبة غير متاحة مؤقتاً للحجوزات الجديدة.',
bookingOptionsLoadError: 'تعذر تحميل خيارات الحجز.',
startDate: 'تاريخ البداية',
endDate: 'تاريخ النهاية',