1/* empty css *//* empty css *//* empty css *//* empty css */import{M as $,cd as D,bX as F,bW as U,bV as q,co as H,b7 as O,bO as t,x as u,u as e,bE as s,a_ as p,B as g,b as W,bo as X,cu as G,cs as E,cj as J,w as h,ci as K,H as w,bm as x,s as Q,bc as v}from"./BqRK_f-2.js";import{u as Y}from"./CNxMQkOW.js";import{F as Z}from"./DlOvc8xN.js";import{u as ee}from"./DyTmvOMJ.js";import{r as ae}from"./DZurrT1J.js";import{r as oe}from"./Btsr2atu.js";import{a as _}from"./DOcBdUHk.js";import{E as te}from"./nlMPApAa.js";import"./e5v6qK9R.js";import"./DXek99um.js";import"./BhFJ2G4y.js";const se={key:0,class:"min-h-screen flex items-center justify-center"},re={class:"text-[var(--muted)]"},ne={key:1,class:"h-[calc(100vh-6rem)] flex flex-col"},ie={class:"text-sm text-[var(--muted)] mt-1"},ce={class:"text-[var(--text)]"},le={class:"text-[var(--text)]"},de={class:"flex items-center gap-1"},ue={class:"grid grid-cols-1 lg:grid-cols-12 gap-4"},ve={class:"lg:col-span-7 rounded-2xl border border-[var(--border)] bg-[var(--surface)] shadow-[var(--shadow)] dark:backdrop-blur-xl overflow-hidden"},_e={class:"p-4 border-b border-[var(--border)]"},me={class:"text-lg font-bold text-[var(--text)]"},xe={class:"p-4"},pe={key:0,class:"flex justify-center py-8"},be={key:1,class:"py-8 text-center"},fe={class:"text-sm text-[var(--muted)]"},ge={key:2,class:"space-y-2"},he={class:"min-w-0 flex-1"},ye={class:"text-sm font-medium text-[var(--text)] truncate"},we={class:"text-xs text-[var(--muted)]"},ke={class:"flex items-center gap-1 shrink-0"},Ce=["title","onClick"],Ee=["title","onClick"],Re={class:"lg:col-span-5 rounded-2xl border border-[var(--border)] bg-[var(--surface)] shadow-[var(--shadow)] dark:backdrop-blur-xl p-4 md:p-5"},Se={class:"text-lg font-bold text-[var(--text)] mb-4"},ze={key:0,class:"space-y-2"},Ae={for:"texto-condicao",class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Be=["placeholder"],Me={key:1,class:"space-y-2"},Ve={for:"tipo-evento",class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Te={value:""},je={value:"ao_fazer_agendamento"},Ne={value:"ao_fazer_assinatura"},Pe={value:"ao_cancelar_assinatura"},Ie={class:"space-y-2"},Le={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},$e={class:"flex items-center gap-2"},De=["id","checked"],Fe=["for"],Ue={class:"flex gap-2 pt-2"},qe=["disabled"],He={key:0,class:"inline-block w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin"},ia=$({__name:"regras",setup(Oe){const{tn:a}=D();F({title:a("Regras de movimentação - CRM")});const{constrainedBodyClass:R,pageTitleClass:S}=ee(),{canManageCrmColumns:z}=Y(),d=U(),A=q(),n=x("condicao"),m=x(null),b=x(!1),y=x(!1),c=x({texto_condicao:"",coluna_destino_id:"",ativo:!0}),l=x({tipo_evento:"",coluna_destino_id:"",ativo:!0}),k=Q(()=>n.value==="condicao"?d.regrasCondicao:d.regrasEvento),B={ao_fazer_agendamento:"Ao fazer agendamento",ao_fazer_assinatura:"Ao fazer assinatura",ao_cancelar_assinatura:"Ao cancelar assinatura"};function M(i){return B[i]??i}function V(i){c.value.coluna_destino_id=i,l.value.coluna_destino_id=i}function T(i){c.value.ativo=i,l.value.ativo=i}function f(){m.value=null,c.value={texto_condicao:"",coluna_destino_id:"",ativo:!0},l.value={tipo_evento:"",coluna_destino_id:"",ativo:!0}}function j(i){if(m.value=i.id,n.value==="condicao"){const o=i;
1c.value={texto_condicao:o.texto_condicao,coluna_destino_id:o.coluna_destino_id,ativo:o.ativo}}else{const o=i;l.value={tipo_evento:o.tipo_evento,coluna_destino_id:o.coluna_destino_id,ativo:o.ativo}}}function N(){f()}async function P(){const i=A.barbeariaSelecionada?.id;if(!i){_.warning(a("Selecione um estabelecimento."));return}if(n.value==="condicao"){if(!c.value.texto_condicao.trim()){_.warning(a("Informe o texto da condição."));return}if(!c.value.coluna_destino_id){_.warning(a("Selecione a coluna destino."));return}}else{if(!l.value.tipo_evento){_.warning(a("Selecione o evento."));return}if(!l.value.coluna_destino_id){_.warning(a("Selecione a coluna destino."));return}}b.value=!0;try{m.value?(n.value==="condicao"?await d.updateRegraCondicao(m.value,{texto_condicao:c.value.texto_condicao.trim(),coluna_destino_id:c.value.coluna_destino_id,ativo:c.value.ativo}):await d.updateRegraEvento(m.value,{tipo_evento:l.value.tipo_evento,coluna_destino_id:l.value.coluna_destino_id,ativo:l.value.ativo}),_.success(a("Regra atualizada"))):(n.value==="condicao"?await d.createRegraCondicao({barbearia_id:i,texto_condicao:c.value.texto_condicao.trim(),coluna_destino_id:c.value.coluna_destino_id,ativo:c.value.ativo}):await d.createRegraEvento({barbearia_id:i,tipo_evento:l.value.tipo_evento,coluna_destino_id:l.value.coluna_destino_id,ativo:l.value.ativo}),_.success(a("Regra criada"))),f()}catch(o){const r=o?.response?.data?.message??o?.message??"Erro ao salvar regra";_.error(r)}finally{b.value=!1}}async function I(i){try{await te.confirm(a("Tem certeza que deseja excluir esta regra?"),"Excluir regra",{confirmButtonText:a("Excluir"),cancelButtonText:a("Cancelar"),type:"warning"})}catch{return}try{n.value==="condicao"?await d.deleteRegraCondicao(i.id):await d.deleteRegraEvento(i.id),_.success(a("Regra excluÃda")),m.value===i.id&&f()}catch(o){const r=o?.response?.data?.message??o?.message??"Erro ao excluir regra";_.error(r)}}async function C(){y.value=!0;try{n.value==="condicao"?await d.loadRegrasCondicao():await d.loadRegrasEvento()}finally{y.value=!1}}return H(n,()=>{f(),C()}),O(async()=>{d.colunas.length===0&&await d.loadColunas(),await C()}),(i,o)=>t(z)?(v(),u("div",ne,[e("div",{class:p(t(R))},[e("header",null,[e("h1",{class:p(t(S)??"text-3xl md:text-4xl font-extrabold text-[var(--text)] tracking-tight")},s(t(a)("Regras de movimentação")),3),e("p",ie,[g(s(t(a)("Por"))+" ",1),e("strong",ce,s(t(a)("condição")),1),g(" "+s(t(a)(": texto/IA move o card para uma coluna quando a condição for atendida. Por"))+" ",1),e("strong",le,s(t(a)("evento")),1),g(s(t(a)(": ao agendar, assinar ou cancelar assinatura, o card é movido (ou criado) na coluna escolhida.")),1)])]),e("div",de,[e("button",{class:p(["px-4 py-2 text-sm font-medium rounded-xl transition-colors",n.value==="condicao"?"bg-[var(--accent)]/20 text-[var(--accent)] border border-[var(--accent)]/30":"text-[var(--muted)] hover:bg-[var(--surface-2)] border border-transparent"]),onClick:o[0]||(o[0]=r=>n.value="condicao")},s(t(a)("Por condição")),3),e("button",{class:p(["px-4 py-2 text-sm font-medium rounded-xl transition-colors",n.value==="evento"?"bg-[var(--accent)]/20 text-[var(--accent)] border border-[var(--accent)]/30":"text-[var(--muted)] hover:bg-[var(--surface-2)] border border-transparent"]),onClick:o[1]||(o[1]=r=>n.value="evento")},s(t(a)("Por evento")),3)]),e("div",ue,[e("div",ve,[e("div",_e,[e("h2",me,s(n.value==="condicao"?"Regras por condição":"Regras por evento"),1)]),e("div",xe,[y.value?(v(),u("div",pe,[...o[6]||(o[6]=[e("div",{class:"animate-spin h-8 w-8 border-2 border-[var(--border)] border-t-[var(--accent)] rounded-full"},null,-1)])])):k.value.length===0?(v(),u("div",be,[e("p",fe," Nenhuma regra "+s(n.value==="condicao"?"por condição":"por evento")+". Crie uma abaixo. ",1)])):(v(),u("ul",ge,[(v(!0),u(W,null,X(k.value,r=>(v(),u("li",{key:r.id,class:"flex items-center justify-between gap-3 p-3 rounded-xl border border-[var(--border)] bg-[var(--surface-2)]"},[e("div",he,[e("p",ye,s(n.value==="condicao"?r.texto_condicao:M(r.tipo_evento)),1),e("p",we," Coluna: "+s(r.coluna_destino?.nome??"â"),1)]),e("span",{class:p(["shrink-0 px-2.5 py-1 text-[11px] font-bold rounded-full",r.ativo?"bg-[color-mix(in_srgb,var(--status-success)_15%,transparent)] text-[var(--status-success)] border border-[color-mix(in_srgb,var(--status-success)_30%,transparent)]":"bg-[var(--surface)] text-[var(--muted)] border border-[var(--border)]"])},s(r.ativo?"Ativo":"Inativo"),3),e("div",ke,[e("button",{type:"button",class:"p-1.5 rounded-xl text-[var(--muted)] hover:text-[var(--accent)] hover:bg-[var(--surface)] transition-colors",title:t(a)("Editar"),onClick:L=>j(r)},[w(t(ae),{class:"h-4 w-4"})],8,Ce),e("button",{type:"button",class:"p-1.5 rounded-xl text-[var(--muted)] hover:text-[var(--status-danger)] hover:bg-[color-mix(in_srgb,var(--status-danger)_10%,transparent)] transition-colors",title:t(a)("Excluir"),onClick:L=>I(r)},[w(t(oe),{class:"h-4 w-4"})],8,Ee)])]))),128))]))])]),e("div",Re,[e("h2",Se,s(m.value?"Atualizar regra":"Nova regra"),1),e("form",{class:"space-y-4",onSubmit:G(P,["prevent"])},[n.value==="condicao"?(v(),u("div",ze,[e("label",Ae,s(t(a)("Condição (texto)")),1),E(e("textarea",{id:"texto-condicao","onUpdate:modelValue":o[2]||(o[2]=r=>c.value.texto_condicao=r),rows:"3",placeholder:t(a)("Ex: Cliente fez mais de 3 agendamentos no mês"),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] placeholder:text-[var(--subtle)] focu
1s:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] dark:focus-visible:shadow-[var(--glow)]"},null,8,Be),[[J,c.value.texto_condicao]])])):h("",!0),n.value==="evento"?(v(),u("div",Me,[e("label",Ve,s(t(a)("Evento")),1),E(e("select",{id:"tipo-evento","onUpdate:modelValue":o[3]||(o[3]=r=>l.value.tipo_evento=r),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] dark:focus-visible:shadow-[var(--glow)]"},[e("option",Te,s(t(a)("Selecione")),1),e("option",je,s(t(a)("Ao fazer agendamento")),1),e("option",Ne,s(t(a)("Ao fazer assinatura")),1),e("option",Pe,s(t(a)("Ao cancelar assinatura")),1)],512),[[K,l.value.tipo_evento]])])):h("",!0),e("div",Ie,[e("label",Le,s(t(a)("Destino do card")),1),w(Z,{"model-value":n.value==="condicao"?c.value.coluna_destino_id:l.value.coluna_destino_id,"mostrar-labels":!1,"texto-coluna-vazia":"Selecione a etapa","coluna-opcional":"","onUpdate:modelValue":o[4]||(o[4]=r=>V(r||""))},null,8,["model-value"])]),e("div",$e,[e("input",{id:"ativo-"+n.value,type:"checkbox",checked:n.value==="condicao"?c.value.ativo:l.value.ativo,class:"w-4 h-4 rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)]",onChange:o[5]||(o[5]=r=>T(r.target.checked))},null,40,De),e("label",{for:"ativo-"+n.value,class:"text-sm font-medium text-[var(--text)]"},s(t(a)("Regra ativa")),9,Fe)]),e("div",Ue,[m.value?(v(),u("button",{key:0,type:"button",class:"inline-flex items-center justify-center rounded-xl px-4 py-2 text-sm font-semibold border border-[var(--border)] text-[var(--text)] hover:bg-[var(--surface-2)] transition duration-200",onClick:N},s(t(a)("Cancelar")),1)):h("",!0),e("button",{type:"submit",disabled:b.value,class:"inline-flex items-center justify-center gap-2 rounded-xl px-4 py-2 text-sm font-semibold transition duration-200 btn-primary-gradient text-white disabled:opacity-45 disabled:cursor-not-allowed"},[b.value?(v(),u("span",He)):h("",!0),g(" "+s(m.value?"Atualizar":"Salvar"),1)],8,qe)])],32)])])],2)])):(v(),u("div",se,[e("p",re,s(t(a)("Você não tem permissão para configurar regras de movimentação.")),1)]))}});export{ia 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.