1import{p as oe,r as N,j as e}from"./react-vendor-Ca39dfnS.js";import{a as me,u as L}from"./query-vendor-CZuItqE6.js";import{u as xe,a5 as V,K as he,B as o,C as c,d,L as M,R as z,U as K,V as U,W as q,X as C,A as je,ad as pe,q as ge,D as ue,y as Ne,z as fe,E as be,G as ye,I as ve,aa as we,w as Q,a as m,b as x,c as Se,e as D,ag as ke}from"./main-BAUbw78W.js";import{s as Ce,f as n,m as Re,n as Ae,p as h}from"./chart-vendor-DTBERZQl.js";import{$ as E,F as Me,m as J,r as R,Q as Z,b as j,x as X,q as De,bh as Y,a2 as Ee,ai as ee,aE as se,aZ as _,C as T,M as Oe,p as Pe,aX as _e}from"./ui-vendor-BsCBchWs.js";import"./modulepreload-polyfill-B5Qt9EMX.js";const p={leads:{icon:R,color:"bg-blue-500",label:"Leads"},marketing:{icon:Z,color:"bg-purple-500",label:"Marketing"},sales:{icon:X,color:"bg-green-500",label:"Sales"},finance:{icon:De,color:"bg-yellow-500",label:"Finance"},coo:{icon:j,color:"bg-red-500",label:"COO"},ciso:{icon:j,color:"bg-orange-500",label:"CISO"},compliance:{icon:j,color:"bg-indigo-500",label:"Compliance"},project_management:{icon:j,color:"bg-teal-500",label:"Project Management"},legal:{icon:j,color:"bg-slate-500",label:"Legal"},customer_success:{icon:R,color:"bg-pink-500",label:"Customer Success"},tech_support:{icon:R,color:"bg-cyan-500",label:"Support"},quality_assurance:{icon:j,color:"bg-emerald-500",label:"QA"},business_development:{icon:X,color:"bg-violet-500",label:"Business Dev"},account_management:{icon:R,color:"bg-amber-500",label:"Account Mgmt"},product_rd:{icon:j,color:"bg-lime-500",label:"Product R&D"},data_analytics:{icon:j,color:"bg-sky-500",label:"Data Analytics"},communications_pr:{icon:Z,color:"bg-fuchsia-500",label:"Comms & PR"},hr:{icon:R,color:"bg-rose-500",label:"HR"}};function Be(){const{businessId:f}=oe(),{toast:b}=xe(),[y,ae]=N.useState("all"),[v,te]=N.useState("all"),[g,F]=N.useState(Ce(new Date,{weekStartsOn:1})),[l,I]=N.useState(null),[le,w]=N.useState(!1),[A,W]=N.useState(""),[u,$]=N.useState(null),S=new URLSearchParams;y&&y!=="all"&&S.set("segment",y),v&&v!=="all"&&S.set("reportType",v),g&&S.set("weekStart",n(g,"yyyy-MM-dd"));const ie=S.toString()?`/api/businesses/${f}/reports?${S.toString()}`:`/api/businesses/${f}/reports`,{data:G=[],isLoading:ne,refetch:O}=me({queryKey:[ie,y,v,g],enabled:!!f}),k=L({mutationFn:async s=>Q(`/api/businesses/${f}/reports/generate`,{method:"POST",body:JSON.stringify(s)}),onSuccess:()=>{b({title:"Reports generated successfully"}),O()},onError:()=>{b({title:"Failed to generate reports",variant:"destructive"})}}),P=L({mutationFn:async s=>Q(`/api/businesses/${f}/reports/${s.reportId}/email`,{method:"POST",body:JSON.stringify({recipients:s.recipients})}),onSuccess:()=>{b({title:"Report email sent successfully"}),w(!1),W(""),O()},onError:()=>{b({title:"Failed to send report email",variant:"destructive"})}}),B=s=>{k.mutate({reportType:s,weekStart:n(g,"yyyy-MM-dd")})},re=()=>{if(!u||!A)return;const s=A.split(",").map(r=>r.trim()).filter(r=>r);if(s.length===0){b({title:"Please enter at least one email address",variant:"destructive"});return}P.mutate({reportId:u.id,recipients:s})},H=s=>{if(s==null)return"â";if(typeof s=="number")return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toFixed(0);if(typeof s=="object"){const r=Object.entries(s).filter(([t,a])=>typeof a=="number"||typeof a=="string");return r.length>0?String(r[0][1]):"â"}return String(s)},ce=s=>{const r=p[s.segment].icon,t=s.reportType==="eod_friday";return e.jsxs(c,{className:"cursor-pointer hover-elevate",onClick:()=>I(s),"data-testid":`card-report-${s.id}`,children:[e.jsx(m,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:`p-2 rounded-lg ${p[s.segment].color} text-white`,children:e.jsx(r,{className:"h-4 w-4"})}),e.jsxs("div",{children:[e.jsxs(x,{className:"text-base",children:[p[s.segment].label," - ",t?"EOD Report":"Weekly Goals"]}),e.jsxs(Se,{children:["Week ",n(h(s.weekStart),"w")," | ",n(h(s.weekStart),"MMM dd")]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[s.generated&&e.jsxs(D,{variant:"outline",className:"text-xs",children:[e.jsx(T,{className:"h-3 w-3 mr-1"}),"Generated"]}),s.emailSent&&e.jsxs(D,{variant:"outline",className:"text-xs",children:[e.jsx(Oe,{className:"h-3 w-3 mr-1"}),"Sent"]}),s.reviewed&&e.jsxs(D,{variant:"outline",className:"text-xs",children:[e.jsx(T,{className:"h-3 w-3 mr-1"}),"Reviewed"]})]})]})}),e.jsxs(d,{children:[e.jsx("p",{className:"text-sm text-muted-foreground line-clamp-2",children:s.data.summary}),s.data.metrics&&Object.keys(s.data.metrics).length>0&&e.jsx("div",{className:"mt-3 grid grid-cols-3 gap-2",children:Object.entries(s.data.metrics).filter(([a])=>!["weekStart","weekEnd","weekNumber","segments"].includes(a)).slice(0,3).map(([a,i])=>e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"text-lg font-semibold",children:H(i)}),e.jsx("div",{className:"text-xs text-muted-foreground",children:a.replace(/([A-Z])/g," $1").replace(/_/g," ").trim()})]},a))}),e.jsxs("div",{className:"mt-4 flex items-center justify-between",children:[e.jsxs(o,{size:"sm",variant:"outline",onClick:a=>{a.stopPropagation(),$(s),w(!0)},"data-testid":`button-email-${s.id}`,children:[e.jsx(_,{className:"h-3 w-3 mr-1"}),"Email"]}),e.jsx("span",{className:"text-xs text-muted-foreground",children:s.generatedAt&&n(h(s.generatedAt),"MMM dd, HH:mm")}
1)]})]})]},s.id)},de=()=>{if(!l)return null;const s=p[l.segment].icon,r=l.reportType==="eod_friday",t=l.data;return e.jsx(ke,{className:"h-[calc(100vh-12rem)]",children:e.jsxs("div",{className:"p-6 space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(o,{"aria-label":"Back",variant:"ghost",size:"icon",onClick:()=>I(null),"data-testid":"button-back",children:e.jsx(Y,{className:"h-4 w-4"})}),e.jsx("div",{className:`p-3 rounded-lg ${p[l.segment].color} text-white`,children:e.jsx(s,{className:"h-6 w-6"})}),e.jsxs("div",{children:[e.jsxs("h2",{className:"text-2xl font-bold",children:[p[l.segment].label," ",r?"EOD Report":"Weekly Goals"]}),e.jsxs("p",{className:"text-muted-foreground",children:["Week ",n(h(l.weekStart),"w")," |",n(h(l.weekStart),"MMM dd")," - ",n(h(l.weekEnd),"MMM dd, yyyy")]})]})]}),e.jsx("div",{className:"flex gap-2",children:e.jsxs(o,{variant:"outline",onClick:()=>{$(l),w(!0)},"data-testid":"button-email-detail",children:[e.jsx(_,{className:"h-4 w-4 mr-2"}),"Email Report"]})})]}),e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(x,{children:"Summary"})}),e.jsx(d,{children:e.jsx("p",{children:t.summary})})]}),t.metrics&&Object.keys(t.metrics).length>0&&e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(x,{children:"Key Metrics"})}),e.jsx(d,{children:e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:Object.entries(t.metrics).filter(([a])=>!["weekStart","weekEnd","weekNumber","segments"].includes(a)).map(([a,i])=>e.jsxs("div",{className:"p-3 rounded-lg border",children:[e.jsx("div",{className:"text-2xl font-bold",children:H(i)}),e.jsx("div",{className:"text-sm text-muted-foreground",children:a.replace(/([A-Z])/g," $1").replace(/_/g," ").trim()})]},a))})})]}),t.achievements&&t.achievements.length>0&&e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(x,{children:"Key Achievements"})}),e.jsx(d,{children:e.jsx("ul",{className:"space-y-2",children:t.achievements.map((a,i)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(T,{className:"h-4 w-4 text-green-500 mt-0.5"}),e.jsx("span",{className:"text-sm",children:a})]},i))})})]}),t.goals&&t.goals.length>0&&e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(x,{children:"Goals"})}),e.jsx(d,{children:e.jsx("ul",{className:"space-y-2",children:t.goals.map((a,i)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(J,{className:"h-4 w-4 text-blue-500 mt-0.5"}),e.jsx("span",{className:"text-sm",children:a})]},i))})})]}),t.priorities&&t.priorities.length>0&&e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(x,{children:"Priorities"})}),e.jsx(d,{children:e.jsx("ul",{className:"space-y-2",children:t.priorities.map((a,i)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Pe,{className:"h-4 w-4 text-purple-500 mt-0.5"}),e.jsx("span",{className:"text-sm",children:a})]},i))})})]}),t.challenges&&t.challenges.length>0&&e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(x,{children:"Challenges"})}),e.jsx(d,{children:e.jsx("ul",{className:"space-y-2",children:t.challenges.map((a,i)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(se,{className:"h-4 w-4 text-yellow-500 mt-0.5"}),e.jsx("span",{className:"text-sm",children:a})]},i))})})]}),t.action_items&&t.action_items.length>0&&e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(x,{children:"Action Items"})}),e.jsx(d,{children:e.jsx("div",{className:"space-y-3",children:t.action_items.map((a,i)=>e.jsx("div",{className:"p-3 rounded-lg border",children:e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"flex items-start gap-2 flex-1",children:[e.jsx(D,{variant:a.priority==="high"?"destructive":a.priority==="medium"?"default":"outline",className:"mt-0.5",children:a.priority||"normal"}),e.jsx("span",{className:"text-sm",children:a.item})]}),e.jsxs("div",{className:"text-right text-sm text-muted-foreground",children:[a.owner&&e.jsxs("div",{children:["Owner: ",a.owner]}),a.deadline&&e.jsxs("div",{children:["Due: ",a.deadline]})]})]})},i))})})]}),t.insights&&t.insights.length>0&&e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(x,{children:"Insights"})}),e.jsx(d,{children:e.jsx("ul",{className:"space-y-2",children:t.insights.map((a,i)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(_e,{className:"h-4 w-4 text-indigo-500 mt-0.5"}),e.jsx("span",{className:"text-sm",children:a})]},i))})})]}),t.recommendations&&t.recommendations.length>0&&e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(x,{children:"Recommendations"})}),e.jsx(d,{children:e.jsx("ul",{className:"space-y-2",children:t.recommendations.map((a,i)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(ee,{className:"h-4 w-4 text-gray-500 mt-0.5"}),e.jsx("span",{className:"text-sm",children:a})]},i))})})]}),e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(x,{children:"Report Information"})}),e.jsx(d,{children:e.jsxs("div",{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Generated At:"}),e.jsx("span",{children:l.generatedAt?n(h(l.generatedAt),"PPP HH:mm"):"Not generated"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Generated By:"}),e.jsx("span",{children:l.generatedBy||"N/A"})]}),l.reviewed&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Reviewed At:"}),e.jsx("span",{children:l.reviewedAt?n(h(l.reviewedAt),"PPP HH:mm"):"N/A"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Reviewed By:"}),e.jsx("span",{children:l.reviewedBy||"N/A"})]})]}),l.emailSent&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Email Sent At:"}),e.jsx("span",{children:l.emailSentAt?n(h(l.emailSentAt),"PPP HH:mm"):"N/A"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Recipients:"}
1),e.jsx("span",{children:l.emailRecipients?.join(", ")||"N/A"})]})]})]})})]})]})})};return ne?e.jsxs("div",{className:"p-6 space-y-4",children:[e.jsx(V,{className:"h-8 w-48"}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[1,2,3,4].map(s=>e.jsx(V,{className:"h-48"},s))})]}):e.jsxs("div",{className:"p-6",children:[l?de():e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{children:e.jsx(he,{department:"DATA_ANALYTICS",title:"Weekly Reports",subtitle:"View and manage Friday EOD reports and Monday goals for all segments",compact:!0})}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(o,{onClick:()=>B("eod_friday"),disabled:k.isPending,"data-testid":"button-generate-eod",children:[k.isPending?e.jsx(E,{className:"h-4 w-4 mr-2 animate-spin"}):e.jsx(Me,{className:"h-4 w-4 mr-2"}),"Generate EOD Reports"]}),e.jsxs(o,{onClick:()=>B("monday_goals"),disabled:k.isPending,variant:"outline","data-testid":"button-generate-goals",children:[k.isPending?e.jsx(E,{className:"h-4 w-4 mr-2 animate-spin"}):e.jsx(J,{className:"h-4 w-4 mr-2"}),"Generate Monday Goals"]})]})]}),e.jsx(c,{children:e.jsx(d,{className:"pt-6",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[e.jsxs("div",{children:[e.jsx(M,{children:"Segment"}),e.jsxs(z,{value:y,onValueChange:ae,children:[e.jsx(K,{"data-testid":"select-segment",children:e.jsx(U,{placeholder:"All segments"})}),e.jsxs(q,{children:[e.jsx(C,{value:"all",children:"All Segments"}),Object.entries(p).map(([s,r])=>e.jsx(C,{value:s,children:r.label},s))]})]})]}),e.jsxs("div",{children:[e.jsx(M,{children:"Report Type"}),e.jsxs(z,{value:v,onValueChange:te,children:[e.jsx(K,{"data-testid":"select-report-type",children:e.jsx(U,{placeholder:"All types"})}),e.jsxs(q,{children:[e.jsx(C,{value:"all",children:"All Types"}),e.jsx(C,{value:"eod_friday",children:"EOD Friday"}),e.jsx(C,{value:"monday_goals",children:"Monday Goals"})]})]})]}),e.jsxs("div",{children:[e.jsx(M,{children:"Week"}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx(o,{"aria-label":"Prev week",variant:"outline",size:"icon",onClick:()=>F(Re(g)),"data-testid":"button-prev-week",children:e.jsx(Y,{className:"h-4 w-4"})}),e.jsxs(o,{variant:"outline",className:"flex-1","data-testid":"button-current-week",children:[e.jsx(Ee,{className:"h-4 w-4 mr-2"}),"Week ",n(g,"w")]}),e.jsx(o,{"aria-label":"Next week",variant:"outline",size:"icon",onClick:()=>F(Ae(g,1)),"data-testid":"button-next-week",children:e.jsx(ee,{className:"h-4 w-4"})})]})]}),e.jsx("div",{className:"flex items-end",children:e.jsxs(o,{variant:"outline",className:"w-full",onClick:()=>O(),"data-testid":"button-refresh",children:[e.jsx(E,{className:"h-4 w-4 mr-2"}),"Refresh"]})})]})})}),G.length===0?e.jsxs(je,{children:[e.jsx(se,{className:"h-4 w-4"}),e.jsx(pe,{children:"No Reports Found"}),e.jsx(ge,{children:"No reports found for the selected filters. Generate reports to get started."})]}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:G.map(s=>ce(s))})]}),e.jsx(ue,{open:le,onOpenChange:w,children:e.jsxs(Ne,{children:[e.jsxs(fe,{children:[e.jsx(be,{children:"Send Report via Email"}),e.jsx(ye,{children:"Enter email addresses to send this report to. Separate multiple addresses with commas."})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(M,{htmlFor:"recipients",children:"Recipients"}),e.jsx(ve,{id:"recipients",placeholder:"[email protected], [email protected]",value:A,onChange:s=>W(s.target.value),"data-testid":"input-recipients"})]}),u&&e.jsxs("div",{className:"p-3 rounded-lg border bg-muted/50",children:[e.jsxs("div",{className:"text-sm",children:[e.jsx("strong",{children:"Report:"})," ",p[u.segment].label," - "," ",u.reportType==="eod_friday"?"EOD Report":"Weekly Goals"]}),e.jsxs("div",{className:"text-sm text-muted-foreground",children:["Week ",n(h(u.weekStart),"w")," |",n(h(u.weekStart),"MMM dd")]})]})]}),e.jsxs(we,{children:[e.jsx(o,{variant:"outline",onClick:()=>w(!1),children:"Cancel"}),e.jsxs(o,{onClick:re,disabled:P.isPending||!A,"data-testid":"button-send-email",children:[P.isPending?e.jsx(E,{className:"h-4 w-4 mr-2 animate-spin"}):e.jsx(_,{className:"h-4 w-4 mr-2"}),"Send Email"]})]})]})})]})}export{Be as default};
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.