1import{r as u,aZ as U,j as e,a5 as R,l as d,a1 as y,L as C,aA as w,aC as P,a_ as G,a$ as J,b0 as W,b1 as Z,b2 as X,b3 as ee,b4 as ae,b5 as se}from"./index-BmmGtEQ_.js";import{g as te,a as ne,s as ie,b as re,c as oe,u as z,C as T,d as I}from"./automation.functions-DWIjHV4y.js";import{L as B}from"./label-DGr_2lkC.js";function de(){const[a,t]=u.useState(null);return u.useEffect(()=>{let n=!0;return U.auth.getSession().then(({data:r})=>{n&&t(!!r.session)}),()=>{n=!1}},[]),{session:a,setSession:t}}function le({onDone:a}){const[t,n]=u.useState(""),[r,i]=u.useState(""),[x,o]=u.useState(!1);return e.jsxs("form",{className:"mx-auto mt-24 w-full max-w-sm space-y-4 rounded-lg border p-6",onSubmit:async c=>{c.preventDefault(),o(!0);const{error:f}=await U.auth.signInWithPassword({email:t,password:r});o(!1),f?y.error(f.message):a()},children:[e.jsx("h1",{className:"text-lg font-semibold",children:"Painel interno da Agenda"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Acesso restrito a administradores e editores."}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(B,{htmlFor:"email",children:"E-mail"}),e.jsx(R,{id:"email",type:"email",value:t,onChange:c=>n(c.target.value),required:!0})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(B,{htmlFor:"password",children:"Senha"}),e.jsx(R,{id:"password",type:"password",value:r,onChange:c=>i(c.target.value),required:!0})]}),e.jsx(d,{type:"submit",className:"w-full",disabled:x,children:x?"Entrando...":"Entrar"})]})}function ce({error:a,onSignOut:t}){const n=a?.message??"",r=/forbidden|permiss/i.test(n);return e.jsxs("div",{className:"mx-auto mt-24 max-w-md space-y-4 px-4 text-center",children:[e.jsx("p",{className:"text-sm",children:r?"Sua conta não tem permissão de administrador ou editor para este painel.":"Não foi possÃvel carregar o painel agora."}),!r&&n?e.jsx("p",{className:"break-words text-xs text-muted-foreground",children:n}):null,e.jsx(d,{variant:"outline",onClick:t,children:"Sair"})]})}function me({current:a,onSignOut:t}){return e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(d,{asChild:!0,size:"sm",variant:a==="operacional"?"default":"outline",children:e.jsx(C,{to:"/admin/agenda",children:"Operacional"})}),e.jsx(d,{asChild:!0,size:"sm",variant:a==="diagnostico"?"default":"outline",children:e.jsx(C,{to:"/admin/agenda/diagnostico",search:{evento:void 0},children:"Diagnóstico avançado"})}),e.jsx(d,{size:"sm",variant:"ghost",onClick:t,children:"Sair"})]})}async function ue(){await U.auth.signOut()}const xe={title:"Nome do evento",start_date:"Data de inÃcio",end_date:"Data de encerramento",start_time:"Horário",end_time:"Horário de término",venue:"Local",location_text:"Endereço",category:"Categoria",lifecycle_status:"Situação do evento"};function he(a){return xe[a]??a}function k(a){return a==null?"â":typeof a=="string"?a:JSON.stringify(a)}function ge({eventId:a,eventTitle:t,open:n,busy:r,onOpenChange:i,onConfirm:x,onKeepInReview:o}){const c=w(te),[f,O]=u.useState(!1),h=P({queryKey:["agenda-review-detail",a],queryFn:()=>c({data:{eventId:a}}),enabled:n,retry:!1}),A=(h.data?.fact_status??[]).filter(l=>l.status==="conflict");return e.jsx(G,{open:n,onOpenChange:i,children:e.jsxs(J,{className:"max-h-[85vh] overflow-y-auto sm:max-w-lg",children:[e.jsxs(W,{children:[e.jsx(Z,{className:"text-base",children:t}),e.jsx(X,{children:"Escolha qual informação está correta. Sua escolha fica registrada como decisão humana e não altera automaticamente o dado do evento."})]}),h.isLoading&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"Carregandoâ¦"}),h.data&&A.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"Nenhum campo em conflito registrado. Você pode manter o evento em revisão."}),e.jsx("div",{className:"space-y-4",children:A.map(l=>{const p=String(l.fact_type),F=l.details_json?.values??[];return e.jsxs("div",{className:"space-y-2 rounded-md border p-3",children:[e.jsx("div",{className:"text-sm font-medium uppercase tracking-wide",children:he(p)}),e.jsx("div",{className:"flex flex-col gap-2",children:F.map((g,b)=>e.jsxs(d,{variant:"outline",className:"h-auto w-full justify-start whitespace-normal text-left",disabled:r,onClick:()=>x({field:p,value:k(g.value)}),children:[e.jsx("span",{className:"text-sm",children:k(g.value)}),e.jsxs("span",{className:"ml-2 text-xs text-muted-foreground",children:[Number(g.sources??0)," fonte(s)"]})]},`${p}-${b}`))})]},p)})}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(d,{variant:"secondary",disabled:r,onClick:o,children:"Nenhuma / manter em revisão"}),e.jsx(d,{variant:"ghost",size:"sm",onClick:()=>O(l=>!l),children:f?"Ocultar evidências completas":"Ver evidências completas"})]}),f&&h.data&&e.jsxs("div",{className:"space-y-2 rounded-md bg-muted p-3 text-xs",children:[e.jsxs("div",{className:"font-medium",children:["Fontes (",h.data.sources.length,")"]}),h.data.sources.map(l=>e.jsxs("div",{className:"break-all text-muted-foreground",children:[String(l.domain)," · ",String(l.source_type)," · confiança"," ",String(l.trust_priority)," · ",String(l.url??"")]},String(l.id))),e.jsx("div",{className:"pt-2 font-medium",children:"Código técnico"}),e.jsxs("div",{className:"text-muted-foreground",children:[(h.data.decision?.gates??[]).join(", ")||"â"," ·"," ",String(h.data.recomputed.rules_version)]})]})]})})}const fe=new Set(["IDENTITY_CONFLICT","DATE_CONFLICT","END_DATE_CONFLICT","LOCATION_CONFLICT","LIFECYCLE_CONFLICT","SOURCE_OCCURRENCE_CONFLICT","WRONG_OCCURRENCE"]),pe={IDENTITY_CONFLICT:"Encontramos nomes diferentes para este evento.",DATE_CONFLICT:"As fontes informam datas diferentes.",END_DATE_CONFLICT:"As fontes informam datas de encerramento diferentes.",LOCATION_CONFLICT:"As fontes informam locais diferentes.",LIFECYCLE_CONFLICT:"As fontes discordam se o evento foi mantido, adiado ou cancelado.",SOURCE_OCCURRENCE_CONFLICT:"Uma das fontes parece falar de outra edição do evento.",WRONG_OCCURRENCE:"Uma das fontes parece falar de outra edição do evento.",INSUFFICIENT_EVIDENCE:"Ainda não encontramos informação suficiente para confirmar o evento."};function V(a){return pe[a]??"Este evento precisa de uma conferência manual."}function ve(a){return a==="auto"?{label:"PUBLICAR",icon:"â",tone:"good"}
1:a==="limited"?{label:"MANTER EM ESPERA",icon:"â ",tone:"warn"}:{label:"MANTER FORA DO SITE",icon:"â",tone:"stop"}}function j(a){const t=a.gates??[],n=t.filter(f=>fe.has(f)),r=ve(a.engine_mode),i=!!a.review&&a.review?.verdict!=="needs_more_evidence",x=a.review?.verdict==="needs_more_evidence";let o;return n.length>0?o=V(n[0]):t.length>0?o=V(t[0]):a.critical_conflicts>0?o="Existem informações divergentes entre as fontes deste evento.":a.engine_mode==="auto"?o="Informações confirmadas e prontas para o site.":o="Publicando apenas as informações confirmadas.",{requires_action:!i&&(n.length>0||x||a.engine_mode!=="hold"&&a.critical_conflicts>0),headline:o,recommendation:r,codes:t}}function Ne(a,t){return ae({start_date:a.start_date,end_date:a.end_date},t)}function je(a,t=ee()){const n=a.filter(i=>Ne(i,t)),r=n.filter(i=>j(i).requires_action);return{conhecidos:a.length,ativos:n.length,publicados:n.filter(i=>i.publication_status==="published").length,prontos:n.filter(i=>i.engine_mode==="auto").length,precisam_de_voce:r.length,em_espera:n.filter(i=>i.engine_mode!=="auto"&&!j(i).requires_action).length,encerrados:a.length-n.length}}function be(a=new Date){const t=[{h:9,m:30},{h:18,m:30}];for(const n of t){const r=new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate(),n.h,n.m,0,0));if(r.getTime()>a.getTime())return r}return new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()+1,9,30,0,0))}const H=["JAN","FEV","MAR","ABR","MAI","JUN","JUL","AGO","SET","OUT","NOV","DEZ"];function K(a,t){if(!a)return"sem data";const[,n,r]=a.split("-"),i=H[Number(n)-1]??"";if(!t||t===a)return`${Number(r)} ${i}`;const[,x,o]=t.split("-"),c=H[Number(x)-1]??"";return x===n?`${Number(r)}â${Number(o)} ${i}`:`${Number(r)} ${i} â ${Number(o)} ${c}`}function L(a){if(!a)return"â";const t=new Date(a);return Number.isNaN(t.getTime())?"â":t.toLocaleString("pt-BR",{timeZone:"America/Sao_Paulo",day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"})}const _e=[{id:"atencao",label:"Precisa de mim"},{id:"publicados",label:"Publicados"},{id:"auto",label:"AUTO"},{id:"espera",label:"Em espera"},{id:"todos",label:"Todos"}];function Q({tone:a,children:t}){const n=a==="good"?"bg-emerald-100 text-emerald-900":a==="warn"?"bg-amber-100 text-amber-900":"bg-rose-100 text-rose-900";return e.jsx("span",{className:`rounded-full px-3 py-1 text-sm font-semibold ${n}`,children:t})}function we(){const{session:a,setSession:t}=de(),[n,r]=u.useState("todos"),[i,x]=u.useState(""),[o,c]=u.useState(null),f=w(ne),O=w(ie),h=w(re),A=w(oe),l=se(),p=P({queryKey:["agenda-review-board"],queryFn:()=>f(),enabled:a===!0,retry:!1}),F=P({queryKey:["agenda-automation-summary"],queryFn:()=>A(),enabled:a===!0,retry:!1}),g=z({mutationFn:s=>O({data:s}),onSuccess:()=>{y.success("Decisão registrada. Nenhum evento foi publicado automaticamente."),c(null),l.invalidateQueries({queryKey:["agenda-review-board"]})},onError:s=>y.error(s.message)}),b=z({mutationFn:s=>h({data:s}),onSuccess:(s,N)=>{y.success(N.publish?"Evento publicado no site.":"Evento retirado do site."),l.invalidateQueries({queryKey:["agenda-review-board"]})},onError:s=>y.error(s.message)}),_=u.useMemo(()=>p.data?.events??[],[p.data]),v=u.useMemo(()=>je(_),[_]),q=u.useMemo(()=>_.filter(s=>j(s).requires_action),[_]),m=F.data?.runs?.[0],$=async()=>{await ue(),t(!1)};if(a===null)return e.jsx("div",{className:"p-10 text-sm text-muted-foreground",children:"Carregando..."});if(!a)return e.jsx(le,{onDone:()=>t(!0)});if(p.isError)return e.jsx(ce,{error:p.error,onSignOut:$});const E=m?m.status==="failed"||m.errors>0?"stop":m.alerts.length>0?"warn":"good":"warn",D=E==="stop"?"stop":v.precisam_de_voce>0?"warn":"good",Y=D==="stop"?"ð´ Automação com problema":D==="warn"?"ð¡ Atenção necessária":"ð¢ Automação funcionando normalmente",M=s=>{if(i.trim()&&!s.title.toLowerCase().includes(i.trim().toLowerCase()))return!1;switch(n){case"atencao":return j(s).requires_action;case"publicados":return s.publication_status==="published";case"auto":return s.engine_mode==="auto";case"espera":return s.engine_mode!=="auto"&&!j(s).requires_action;default:return!0}};return e.jsxs("div",{className:"mx-auto max-w-5xl space-y-8 p-4 md:p-6",children:[e.jsxs("header",{className:"space-y-3",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("h1",{className:"text-2xl font-semibold",children:"Agenda Curitiba"}),e.jsx(Q,{tone:D,children:Y})]}),e.jsx(me,{current:"operacional",onSignOut:$})]}),e.jsxs("div",{className:"text-sm text-muted-foreground",children:["Ãltima atualização: ",L(m?.finished_at??m?.started_at??null),e.jsx("span",{className:"mx-2",children:"·"}),"Próxima execução: ",L(be().toISOString())]})]}),e.jsx("section",{className:"grid grid-cols-2 gap-3 md:grid-cols-4",children:[{label:"Publicados",value:v.publicados,hint:`Já aparecem no site. ${v.ativos} eventos ainda em cartaz ou por vir.`},{label:"Prontos",value:v.prontos,hint:"Informações confirmadas. Podem ir ao site quando você quiser."},{label:"Precisam de você",value:v.precisam_de_voce,highlight:!0,hint:"Aguardam uma decisão sua."},{label:"Em espera",value:v.em_espera,hint:`Falta informação confirmada. ${v.encerrados} eventos já encerrados ficam no histórico.`}].map(s=>e.jsx(T,{className:s.highlight&&s.value>0?"border-amber-400":"",children:e.jsxs(I,{className:"p-4",children:[e.jsx("div",{className:"text-xs uppercase text-muted-foreground",children:s.label}),e.jsx("div",{className:"text-3xl font-semibold",children:s.value}),e.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:s.hint})]})},s.label))}),e.jsxs("section",{className:"space-y-3",children:[e.jsx("h2",{className:"text-lg font-semibold",children:"Precisa da sua atenção"}),q.length===0&&e.jsx(T,{className:"border-emerald-300 bg-emerald-50/60",children:e.jsxs(I,{className:"space-y-1 p-6",children:[e.jsx("div",{className:"text-base font-semibold text-emerald-900",children:"â Nenhuma ação necessária"}),e.jsx("p",{className:"text-sm text-emerald-900/80",children:"A Agenda está sendo atualizada automaticamente. Não há eventos aguardando sua decisão."})]})}),q.map(s=>{const N=j(s);return e.jsx(T,{children:e.jsxs(I,{className:"space-y-3 p-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"font-medium",children:s.title}),e.jsxs("div",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:[K(s.start_date,s.end_date),s.venue_name?` · ${s.venue_name}`:""]})]}),e.jsxs("p",{className:"text-sm",children:["â ",N.headline]}),e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"text-xs uppercase text-muted-foreground",children:"Recomendação da Agenda"}),e.jsxs("div",{className:"font-semibold",children:[N.recommendation.icon," ",N.recommendation.label]})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(d,{size:"sm",disabled:g.isPending,onClick:()=>g.mutate({eventId:s.event_id,decisionId:s.decision_id,verdict:"agree",reasonCode:"HUMAN_AGREE"}),children:"Concordo"}),e.jsx(d,{size:"sm",variant:"outline",disabled:g.isPending,onClick:()=>c(s),children:"Quero corrigir"}),e.jsx(d,{asChild:!0,size:"sm",variant:"ghost",children:e.jsx(C,{to:"/admin/agenda/diagnostico",search:{evento:s.event_id},children:"Ver detalhes"})})]})]})},s.event_id)})]}),e.jsxs("section",{className:"space-y-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsx("h2",{className:"text-lg font-semibold",children:"Eventos"}),e.jsx(R,{className:"h-9 w-full max-w-xs",placeholder:"Buscar pelo nome do evento",value:i,onChange:s=>x(s.target.value)})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:_e.map(s=>e.jsx(d,{size:"sm",variant:n===s.id?"default":"outline",onClick:()=>r(s.id),children:s.label},s.id))}),e.jsxs("div",{className:"space-y-2",children:[_.filter(M).map(s=>{const N=j(s),S=s.publication_status==="published";return e.jsxs("div",{className:"flex flex-col gap-2 rounded-lg border p-3 md:flex-row md:items-center md:justify-between",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate font-medium",children:s.title}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[K(s.start_date,s.end_date),s.venue_name?` · ${s.venue_name}`:""]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"text-xs font-medium",children:S?"No site":N.requires_action?"Precisa de você":s.engine_mode==="auto"?"Pronto":"Em espera"}),!S&&s.engine_mode==="auto"&&e.jsx(d,{size:"sm",disabled:b.isPending,onClick:()=>b.mutate({eventId:s.event_id,publish:!0}),children:"Publicar no site"}),S&&e.jsx(d,{size:"sm",variant:"outline",disabled:b.isPending,onClick:()=>b.mutate({eventId:s.event_id,publish:!1}),children:"Tirar do site"}),S&&s.slug&&e.jsx(d,{asChild:!0,size:"sm",variant:"outline",children:e.jsx(C,{to:"/agenda-curitiba/$slug",params:{slug:s.slug},children:"Ver página"})}),e.jsx(d,{asChild:!0,size:"sm",variant:"ghost",children:e.jsx(C,{to:"/admin/agenda/diagnostico",search:{evento:s.event_id},children:"Ver diagnóstico"})})]})]},s.event_id)}),_.filter(M).length===0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"Nenhum evento nesta lista."})]})]}),e.jsxs("section",{className:"space-y-2",children:[e.jsx("h2",{className:"text-lg font-semibold",children:"Operação automática"}),e.jsx(T,{children:e.jsxs(I,{className:"space-y-2 p-4 text-sm",children:[e.jsx(Q,{tone:E,children:E==="stop"?"ð´ Ãltima execução apresentou erro":E==="warn"?"ð¡ Verificar última execução":"ð¢ Funcionando normalmente"}),m?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"text-muted-foreground",children:["Ãltima execução: ",L(m.finished_at??m.started_at)," ·"," ",m.events_discovered," eventos verificados · ",m.events_created," novos ·"," ",m.errors," erros"]}),E!=="good"&&m.alerts.length>0&&e.jsx("div",{className:"text-xs text-amber-700",children:m.alerts.join(" · ")})]}):e.jsx("div",{className:"text-muted-foreground",children:"Nenhuma execução registrada ainda."}),e.jsx(d,{asChild:!0,size:"sm",variant:"outline",children:e.jsx(C,{to:"/admin/agenda/diagnostico",search:{evento:void 0},children:"Ver histórico técnico"})})]})})]}),o&&e.jsx(ge,{eventId:o.event_id,eventTitle:o.title,open:!!o,busy:g.isPending,onOpenChange:s=>!s&&c(null),onConfirm:s=>g.mutate({eventId:o.event_id,decisionId:o.decision_id,verdict:"disagree",humanMode:"limited",reasonCode:"HUMAN_FIELD_CHOICE",notes:`campo=${s.field} · valor escolhido=${s.value}`}),onKeepInReview:()=>g.mutate({eventId:o.event_id,decisionId:o.decision_id,verdict:"needs_more_evidence",reasonCode:"HUMAN_NEEDS_EVIDENCE"})})]})}export{we as component};
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.