var h=Object.defineProperty;var E=(r,t,e)=>t in r?h(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var l=(r,t,e)=>E(r,typeof t!="symbol"?t+"":t,e);const u="https://www.parking.ai/apiv2/booking",p="pk_live_NHBekXtof&BD7BCG";class i extends Error{constructor(e,s,n){super(s);l(this,"code");l(this,"httpStatus");this.code=e,this.httpStatus=n,this.name="BookingApiError"}}function g(r){return Object.fromEntries(Object.entries(r).filter(([,t])=>t==null?!1:typeof t=="string"?t.trim().length>0:!0))}async function d(r){var n,a;const t=await fetch(`${u}/booking`,{method:"POST",headers:{Authorization:`Bearer ${p}`,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(g(r))}),e=await t.text();if(console.log("[BookingAPI] Status:",t.status,"Raw response:",e),!(e!=null&&e.trim())){const o=t.status>=500?"BOOKING_SERVICE_UNAVAILABLE":"EMPTY_RESPONSE",c=t.status>=500?"Service de réservation temporairement indisponible. Merci de réessayer dans quelques minutes.":`Erreur API (HTTP ${t.status})`;throw new i(o,c,t.status)}let s;try{const o=e.replace(/^[\s\S]*?(?=\{)/,"");s=JSON.parse(o)}catch{throw new i("PARSE_ERROR",`Erreur API (HTTP ${t.status}): ${e.substring(0,200)}`,t.status)}if(!s.success){const o=s;throw new i(((n=o.error)==null?void 0:n.code)||"UNKNOWN",((a=o.error)==null?void 0:a.message)||`Erreur serveur (HTTP ${t.status})`,t.status)}return s.data}async function f(r){return d(r)}async function w(r){var s;const e=await(await fetch(`${u}/booking/services?parking_id=${r}&lang=fr`,{method:"GET",headers:{Authorization:`Bearer ${p}`,Accept:"application/json"}})).json();return e.success?((s=e.data)==null?void 0:s.services)??[]:(console.warn("[BookingAPI] Failed to fetch services:",e),[])}async function S(r,t){var a,o;const e=await fetch(`${u}/booking/${r}/cancel`,{method:"POST",headers:{Authorization:`Bearer ${p}`,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(t?{refund_amount:t}:{})}),s=await e.text();if(console.log("[BookingAPI] Cancel status:",e.status,"Raw response:",s),!(s!=null&&s.trim()))throw new i(e.status>=500?"BOOKING_SERVICE_UNAVAILABLE":"EMPTY_RESPONSE",e.status>=500?"Service temporairement indisponible.":`Erreur API (HTTP ${e.status})`,e.status);let n;try{const c=s.replace(/^[\s\S]*?(?=\{)/,"");n=JSON.parse(c)}catch{throw new i("PARSE_ERROR",`Erreur API: ${s.substring(0,200)}`,e.status)}if(!n.success){const c=n;throw new i(((a=c.error)==null?void 0:a.code)||"CANCEL_FAILED",((o=c.error)==null?void 0:o.message)||"Impossible d'annuler la réservation.",e.status)}return n.data}async function O(r){var n,a;const t=await fetch(`${u}/booking/${r}`,{method:"GET",headers:{Authorization:`Bearer ${p}`,Accept:"application/json"}}),e=await t.text();let s;try{const o=e.replace(/^[\s\S]*?(?=\{)/,"");s=JSON.parse(o)}catch{throw new i("PARSE_ERROR",`Erreur API: ${e.substring(0,200)}`,t.status)}if(!s.success){const o=s;throw new i(((n=o.error)==null?void 0:n.code)||"UNKNOWN",((a=o.error)==null?void 0:a.message)||`Erreur serveur (HTTP ${t.status})`,t.status)}return s.data}export{i as B,S as a,f as c,w as f,O as g};