1import{s as C,r as E,b as k,t as S,j as e}from"./vendor-react-core-_0sZDOLQ.js";import{t}from"./index-CDqomOa1.js";import{B as g,b as h,s as d}from"./index-j07E1qHv.js";import{C as _,a as q}from"./card-DHmBnTdH.js";import{B as p}from"./badge-BXqwvh8U.js";import{S as A,a as F,b as $,c as B,d as L}from"./select-DHshRvNJ.js";import{a6 as Q,p as R,q as U,a7 as D,a8 as K,a9 as P,m as M,P as O,aa as T}from"./vendor-lucide-Ddz0eB7N.js";import"./vendor-radix-CFmJ1img.js";import"./vendor-utils-BRu4i-LD.js";import"./vendor-supabase-Ca6cp8v2.js";import"./vendor-framer-motion-C1oRD-X5.js";const j=[{value:"received",label:"Recebida"},{value:"triage",label:"Em triagem"},{value:"investigating",label:"Em investigação"},{value:"resolved",label:"Resolvida"},{value:"archived",label:"Arquivada"}],V={received:"bg-red-100 text-red-800",triage:"bg-yellow-100 text-yellow-800",investigating:"bg-blue-100 text-blue-800",resolved:"bg-green-100 text-green-800",archived:"bg-gray-200 text-gray-700"},z=n=>{var i;return((i=j.find(c=>c.value===n))==null?void 0:i.label)||n};function re(){const n=C(),[i,c]=E.useState(null),{data:x=[],isLoading:f}=k({queryKey:["admin-complaints"],queryFn:()=>h.entities.Complaint.list("-submitted_at")}),b=S({mutationFn:({id:s,status:a})=>h.entities.Complaint.update(s,{status:a}),onSuccess:()=>{n.invalidateQueries({queryKey:["admin-complaints"]}),n.invalidateQueries({queryKey:["admin-complaints-count"]}),t.success("Estado da denúncia atualizado.")},onError:s=>t.error(s.message)}),v=async s=>{var u;const{data:a,error:r}=await d.storage.from("complaint-evidence").list(s);if(r){t.error("Não foi possÃvel consultar os anexos.");return}if(!(a!=null&&a.length)){t.info("Esta denúncia não possui anexos.");return}const m=(u=a[0])==null?void 0:u.name,{data:l,error:N}=await d.storage.from("complaint-evidence").list(`${s}/${m}`);if(N||!(l!=null&&l.length)){t.info("Esta denúncia não possui anexos disponÃveis.");return}const y=`${s}/${m}/${l[0].name}`,{data:o,error:w}=await d.storage.from("complaint-evidence").createSignedUrl(y,60);if(w||!(o!=null&&o.signedUrl)){t.error("Não foi possÃvel gerar o acesso temporário ao anexo.");return}window.open(o.signedUrl,"_blank","noopener,noreferrer")};return e.jsxs("main",{className:"min-h-screen bg-gray-50",children:[e.jsx("section",{className:"bg-gray-950 py-14 text-white",children:e.jsxs("div",{className:"container mx-auto px-4",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:"flex h-14 w-14 items-center justify-center rounded-xl bg-red-600",children:e.jsx(Q,{className:"h-7 w-7"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-black uppercase tracking-[0.24em] text-red-400",children:"Ãrea restrita"}),e.jsx("h1",{className:"mt-1 text-3xl font-black md:text-4xl",children:"Gestão de Denúncias"})]})]}),e.jsx("p",{className:"mt-5 max-w-3xl text-sm leading-6 text-gray-300",children:"As informações desta área são confidenciais. Consulte apenas denúncias necessárias ao exercÃcio das suas funções e não partilhe referências ou anexos."})]})}),e.jsx("section",{className:"container mx-auto px-4 py-10",children:f?e.jsx("div",{className:"rounded-xl border border-gray-200 bg-white p-8 text-gray-500",children:"A carregar denúnciasâ¦"}):x.length===0?e.jsxs("div",{className:"rounded-xl border border-gray-200 bg-white p-10 text-center",children:[e.jsx(R,{className:"mx-auto h-10 w-10 text-green-600"}),e.jsx("h2",{className:"mt-4 text-xl font-black text-gray-950",children:"Nenhuma denúncia registada"}),e.jsx("p",{className:"mt-2 text-sm text-gray-600",children:"Novas comunicações aparecerão aqui após submissão segura."})]}):e.jsx("div",{className:"space-y-5",children:x.map(s=>{const a=i===s.id;return e.jsx(_,{className:"overflow-hidden border-gray-200 shadow-sm",children:e.jsxs(q,{className:"p-0",children:[e.jsxs("div",{className:"grid gap-5 p-6 lg:grid-cols-[1fr_auto] lg:items-center",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsx("h2",{className:"font-mono text-lg font-black text-gray-950",children:s.reference_code}),e.jsx(p,{className:V[s.status],children:z(s.status)}),s.is_anonymous&&e.jsx(p,{variant:"outline",children:"Anónima"})]}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-4 text-sm text-gray-600",children:[e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(U,{className:"h-4 w-4 text-red-600"}),s.complaint_type]}),e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(D,{className:"h-4 w-4"}
1),new Date(s.submitted_at).toLocaleString("pt-AO")]})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-3",children:[e.jsxs(A,{value:s.status,onValueChange:r=>b.mutate({id:s.id,status:r}),children:[e.jsx(F,{className:"w-44",children:e.jsx($,{})}),e.jsx(B,{children:j.map(r=>e.jsx(L,{value:r.value,children:r.label},r.value))})]}),e.jsxs(g,{type:"button",variant:"outline",onClick:()=>c(a?null:s.id),children:[e.jsx(K,{className:"mr-2 h-4 w-4"}),a?"Fechar":"Consultar"]})]})]}),a&&e.jsxs("div",{className:"border-t border-gray-200 bg-gray-50 p-6",children:[!s.is_anonymous&&e.jsxs("div",{className:"mb-6 grid gap-3 rounded-xl border border-gray-200 bg-white p-5 md:grid-cols-3",children:[e.jsxs("span",{className:"flex items-center gap-2 text-sm",children:[e.jsx(P,{className:"h-4 w-4 text-red-600"}),s.first_name," ",s.last_name]}),e.jsxs("span",{className:"flex items-center gap-2 text-sm",children:[e.jsx(M,{className:"h-4 w-4 text-red-600"}),s.email]}),e.jsxs("span",{className:"flex items-center gap-2 text-sm",children:[e.jsx(O,{className:"h-4 w-4 text-red-600"}),s.phone||"Não indicado"]})]}),e.jsx("p",{className:"whitespace-pre-wrap text-sm leading-7 text-gray-700",children:s.description}),e.jsxs(g,{type:"button",variant:"outline",className:"mt-6",onClick:()=>v(s.id),children:[e.jsx(T,{className:"mr-2 h-4 w-4"}),"Consultar primeiro anexo"]})]})]})},s.id)})})})]})}export{re 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.