Files
alrahma_sunday_school_api/apps/dashboard/.next/static/chunks/09ll8fea0o0rh.js
T
2026-06-11 03:22:12 -04:00

1 line
26 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,6239,e=>{"use strict";var t=e.i(43476);e.s(["BilingualInput",0,function({label:e,value:s,onChange:a,required:i=!1,maxLength:l}){return(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:"mb-1.5 block text-sm font-medium text-slate-700",children:[e,i?(0,t.jsx)("span",{className:"ml-1 text-red-600",children:"*"}):null]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("span",{className:"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 rounded bg-blue-50 px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-blue-500",children:"FR"}),(0,t.jsx)("input",{type:"text",dir:"ltr",lang:"fr",maxLength:l,placeholder:"Français…",value:s.fr,onChange:e=>a({...s,fr:e.target.value}),className:"input-field pl-11"})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("span",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded bg-emerald-50 px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-emerald-600",children:"AR"}),(0,t.jsx)("input",{type:"text",dir:"rtl",lang:"ar",maxLength:l,placeholder:"بالعربية…",value:s.ar,onChange:e=>a({...s,ar:e.target.value}),className:"input-field pr-11 text-right"})]})]})]})},"bilingualPrimary",0,function(e){return e.fr||e.ar},"emptyBilingual",0,function(){return{fr:"",ar:""}}])},89741,e=>{"use strict";var t=e.i(43476),s=e.i(71645),a=e.i(18566),i=e.i(94327),l=e.i(56322),n=e.i(6239);e.s(["default",0,function(){let e,{language:r}=(0,l.useDashboardI18n)(),c=(0,a.useRouter)(),[d,m]=(0,s.useState)([]),[u,o]=(0,s.useState)([]),[p,x]=(0,s.useState)(!0),[h,g]=(0,s.useState)(!1),[N,v]=(0,s.useState)(null),[f,y]=(0,s.useState)(""),[j,b]=(0,s.useState)(""),[C,A]=(0,s.useState)(""),[S,I]=(0,s.useState)(""),[D,L]=(0,s.useState)(""),[P,B]=(0,s.useState)(""),[O,w]=(0,s.useState)(""),[E,k]=(0,s.useState)("0"),[R,F]=(0,s.useState)("CASH"),[M,T]=(0,s.useState)(""),[q,V]=(0,s.useState)(!1),[U,H]=(0,s.useState)(!1),[Y,$]=(0,s.useState)(!1),[K,z]=(0,s.useState)((0,n.emptyBilingual)()),[_,J]=(0,s.useState)((0,n.emptyBilingual)()),[G,Q]=(0,s.useState)(""),[W,X]=(0,s.useState)(""),[Z,ee]=(0,s.useState)(""),[et,es]=(0,s.useState)(""),[ea,ei]=(0,s.useState)(""),[el,en]=(0,s.useState)(""),[er,ec]=(0,s.useState)(""),[ed,em]=(0,s.useState)(""),[eu,eo]=(0,s.useState)(""),[ep,ex]=(0,s.useState)(""),[eh,eg]=(0,s.useState)(""),[eN,ev]=(0,s.useState)(""),[ef,ey]=(0,s.useState)(null),[ej,eb]=(0,s.useState)(null),[eC,eA]=(0,s.useState)(null),[eS,eI]=(0,s.useState)({firstName:(0,n.emptyBilingual)(),lastName:(0,n.emptyBilingual)(),email:"",phone:"",driverLicense:"",licenseExpiry:"",licenseIssuedAt:"",dateOfBirth:"",nationality:(0,n.emptyBilingual)()}),eD={en:{title:"Local Booking",subtitle:"Create a reservation directly from workspace without a previous online reservation.",customer:"Customer",searchCustomer:"Search previous customer",vehicle:"Vehicle",startDate:"Start date & time",endDate:"End date & time",pickup:"Pickup location",return:"Return location",deposit:"Deposit amount (MAD)",paymentMode:"Payment mode",renterIdentity:"Renter identity",driverLicenseInfo:"Driver license information",driverLicense:"Driver license number",licenseExpiry:"License expiry",licenseIssuedAt:"License issued at",licenseCountry:"License country",licenseCategory:"License category",fullAddress:"Full address",identityDocumentNumber:"CIN / Passport number",internationalLicenseNumber:"International permit number",licenseImage:"Driver license image",licenseImageHint:"Upload a photo or scan of the primary driver license.",licenseImageSelected:"Selected file",licenseImageCurrent:"Current image",noLicenseImage:"No license image uploaded yet.",addAdditionalDriver:"Add additional driver",additionalDriverInfo:"Additional driver",dateOfBirth:"Date of birth",nationality:"Nationality",notes:"Notes",notesPlaceholder:"Optional notes…",create:"Create booking",creating:"Creating…",cancel:"Cancel",loadFailed:"Failed to load customers/vehicles.",invalidDates:"End date must be after start date.",required:"Please fill all required fields.",selectCustomer:"Select customer…",addCustomer:"Add customer",addCustomerTitle:"Add new customer",firstName:"First name",lastName:"Last name",email:"Email",phone:"Phone",saveCustomer:"Save customer",savingCustomer:"Saving customer…",selectVehicle:"Select vehicle…",noVehicles:"No available vehicles.",paymentModes:{CASH:"Cash",CARD:"Card",BANK_TRANSFER:"Bank transfer",AMANPAY:"AmanPay",PAYPAL:"PayPal"}},fr:{title:"Réservation locale",subtitle:"Créez une réservation directement depuis lespace, sans réservation en ligne préalable.",customer:"Client",searchCustomer:"Rechercher un client existant",vehicle:"Véhicule",startDate:"Date et heure de départ",endDate:"Date et heure de retour",pickup:"Lieu de départ",return:"Lieu de retour",deposit:"Montant du dépôt (MAD)",paymentMode:"Mode de paiement",renterIdentity:"Identité du locataire",driverLicenseInfo:"Informations du permis",driverLicense:"Numéro du permis",licenseExpiry:"Expiration du permis",licenseIssuedAt:"Permis délivré le",licenseCountry:"Pays du permis",licenseCategory:"Catégorie du permis",fullAddress:"Adresse complète",identityDocumentNumber:"N° CIN / passeport",internationalLicenseNumber:"N° de permis international",licenseImage:"Image du permis",licenseImageHint:"Téléversez une photo ou un scan du permis du conducteur principal.",licenseImageSelected:"Fichier sélectionné",licenseImageCurrent:"Image actuelle",noLicenseImage:"Aucune image de permis téléversée.",addAdditionalDriver:"Ajouter un conducteur supplémentaire",additionalDriverInfo:"Conducteur supplémentaire",dateOfBirth:"Date de naissance",nationality:"Nationalité",notes:"Notes",notesPlaceholder:"Notes optionnelles…",create:"Créer la réservation",creating:"Création…",cancel:"Annuler",loadFailed:"Échec du chargement des clients/véhicules.",invalidDates:"La date de fin doit être après la date de début.",required:"Veuillez remplir tous les champs requis.",selectCustomer:"Sélectionner un client…",addCustomer:"Ajouter un client",addCustomerTitle:"Ajouter un nouveau client",firstName:"Prénom",lastName:"Nom",email:"Email",phone:"Téléphone",saveCustomer:"Enregistrer le client",savingCustomer:"Enregistrement du client…",selectVehicle:"Sélectionner un véhicule…",noVehicles:"Aucun véhicule disponible.",paymentModes:{CASH:"Espèces",CARD:"Carte",BANK_TRANSFER:"Virement",AMANPAY:"AmanPay",PAYPAL:"PayPal"}},ar:{title:"حجز محلي",subtitle:"أنشئ حجزًا مباشرة من مساحة العمل بدون حجز إلكتروني مسبق.",customer:"العميل",searchCustomer:"ابحث عن عميل سابق",vehicle:"المركبة",startDate:"تاريخ ووقت البداية",endDate:"تاريخ ووقت النهاية",pickup:"موقع الاستلام",return:"موقع التسليم",deposit:"مبلغ العربون (MAD)",paymentMode:"طريقة الدفع",renterIdentity:"بيانات المستأجر",driverLicenseInfo:"معلومات رخصة القيادة",driverLicense:"رقم رخصة القيادة",licenseExpiry:"تاريخ انتهاء الرخصة",licenseIssuedAt:"تاريخ إصدار الرخصة",licenseCountry:"بلد الرخصة",licenseCategory:"فئة الرخصة",fullAddress:"العنوان الكامل",identityDocumentNumber:"رقم البطاقة الوطنية / جواز السفر",internationalLicenseNumber:"رقم الرخصة الدولية",licenseImage:"صورة رخصة القيادة",licenseImageHint:"ارفع صورة أو مسحًا لرخصة السائق الأساسي.",licenseImageSelected:"الملف المحدد",licenseImageCurrent:"الصورة الحالية",noLicenseImage:"لم يتم رفع صورة الرخصة بعد.",addAdditionalDriver:"إضافة سائق إضافي",additionalDriverInfo:"السائق الإضافي",dateOfBirth:"تاريخ الميلاد",nationality:"الجنسية",notes:"ملاحظات",notesPlaceholder:"ملاحظات اختيارية…",create:"إنشاء الحجز",creating:"جارٍ الإنشاء…",cancel:"إلغاء",loadFailed:"فشل تحميل العملاء/المركبات.",invalidDates:"يجب أن يكون تاريخ النهاية بعد تاريخ البداية.",required:"يرجى تعبئة جميع الحقول المطلوبة.",selectCustomer:"اختر عميلًا…",addCustomer:"إضافة عميل",addCustomerTitle:"إضافة عميل جديد",firstName:"الاسم الأول",lastName:"اسم العائلة",email:"البريد الإلكتروني",phone:"الهاتف",saveCustomer:"حفظ العميل",savingCustomer:"جارٍ حفظ العميل…",selectVehicle:"اختر مركبة…",noVehicles:"لا توجد مركبات متاحة.",paymentModes:{CASH:"نقدا",CARD:"بطاقة",BANK_TRANSFER:"تحويل بنكي",AMANPAY:"AmanPay",PAYPAL:"PayPal"}}}[r];(0,s.useEffect)(()=>{Promise.all([(0,i.apiFetch)("/customers?pageSize=100"),(0,i.apiFetch)("/vehicles?pageSize=100")]).then(([e,t])=>{m(e??[]),o(t??[])}).catch(e=>v(e.message??eD.loadFailed)).finally(()=>x(!1))},[]);let eL=(e=j.trim().toLowerCase())?d.filter(t=>`${t.firstName} ${t.lastName}`.toLowerCase().includes(e)||t.email.toLowerCase().includes(e)):d,eP=u.filter(e=>"AVAILABLE"===e.status),eB=!!f&&!!C&&!!S&&!!D;function eO(e,t){let s=e?.address;if(!s||"object"!=typeof s||Array.isArray(s))return"";let a=s[t];return"string"==typeof a?a:""}async function ew(e){if(!ej)return null;let t=new FormData;t.append("file",ej);let s=await (0,i.apiFetch)(`/customers/${e}/license-image`,{method:"POST",body:t});return m(e=>e.map(e=>e.id===s.id?{...e,...s}:e)),ey(s.licenseImageUrl??null),eb(null),s.licenseImageUrl??null}async function eE(){if(v(null),!(0,n.bilingualPrimary)(K).trim()||!(0,n.bilingualPrimary)(_).trim()||!G.trim()||!W.trim()||!Z.trim()||!et||!ea.trim()||!el.trim()||!er.trim()||!eu||!ep||!eh.trim()||!eN.trim())return void v(eD.required);H(!0);try{let e=await (0,i.apiFetch)("/customers",{method:"POST",body:JSON.stringify({firstName:(0,n.bilingualPrimary)(K).trim(),firstNameAr:K.ar.trim()||void 0,lastName:(0,n.bilingualPrimary)(_).trim(),lastNameAr:_.ar.trim()||void 0,email:G.trim(),phone:W.trim(),driverLicense:Z.trim(),dateOfBirth:new Date(et).toISOString(),nationality:ea.trim(),address:{fullAddress:el.trim(),identityDocumentNumber:er.trim(),internationalLicenseNumber:ed.trim()||void 0},licenseExpiry:new Date(eu).toISOString(),licenseIssuedAt:new Date(ep).toISOString(),licenseCountry:eh.trim(),licenseNumber:Z.trim(),licenseCategory:eN.trim()})});m(t=>[e,...t]),y(e.id),b(`${(0,n.bilingualPrimary)(K)} ${(0,n.bilingualPrimary)(_)}`),V(!1),z((0,n.emptyBilingual)()),J((0,n.emptyBilingual)()),Q(""),X(""),ey(e.licenseImageUrl??null),ej&&await ew(e.id)}catch(e){v(e.message)}finally{H(!1)}}async function ek(){if(v(null),!eB)return void v(eD.required);let e=new Date(S),t=new Date(D);if(t<=e)return void v(eD.invalidDates);if(!Z.trim()||!et||!ea.trim()||!el.trim()||!er.trim()||!eu||!ep||!eh.trim()||!eN.trim()||Y&&(!(0,n.bilingualPrimary)(eS.firstName).trim()||!(0,n.bilingualPrimary)(eS.lastName).trim()||!eS.driverLicense.trim()))return void v(eD.required);g(!0);try{await (0,i.apiFetch)(`/customers/${f}`,{method:"PATCH",body:JSON.stringify({driverLicense:Z.trim(),dateOfBirth:new Date(et).toISOString(),nationality:ea.trim(),address:{fullAddress:el.trim(),identityDocumentNumber:er.trim(),internationalLicenseNumber:ed.trim()||void 0},licenseExpiry:new Date(eu).toISOString(),licenseIssuedAt:new Date(ep).toISOString(),licenseCountry:eh.trim(),licenseNumber:Z.trim(),licenseCategory:eN.trim()})}),ej&&await ew(f);let s=await (0,i.apiFetch)("/reservations",{method:"POST",body:JSON.stringify({customerId:f,vehicleId:C,startDate:e.toISOString(),endDate:t.toISOString(),pickupLocation:P||void 0,returnLocation:O||void 0,depositAmount:Number.isFinite(Number(E))?Math.max(0,Math.round(Number(E))):0,paymentMode:R,additionalDrivers:Y?[{firstName:(0,n.bilingualPrimary)(eS.firstName).trim(),firstNameAr:eS.firstName.ar.trim()||void 0,lastName:(0,n.bilingualPrimary)(eS.lastName).trim(),lastNameAr:eS.lastName.ar.trim()||void 0,email:eS.email.trim()||void 0,phone:eS.phone.trim()||void 0,driverLicense:eS.driverLicense.trim(),licenseExpiry:eS.licenseExpiry?new Date(eS.licenseExpiry).toISOString():void 0,licenseIssuedAt:eS.licenseIssuedAt?new Date(eS.licenseIssuedAt).toISOString():void 0,dateOfBirth:eS.dateOfBirth?new Date(eS.dateOfBirth).toISOString():void 0,nationality:(0,n.bilingualPrimary)(eS.nationality).trim()||void 0,nationalityAr:eS.nationality.ar.trim()||void 0}]:[],notes:M||void 0})});c.push(`/reservations/${s.id}`)}catch(e){v(e.message)}finally{g(!1)}}return(0,s.useEffect)(()=>{let e=d.find(e=>e.id===f);e&&(ee(e.driverLicense??e.licenseNumber??""),es(e.dateOfBirth?e.dateOfBirth.slice(0,10):""),ei(e.nationality??""),en(eO(e,"fullAddress")),ec(eO(e,"identityDocumentNumber")),em(eO(e,"internationalLicenseNumber")),eo(e.licenseExpiry?e.licenseExpiry.slice(0,10):""),ex(e.licenseIssuedAt?e.licenseIssuedAt.slice(0,10):""),eg(e.licenseCountry??""),ev(e.licenseCategory??""),ey(e.licenseImageUrl??null),eb(null))},[f,d]),(0,s.useEffect)(()=>{if(!ej)return void eA(null);let e=URL.createObjectURL(ej);return eA(e),()=>URL.revokeObjectURL(e)},[ej]),(0,t.jsxs)("div",{className:"space-y-6 max-w-3xl",children:[(0,t.jsx)("div",{className:"flex items-start justify-between gap-3",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xl font-semibold text-slate-900",children:eD.title}),(0,t.jsx)("p",{className:"text-sm text-slate-500 mt-1",children:eD.subtitle})]})}),N?(0,t.jsx)("div",{className:"card p-4 text-sm text-red-700",children:N}):null,(0,t.jsx)("div",{className:"card p-6 space-y-4",children:p?(0,t.jsx)("p",{className:"text-sm text-slate-500",children:"Loading…"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.customer," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{value:j,onChange:e=>b(e.target.value),placeholder:eD.searchCustomer,className:"input-field mb-2"}),(0,t.jsxs)("select",{value:f,onChange:e=>y(e.target.value),className:"input-field",children:[(0,t.jsx)("option",{value:"",children:eD.selectCustomer}),eL.map(e=>(0,t.jsxs)("option",{value:e.id,children:[e.firstName," ",e.lastName," · ",e.email]},e.id))]}),(0,t.jsx)("button",{type:"button",className:"text-xs font-semibold text-blue-700 hover:underline mt-1",onClick:()=>V(e=>!e),children:eD.addCustomer}),q?(0,t.jsxs)("div",{className:"mt-2 rounded-lg border border-slate-200 p-3 space-y-2 bg-slate-50",children:[(0,t.jsx)("p",{className:"text-xs font-semibold text-slate-700",children:eD.addCustomerTitle}),(0,t.jsx)(n.BilingualInput,{label:eD.firstName,required:!0,value:K,onChange:z}),(0,t.jsx)(n.BilingualInput,{label:eD.lastName,required:!0,value:_,onChange:J}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.email," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{value:G,onChange:e=>Q(e.target.value),className:"input-field"})]}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.phone," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{required:!0,value:W,onChange:e=>X(e.target.value),className:"input-field"})]}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)("button",{type:"button",className:"btn-secondary",onClick:eE,disabled:U,children:U?eD.savingCustomer:eD.saveCustomer})})]}):null]}),(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.vehicle," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsxs)("select",{value:C,onChange:e=>A(e.target.value),className:"input-field",children:[(0,t.jsx)("option",{value:"",children:eD.selectVehicle}),eP.map(e=>(0,t.jsxs)("option",{value:e.id,children:[e.make," ",e.model," · ",e.licensePlate]},e.id))]}),0===u.length?(0,t.jsx)("span",{className:"text-xs text-orange-700",children:eD.noVehicles}):0===eP.length?(0,t.jsx)("span",{className:"text-xs text-orange-700",children:"fr"===r?"Des véhicules existent dans la flotte, mais aucun nest marqué Disponible.":"ar"===r?"توجد مركبات في الأسطول، لكن لا توجد مركبة بحالة متاحة.":"Vehicles exist in fleet, but none are marked Available."}):null]})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-slate-200 p-4 space-y-4",children:[(0,t.jsx)("p",{className:"text-sm font-semibold text-slate-900",children:eD.renterIdentity}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.dateOfBirth," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{type:"date",value:et,onChange:e=>es(e.target.value),className:"input-field"})]}),(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.nationality," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{value:ea,onChange:e=>ei(e.target.value),className:"input-field"})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.identityDocumentNumber," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{value:er,onChange:e=>ec(e.target.value),className:"input-field"})]}),(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700",children:eD.internationalLicenseNumber}),(0,t.jsx)("input",{value:ed,onChange:e=>em(e.target.value),className:"input-field"})]})]}),(0,t.jsxs)("label",{className:"space-y-1 block",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.fullAddress," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("textarea",{value:el,onChange:e=>en(e.target.value),className:"input-field min-h-[88px]"})]})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-slate-200 p-4 space-y-4",children:[(0,t.jsx)("p",{className:"text-sm font-semibold text-slate-900",children:eD.driverLicenseInfo}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.driverLicense," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{value:Z,onChange:e=>ee(e.target.value),className:"input-field"})]}),(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.licenseCountry," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{value:eh,onChange:e=>eg(e.target.value),className:"input-field"})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.licenseIssuedAt," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{type:"date",value:ep,onChange:e=>ex(e.target.value),className:"input-field"})]}),(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.licenseExpiry," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{type:"date",value:eu,onChange:e=>eo(e.target.value),className:"input-field"})]}),(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.licenseCategory," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{value:eN,onChange:e=>ev(e.target.value),className:"input-field"})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("label",{className:"space-y-1 block",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700",children:eD.licenseImage}),(0,t.jsx)("input",{type:"file",accept:"image/*",onChange:e=>eb(e.target.files?.[0]??null),className:"input-field"})]}),(0,t.jsx)("p",{className:"text-xs text-slate-500",children:eD.licenseImageHint}),ej?(0,t.jsxs)("p",{className:"text-xs font-medium text-slate-700",children:[eD.licenseImageSelected,": ",ej.name]}):ef?(0,t.jsx)("p",{className:"text-xs font-medium text-slate-700",children:eD.licenseImageCurrent}):(0,t.jsx)("p",{className:"text-xs text-slate-500",children:eD.noLicenseImage}),eC||ef?(0,t.jsx)("img",{src:eC??ef??"",alt:"Driver license preview",className:"h-40 w-full max-w-sm rounded-xl border border-slate-200 object-cover"}):null]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.startDate," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{type:"datetime-local",value:S,onChange:e=>I(e.target.value),className:"input-field"})]}),(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.endDate," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{type:"datetime-local",value:D,onChange:e=>L(e.target.value),className:"input-field"})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700",children:eD.pickup}),(0,t.jsx)("input",{value:P,onChange:e=>B(e.target.value),className:"input-field"})]}),(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700",children:eD.return}),(0,t.jsx)("input",{value:O,onChange:e=>w(e.target.value),className:"input-field"})]})]}),(0,t.jsxs)("label",{className:"space-y-1 block",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700",children:eD.deposit}),(0,t.jsx)("input",{type:"number",min:0,value:E,onChange:e=>k(e.target.value),className:"input-field"})]}),(0,t.jsxs)("label",{className:"space-y-1 block",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700",children:eD.paymentMode}),(0,t.jsx)("select",{value:R,onChange:e=>F(e.target.value),className:"input-field",children:["CASH","CARD","BANK_TRANSFER","AMANPAY","PAYPAL"].map(e=>(0,t.jsx)("option",{value:e,children:eD.paymentModes[e]},e))})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-slate-200 p-4 space-y-4",children:[(0,t.jsxs)("label",{className:"flex items-center gap-3",children:[(0,t.jsx)("input",{type:"checkbox",checked:Y,onChange:e=>$(e.target.checked),className:"h-4 w-4 rounded border-slate-300 text-blue-600"}),(0,t.jsx)("span",{className:"text-sm font-medium text-slate-900",children:eD.addAdditionalDriver})]}),Y?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("p",{className:"text-sm font-semibold text-slate-900",children:eD.additionalDriverInfo}),(0,t.jsx)(n.BilingualInput,{label:eD.firstName,required:!0,value:eS.firstName,onChange:e=>eI(t=>({...t,firstName:e}))}),(0,t.jsx)(n.BilingualInput,{label:eD.lastName,required:!0,value:eS.lastName,onChange:e=>eI(t=>({...t,lastName:e}))}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700",children:eD.email}),(0,t.jsx)("input",{value:eS.email,onChange:e=>eI(t=>({...t,email:e.target.value})),className:"input-field"})]}),(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700",children:eD.phone}),(0,t.jsx)("input",{value:eS.phone,onChange:e=>eI(t=>({...t,phone:e.target.value})),className:"input-field"})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-slate-700",children:[eD.driverLicense," ",(0,t.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,t.jsx)("input",{value:eS.driverLicense,onChange:e=>eI(t=>({...t,driverLicense:e.target.value})),className:"input-field"})]}),(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsx)(n.BilingualInput,{label:eD.nationality,value:eS.nationality,onChange:e=>eI(t=>({...t,nationality:e}))})})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700",children:eD.dateOfBirth}),(0,t.jsx)("input",{type:"date",value:eS.dateOfBirth,onChange:e=>eI(t=>({...t,dateOfBirth:e.target.value})),className:"input-field"})]}),(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700",children:eD.licenseIssuedAt}),(0,t.jsx)("input",{type:"date",value:eS.licenseIssuedAt,onChange:e=>eI(t=>({...t,licenseIssuedAt:e.target.value})),className:"input-field"})]}),(0,t.jsxs)("label",{className:"space-y-1",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700",children:eD.licenseExpiry}),(0,t.jsx)("input",{type:"date",value:eS.licenseExpiry,onChange:e=>eI(t=>({...t,licenseExpiry:e.target.value})),className:"input-field"})]})]})]}):null]}),(0,t.jsxs)("label",{className:"space-y-1 block",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700",children:eD.notes}),(0,t.jsx)("textarea",{value:M,onChange:e=>T(e.target.value),className:"input-field min-h-[96px]",placeholder:eD.notesPlaceholder})]}),(0,t.jsxs)("div",{className:"pt-2 flex items-center justify-end gap-3",children:[(0,t.jsx)("button",{type:"button",className:"btn-secondary",onClick:()=>c.push("/reservations"),children:eD.cancel}),(0,t.jsx)("button",{type:"button",className:"btn-primary",onClick:ek,disabled:h||!eB,children:h?eD.creating:eD.create})]})]})})]})}])}]);