1import{al as k,j as g,E as v,h as S,D as f,s as i,a1 as d,a2 as u,a0 as q,u as c,$ as w}from"./index-DaxYHL_c.js";import{a as F}from"./isBefore-Dj7M197n.js";function C(e,r){const t=k(e.start),a=k(e.end);let n=+t>+a;const o=n?+t:+a,s=n?a:t;s.setHours(0,0,0,0);let l=1;const p=[];for(;+s<=o;)p.push(k(s)),s.setDate(s.getDate()+l),s.setHours(0,0,0,0);return n?p.reverse():p}function Q(e,r){return F(e,-r)}const x={sm:"h-3 w-3",md:"h-5 w-5",lg:"h-6 w-6"},E=({rating:e,maxRating:r=5,size:t="md",interactive:a=!1,onRatingChange:n})=>{const o=s=>{a&&n&&n(s+1)};return g.jsx("div",{className:"flex items-center gap-0.5",children:Array.from({length:r}).map((s,l)=>{const p=l<e;return g.jsx("button",{type:"button",disabled:!a,onClick:()=>o(l),className:v("transition-colors",a&&"cursor-pointer hover:scale-110",!a&&"cursor-default"),children:g.jsx(S,{className:v(x[t],p?"fill-gold text-gold":"fill-muted text-muted-foreground/30")})},l)})})},A=({rating:e,totalReviews:r,size:t="sm"})=>r===0?g.jsx("span",{className:"text-xs text-muted-foreground",children:"No reviews yet"}):g.jsxs("div",{className:"flex items-center gap-1.5",children:[g.jsx(E,{rating:Math.round(e),size:t}),g.jsxs("span",{className:v("text-muted-foreground",t==="sm"?"text-xs":"text-sm"),children:[e.toFixed(1)," (",r,")"]})]}),N=e=>f({queryKey:["supplier-testimonials",e],queryFn:async()=>{if(!e)return[];const{data:r,error:t}=await i.from("supplier_testimonials").select("*").eq("supplier_id",e).order("created_at",{ascending:!1});if(t)throw t;return r},enabled:!!e}),j=()=>{const e=d();return u({mutationFn:async r=>{const{data:t,error:a}=await i.from("supplier_testimonials").insert(r).select().single();if(a)throw a;return t},onSuccess:(r,t)=>{e.invalidateQueries({queryKey:["supplier-testimonials",t.supplier_id]})}})},P=()=>{const e=d();return u({mutationFn:async({id:r,supplier_id:t,...a})=>{const{data:n,error:o}=await i.from("supplier_testimonials").update(a).eq("id",r).select().single();if(o)throw o;return{...n,supplier_id:t}},onSuccess:r=>{e.invalidateQueries({queryKey:["supplier-testimonials",r.supplier_id]})}})},U=()=>{const e=d();return u({mutationFn:async({id:r,supplierId:t})=>{const{error:a}=await i.from("supplier_testimonials").delete().eq("id",r);if(a)throw a;return{supplierId:t}},onSuccess:r=>{e.invalidateQueries({queryKey:["supplier-testimonials",r.supplierId]})}})},B=e=>f({queryKey:["supplier-packages",e],queryFn:async()=>{if(!e)return[];const{data:r,error:t}=await i.from("supplier_packages").select("*").eq("supplier_id",e).eq("is_active",!0).order("display_order",{ascending:!0});if(t)throw t;return r},enabled:!!e}),M=()=>{const{user:e}=q();return f({queryKey:["my-packages",e==null?void 0:e.id],queryFn:async()=>{if(!(e!=null&&e.id))return[];const{data:r}=await i.from("suppliers").select("id").eq("owner_user_id",e.id).maybeSingle();if(!r)return[];const{data:t,error:a}=await i.from("supplier_packages").select("*").eq("supplier_id",r.id).order("display_order",{ascending:!0});if(a)throw a;return t},enabled:!!(e!=null&&e.id)})},T=()=>{const e=d(),{user:r}=q();return u({mutationFn:async t=>{if(!(r!=null&&r.id))throw new Error("Not authenticated");const{data:a}=await i.from("suppliers").select("id").eq("owner_user_id",r.id).maybeSingle();if(!a)throw new Error("No supplier profile found");const{data:n,error:o}=await i.from("supplier_packages").insert({...t,supplier_id:a.id}).select().single();if(o)throw o;return n},onSuccess:()=>{e.invalidateQueries({queryKey:["my-packages"]}),c.success("Package created successfully")},onError:()=>{c.error("Failed to create package")}})},O=()=>{const e=d();return u({mutationFn:async({id:r,...t})=>{const{data:a,error:n}=await i.from("supplier_packages").update(t).eq("id",r).select().single();if(n)throw n;return a},onSuccess:()=>{e.invalidateQueries({queryKey:["my-packages"]}),c.success("Package updated successfully")},onError:()=>{c.error("Failed to update package")}})},$=()=>{const e=d();return u({mutationFn:async r=>{const{error:t}=await i.from("supplier_packages").delete().eq("id",r);if(t)throw t},onSuccess:()=>{e.invalidateQueries({queryKey:["my-packages"]}),c.success("Package deleted successfully")},onError:()=>{c.error("Failed to delete package")}})},H=()=>{const{user:e}=q();return f({queryKey:["booking-requests",e==null?void 0:e.id],queryFn:async()=>
1{if(!(e!=null&&e.id))return[];const{data:r}=await i.from("suppliers").select("id").eq("owner_user_id",e.id).maybeSingle();if(!r)return[];const{data:t,error:a}=await i.from("booking_requests").select(` 2 *, 3 package:supplier_packages(name, price) 4 `).eq("supplier_id",r.id).order("created_at",{ascending:!1});if(a)throw a;return t},enabled:!!(e!=null&&e.id)})},L=()=>{const e=d(),{user:r}=q();return u({mutationFn:async t=>{let a=50;r!=null&&r.id&&(a+=15),t.couple_phone&&(a+=10),t.package_id&&(a+=10),t.message&&t.message.length>50&&(a+=10);const{data:n,error:o}=await i.rpc("get_supplier_contacts",{_ids:[t.supplier_id]}),s=(n==null?void 0:n[0])??null;o&&console.error("Error fetching supplier:",o);let l;if(t.package_id){const{data:m}=await i.from("supplier_packages").select("name").eq("id",t.package_id).maybeSingle();l=m==null?void 0:m.name}const _=(m=>m?/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(m):!1)(t.package_id)?t.package_id:null;console.log("Hook - package_id received:",t.package_id,"validated:",_);const y={supplier_id:t.supplier_id,couple_name:t.couple_name,couple_email:t.couple_email,couple_phone:t.couple_phone||null,requested_date:t.requested_date,event_type:t.event_type||null,message:t.message||null,couple_user_id:(r==null?void 0:r.id)||null,lead_score:Math.min(a,100),..._&&{package_id:_}};console.log("Inserting booking request with data:",JSON.stringify(y,null,2));const{data:h,error:b}=await i.from("booking_requests").insert(y).select().single();if(b)throw console.error("Booking request insert error:",b),b;console.log("Booking request created successfully:",h);try{console.log("Sending booking notification, supplierId:",t.supplier_id,"supplierEmail:",s==null?void 0:s.email),await i.functions.invoke("send-booking-notification",{body:{bookingId:h.id,supplierId:t.supplier_id,supplierEmail:s==null?void 0:s.email,supplierName:(s==null?void 0:s.name)||"Supplier",coupleName:t.couple_name,coupleEmail:t.couple_email,couplePhone:t.couple_phone,requestedDate:t.requested_date,packageName:l,message:t.message,baseUrl:window.location.origin}})}catch(m){console.error("Failed to send booking notification:",m)}return h},onSuccess:()=>{e.invalidateQueries({queryKey:["booking-requests"]}),c.success("Booking request sent successfully!")},onError:()=>{c.error("Failed to send booking request")}})},R=()=>{const e=d();return u({mutationFn:async({id:r,...t})=>{const{data:a,error:n}=await i.from("booking_requests").update(t).eq("id",r).select().single();if(n)throw n;return a},onSuccess:()=>{e.invalidateQueries({queryKey:["booking-requests"]}),c.success("Booking request updated")},onError:()=>{c.error("Failed to update booking request")}})},z=e=>{const r=d(),{data:t,isLoading:a}=f({queryKey:["supplier-availability",e],queryFn:async()=>{if(!e)return[];const{data:s,error:l}=await i.from("supplier_availability").select("*").eq("supplier_id",e).order("date",{ascending:!0});if(l)throw l;return s},enabled:!!e}),n=u({mutationFn:async({date:s,status:l,notes:p})=>{if(!e)throw new Error("No supplier ID");const{data:_}=await i.from("supplier_availability").select("id").eq("supplier_id",e).eq("date",s).maybeSingle();if(_){const{error:y}=await i.from("supplier_availability").update({status:l,notes:p}).eq("id",_.id);if(y)throw y}else{const{error:y}=await i.from("supplier_availability").insert({supplier_id:e,date:s,status:l,notes:p});if(y)throw y}},onSuccess:()=>{r.invalidateQueries({queryKey:["supplier-availability",e]}),c.success("Availability updated")},onError:()=>{c.error("Failed to update availability")}}),o=u({mutationFn:async s=>{if(!e)throw new Error("No supplier ID");const{error:l}=await i.from("supplier_availability").delete().eq("supplier_id",e).eq("date",s);if(l)throw l},onSuccess:()=>{r.invalidateQueries({queryKey:["supplier-availability",e]}),c.success("Availability cleared")},onError:()=>{c.error("Failed to clear availability")}});return{availability:t||[],isLoading:a,setAvailability:n,deleteAvailability:o}},V=e=>f({queryKey:["supplier-articles","supplier",e],queryFn:async()=>{const{data:r,error:t}=await i.from("supplier_articles").select("*").eq("supplier_id",e).eq("published",!0).order("published_at",{ascending:!1});if(t)throw t;return r},enabled:!!e}),J=()=>{const{user:e}=q();return f({queryKey:["my-articles",e==null?void 0:e.id],queryFn:async()=>{const{data:r}=await i.from("suppliers").select("id").eq("owner_user_id",e.id).single();if(!r)return[];const{data:t,error:a}=await i.from("supplier_articles").select("*").eq("supplier_id",r.id).order("created_at",{ascending:!1});if(a)throw a;return t},enabled:!!e})},G=()=>{const e=d(),{user:r}=q();return u({mutationFn:async t=>{const{data:a}=await i.from("suppliers").select("id").eq("owner_user_id",r.id).single();if(!a)throw new Error("No supplier found");const n=t.title.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")+"-"+Date.now().toString(36),{data:o,error:s}=await i.from("supplier_articles").insert({supplier_id:a.id,title:t.title,slug:n,content:t.content,excerpt:t.excerpt||null,featured_image:t.featured_image||null,published:t.published||!1,published_at:t.published?new Date().toISOString():null}).select().single();if(s)throw s;return o},onSuccess:()=>
4{e.invalidateQueries({queryKey:["my-articles"]}),e.invalidateQueries({queryKey:["supplier-articles"]}),w({title:"Article created successfully!"})},onError:t=>{w({title:"Failed to create article",description:t.message,variant:"destructive"})}})},W=()=>{const e=d();return u({mutationFn:async({id:r,...t})=>{const a={...t};t.title&&(a.slug=t.title.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")+"-"+Date.now().toString(36)),t.published&&(a.published_at=new Date().toISOString());const{data:n,error:o}=await i.from("supplier_articles").update(a).eq("id",r).select().single();if(o)throw o;return n},onSuccess:()=>{e.invalidateQueries({queryKey:["my-articles"]}),e.invalidateQueries({queryKey:["supplier-articles"]}),w({title:"Article updated successfully!"})},onError:r=>{w({title:"Failed to update article",description:r.message,variant:"destructive"})}})},X=()=>{const e=d();return u({mutationFn:async r=>{const{error:t}=await i.from("supplier_articles").delete().eq("id",r);if(t)throw t},onSuccess:()=>{e.invalidateQueries({queryKey:["my-articles"]}),e.invalidateQueries({queryKey:["supplier-articles"]}),w({title:"Article deleted"})},onError:r=>{w({title:"Failed to delete article",description:r.message,variant:"destructive"})}})};export{A,E as S,B as a,L as b,z as c,V as d,C as e,M as f,T as g,O as h,$ as i,H as j,R as k,J as l,G as m,W as n,X as o,j as p,P as q,U as r,Q as s,N as u};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.