import{u as _,a as l,b as c}from"./vendor-query-CKQAY9LX.js";import{u as d,s as u,aa as y,G as p,v as m}from"./index-DbhEjV5W.js";const o=(e,s)=>{var t;if((e==null?void 0:e.code)==="PGRST301"||(e==null?void 0:e.code)==="PGRST302"||(e==null?void 0:e.status)===401||(e==null?void 0:e.status)===403||((t=e==null?void 0:e.message)==null?void 0:t.includes("JWT"))){y.debug(`${s}: Auth error (expected during auth transitions)`,{code:e==null?void 0:e.code,message:e==null?void 0:e.message});return}y.error(`${s}:`,{message:(e==null?void 0:e.message)||"Unknown error",code:e==null?void 0:e.code,details:e==null?void 0:e.details,hint:e==null?void 0:e.hint,status:e==null?void 0:e.status});{const i=new Error(`${s}: ${(e==null?void 0:e.message)||"Unknown database error"}`);i.name="SupabaseQueryError",p(i,{tags:{context:s,errorCode:(e==null?void 0:e.code)||"unknown"},extra:{supabaseError:{code:e==null?void 0:e.code,message:e==null?void 0:e.message,details:e==null?void 0:e.details,hint:e==null?void 0:e.hint,status:e==null?void 0:e.status}}})}throw e},q=()=>{const{user:e}=d();return _({queryKey:["resume-uploads",e==null?void 0:e.id],queryFn:async()=>{if(!(e!=null&&e.id))return[];const{data:s,error:a}=await u.from("resume_uploads").select("*").eq("user_id",e.id).order("created_at",{ascending:!1});return a&&o(a,"Error fetching resume uploads"),s||[]},enabled:!!(e!=null&&e.id),staleTime:5*60*1e3})},w=()=>{const{user:e}=d();return _({queryKey:["current-resume",e==null?void 0:e.id],queryFn:async()=>{if(!(e!=null&&e.id))return null;const{data:s,error:a}=await u.from("resume_uploads").select("*").eq("user_id",e.id).eq("is_current",!0).maybeSingle();return a&&o(a,"Error fetching current resume"),s},enabled:!!(e!=null&&e.id),staleTime:5*60*1e3})},v=()=>{const e=l(),{user:s}=d(),{toast:a}=m();return c({mutationFn:async t=>{if(!(s!=null&&s.id))throw new Error("User not authenticated");t.is_current&&await u.from("resume_uploads").update({is_current:!1}).eq("user_id",s.id);const{data:i,error:n}=await u.from("resume_uploads").insert({user_id:s.id,file_name:t.file_name,file_size:t.file_size,file_type:t.file_type,storage_path:t.storage_path,is_current:t.is_current,upload_status:t.upload_status,analysis_status:t.analysis_status,upload_date:t.upload_date||new Date().toISOString()}).select().single();if(n)throw n;return i},onSuccess:t=>{e.invalidateQueries({queryKey:["resume-uploads"]}),e.invalidateQueries({queryKey:["current-resume"]}),a({title:"Resume uploaded successfully",description:"Your resume has been saved and is ready for analysis."})},onError:t=>{a({title:"Upload failed",description:t.message||"Failed to save resume information",variant:"destructive"})}})},E=()=>{const e=l(),{user:s}=d(),{toast:a}=m();return c({mutationFn:async({id:t,updates:i})=>{if(!(s!=null&&s.id))throw new Error("User not authenticated");i.is_current===!0&&await u.from("resume_uploads").update({is_current:!1}).eq("user_id",s.id).neq("id",t);const{data:n,error:f}=await u.from("resume_uploads").update(i).eq("id",t).eq("user_id",s.id).select().single();if(f)throw f;return n},onSuccess:()=>{e.invalidateQueries({queryKey:["resume-uploads"]}),e.invalidateQueries({queryKey:["current-resume"]})},onError:t=>{a({title:"Update failed",description:t.message||"Failed to update resume",variant:"destructive"})}})},b=()=>{const e=l(),{user:s}=d(),{toast:a}=m();return c({mutationFn:async t=>{if(!(s!=null&&s.id))throw new Error("User not authenticated");await u.from("cv_analysis").delete().eq("resume_upload_id",t);const{error:i}=await u.from("resume_uploads").delete().eq("id",t).eq("user_id",s.id);if(i)throw i;const{data:n}=await u.from("resume_uploads").select("id").eq("user_id",s.id).limit(1);n&&n.length>0&&await u.from("resume_uploads").update({is_current:!0}).eq("id",n[0].id)},onSuccess:()=>{e.invalidateQueries({queryKey:["resume-uploads"]}),e.invalidateQueries({queryKey:["current-resume"]}),e.invalidateQueries({queryKey:["all-standalone-cv-analyses"]}),a({title:"Resume deleted",description:"Your resume has been successfully deleted."})},onError:t=>{a({title:"Delete failed",description:t.message||"Failed to delete resume",variant:"destructive"})}})};export{w as a,v as b,E as c,b as d,q as u};