import{r as s}from"./index-CXvzG7LC.js";import{c as C,g as k,a as _,B as y}from"./bookingApi-CCm_8x0I.js";const B={PARKING_CLOSED:"Le parking est actuellement fermé.",PARKING_FULL:"Le parking est complet pour ces dates.",INVALID_DATES:"Les dates sélectionnées sont invalides.",VEHICLE_TYPE_NOT_ACCEPTED:"Ce type de véhicule n'est pas accepté.",VALIDATION_ERROR:"Veuillez vérifier les informations saisies.",BOOKING_FAILED:"La réservation a échoué. Veuillez réessayer.",BOOKING_SERVICE_UNAVAILABLE:"Le service de réservation est temporairement indisponible. Réessayez dans quelques minutes.",BOOKING_NOT_CANCELLABLE:"Cette réservation ne peut plus être annulée.",CANCEL_FAILED:"L'annulation a échoué. Veuillez réessayer.",ALREADY_CANCELLED:"Cette réservation est déjà annulée."};function l(r){return r instanceof y?B[r.code]||r.message||"Une erreur est survenue.":"Une erreur inattendue est survenue. Veuillez réessayer."}function R(){const[r,n]=s.useState(!1),[c,t]=s.useState(null),[E,o]=s.useState(null),[L,u]=s.useState(null),A=s.useCallback(async a=>{n(!0),t(null);try{const e=await C(a);return o(e),e}catch(e){return t(l(e)),null}finally{n(!1)}},[]),g=s.useCallback(async a=>{n(!0),t(null);try{const e=await k(a);return u(e),e}catch(e){return t(l(e)),null}finally{n(!1)}},[]),f=s.useCallback(async(a,e)=>{n(!0),t(null);try{return await _(a,e)}catch(i){return t(l(i)),null}finally{n(!1)}},[]),p=s.useCallback(()=>{n(!1),t(null),o(null),u(null)},[]);return{loading:r,error:c,bookingResponse:E,bookingDetails:L,create:A,fetchBooking:g,cancel:f,reset:p}}export{R as u};