import{b as m,u as y}from"./vendor-query-CKQAY9LX.js";import{s as o}from"./index-DbhEjV5W.js";const j=()=>m({mutationFn:async({itemId:t,itemType:r,viewerType:n="candidate"})=>{const{data:{user:i}}=await o.auth.getUser(),a=`view_${r}_${t}`,_=sessionStorage.getItem(a);if(_){const s=(Date.now()-parseInt(_))/36e5;if(s<1){console.log(`Skipping duplicate view (last viewed ${Math.round(s*60)} minutes ago)`);return}}const c=navigator.userAgent,u=document.referrer;if(r==="job"){const{error:s}=await o.from("job_views").insert({viewer_id:(i==null?void 0:i.id)||null,job_id:t,viewer_type:n,user_agent:c,referrer:u||null,session_id:crypto.randomUUID()});if(s)throw s}else if(r==="profile"){if(i!=null&&i.id&&i.id===t){console.log("Skipping self-view tracking");return}const{error:s}=await o.from("profile_views").insert({viewer_id:(i==null?void 0:i.id)||null,viewed_profile_id:t,viewer_type:n});if(s)throw s}sessionStorage.setItem(a,Date.now().toString())},retry:1}),h=t=>y({queryKey:["employerViewStats",t],queryFn:async()=>{if(!t)return{totalViews:0,uniqueViewers:0,recentViews:0,viewsByDay:[],topViewedJobs:[]};const{data:r}=await o.from("jobs").select("id, title").eq("posted_by",t);if(!r||r.length===0)return{totalViews:0,uniqueViewers:0,recentViews:0,viewsByDay:[],topViewedJobs:[]};const n=r.map(e=>e.id),{count:i}=await o.from("job_views").select("*",{count:"exact",head:!0}).in("job_id",n),{data:a}=await o.from("job_views").select("viewer_id").in("job_id",n).not("viewer_id","is",null),_=new Set(a==null?void 0:a.map(e=>e.viewer_id)).size,c=new Date;c.setDate(c.getDate()-7);const{count:u}=await o.from("job_views").select("*",{count:"exact",head:!0}).in("job_id",n).gte("viewed_at",c.toISOString()),s=new Date;s.setDate(s.getDate()-30);const{data:v}=await o.from("job_views").select("viewed_at").in("job_id",n).gte("viewed_at",s.toISOString()).order("viewed_at",{ascending:!0}),d=(v==null?void 0:v.reduce((e,w)=>{const g=new Date(w.viewed_at).toISOString().split("T")[0];return e[g]=(e[g]||0)+1,e},{}))||{},f=Object.entries(d).map(([e,w])=>({date:e,views:w})),{data:l}=await o.from("job_views").select("job_id").in("job_id",n),b=(l==null?void 0:l.reduce((e,w)=>(e[w.job_id]=(e[w.job_id]||0)+1,e),{}))||{},V=Object.entries(b).map(([e,w])=>{var g;return{jobId:e,title:((g=r.find(p=>p.id===e))==null?void 0:g.title)||"Unknown Job",views:w}}).sort((e,w)=>w.views-e.views).slice(0,5);return{totalViews:i||0,uniqueViewers:_,recentViews:u||0,viewsByDay:f,topViewedJobs:V}},enabled:!!t,staleTime:5*60*1e3}),q=t=>y({queryKey:["profileViewStats",t],queryFn:async()=>{if(!t)return{totalViews:0,uniqueViewers:0,recentViews:0,viewsByDay:[]};const{count:r}=await o.from("profile_views").select("*",{count:"exact",head:!0}).eq("viewed_profile_id",t),{data:n}=await o.from("profile_views").select("viewer_id").eq("viewed_profile_id",t).not("viewer_id","is",null),i=new Set(n==null?void 0:n.map(d=>d.viewer_id)).size,a=new Date;a.setDate(a.getDate()-7);const{count:_}=await o.from("profile_views").select("*",{count:"exact",head:!0}).eq("viewed_profile_id",t).gte("viewed_at",a.toISOString()),c=new Date;c.setDate(c.getDate()-30);const{data:u}=await o.from("profile_views").select("viewed_at").eq("viewed_profile_id",t).gte("viewed_at",c.toISOString()).order("viewed_at",{ascending:!0}),s=(u==null?void 0:u.reduce((d,f)=>{const l=new Date(f.viewed_at).toISOString().split("T")[0];return d[l]=(d[l]||0)+1,d},{}))||{},v=Object.entries(s).map(([d,f])=>({date:d,views:f}));return{totalViews:r||0,uniqueViewers:i,recentViews:_||0,viewsByDay:v}},enabled:!!t,staleTime:5*60*1e3});export{q as a,h as b,j as u};