PageSourceSearch

https://rhai.ai/assets/ClientsHub-BovL3W_U.js

js rhai.ai collected 2026-10-05 14:43:33 UTC 95,475 bytes, 21 lines download raw bytes

1import{c as He,j as e,a8 as Ae,r as n,a9 as F,B as b,aH as Ds,aI as ts,aK as Je,aL as as,b4 as xa,aM as ha,bi as Bs,b0 as pa,aJ as ja,bj as _a,bk as va,a2 as Os,cs as ga,R as te,ak as M,an as Fs,aq as Pe,aa as De,V as fa,ad as Ke,X as ya,au as Na,a5 as zs,aB as ba,l as Ge,t as Ue,aj as Be,ap as Ca,W as Ls,aD as Ms,cn as wa}from"./index-Bb1yq-wp.js";import{T as qs,a as $s,b as me,c as xe}from"./tabs-DrlTsLUy.js";import{B as U}from"./badge-Bj4HDQqy.js";import{S as Y,a as X,b as Q,c as W,d as T}from"./select-Cor5PC1B.js";import{T as Oe,a as Fe,b as K,c as z,d as ze,e as E}from"./table-BnLElGxu.js";import{D as pe,a as je,b as _e,c as ve,d as Le,e as Ye}from"./dialog-DnFsygPU.js";import{L as C}from"./label-WLI3dHA-.js";import{T as Ne}from"./textarea-CzRiFt-U.js";import{S as he}from"./switch-DIibC7o8.js";import{C as Sa}from"./checkbox-Bx9Qo8e7.js";import{u as ka}from"./index-lgS-fV0G.js";import{T as Aa}from"./triangle-alert-DxAQPoET.js";import{C as Pa}from"./credit-card-DVd7tM8Z.js";import{P as Ea}from"./phone-BXy6P_rY.js";import{M as Ns}from"./map-pin-BqxbySlL.js";import{A as Vs}from"./arrow-left-BROIghih.js";import{R as Me}from"./refresh-cw-XJq3KF_a.js";import{E as Gs}from"./eye-D_5it6Hn.js";import{A as Ia,a as Ra,b as Ta,c as Da,d as Ba,e as Oa,f as Fa,g as za}from"./alert-dialog-D92t5giH.js";import{G as La}from"./globe-BAjmvH9c.js";import{T as Ma}from"./trash-2-Dc_swJWG.js";import{A as qa,a as $a,b as Va,c as Ga}from"./accordion-CfGw_cSs.js";import{P as Us}from"./package-Idex41OY.js";import{A as Ua}from"./archive-CuSEm1fP.js";import{U as Hs}from"./undo-2-bCIjyMiU.js";import{C as Js}from"./chevron-left-BvvMmp15.js";import"./index-BdQq_4o_.js";import"./index-L-7SGzBG.js";/**
2 * @license lucide-react v0.462.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const Ha=He("CircleArrowUp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]);/**
7 * @license lucide-react v0.462.0 - ISC
8 *
9 * This source code is licensed under the ISC license.
10 * See the LICENSE file in the root directory of this source tree.
11 */const Ja=He("Linkedin",[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]]);/**
12 * @license lucide-react v0.462.0 - ISC
13 *
14 * This source code is licensed under the ISC license.
15 * See the LICENSE file in the root directory of this source tree.
16 */const Ka=He("MailOpen",[["path",{d:"M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z",key:"1jhwl8"}],["path",{d:"m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10",key:"1qfld7"}]]);/**
17 * @license lucide-react v0.462.0 - ISC
18 *
19 * This source code is licensed under the ISC license.
20 * See the LICENSE file in the root directory of this source tree.
21 */const Ya=He("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);function Xa(){return e.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[e.jsx("div",{className:"p-2 bg-primary/10 rounded-lg",children:e.jsx(Ae,{className:"h-6 w-6 text-primary"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Clientes"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Gestão de empresas e biblioteca de benefícios"})]})]})}const Qa="https://gmtexatrdgqaymnknopd.supabase.co",bs="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImdtdGV4YXRyZGdxYXltbmtub3BkIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTA1MDI0NzMsImV4cCI6MjA2NjA3ODQ3M30.cmegADUAr87QrMLD3zn79wWTOOiBIqBKq49mNOmuU2A",Wa=`${Qa}/functions/v1/rhai_edge_mcc_clientes_gateway`,Cs="[RHAI MccClientesGateway]",Za=()=>({"Content-Type":"application/json",apikey:bs,Authorization:`Bearer ${bs}`});async function se(s,r){try{const t=await fetch(Wa,{method:"POST",headers:Za(),body:JSON.stringify({action:s,payload:r})}),d=await t.json();
21return t.ok||console.warn(`${Cs} ${s} http error`,d),d}catch(t){return console.warn(`${Cs} ${s} network error`,t),{success:!1,error_code:"network_error",message:"Falha de rede ao consultar a Edge de Clientes.",data:null}}}const ee={listClients(s={}){const r={limit:s.limit??50,offset:s.offset??0,search:s.search??null,account_type:s.account_type??"all",account_nature:s.account_nature??"all",client_status:s.client_status??"all",plan_key:s.plan_key??"all"};return se("list_clients",r)},getClientProfile(s){return se("get_client_profile",{account_id:s.account_id,include_recent_events:s.include_recent_events??!0})},bootstrapClientAccount(s){return se("bootstrap_client_account",{account_id:s.account_id,default_plan_key:s.default_plan_key??"prepaid_basic",default_experience_mode:s.default_experience_mode??null,require_document:s.require_document??!0,created_by:s.created_by??null})},updateClientProfile(s){return se("update_client_profile",{account_id:s.account_id,profile:s.profile,created_by:s.created_by??null})},setClientContractTypes(s){return se("set_client_contract_types",{account_id:s.account_id,contract_type_ids:s.contract_type_ids,default_contract_type_id:s.default_contract_type_id??null,created_by:s.created_by??null})},registerUsageEvent(s){return se("register_usage_event",{account_id:s.account_id,event_type:s.event_type,consumable_key:s.consumable_key,direction:s.direction,units:s.units,reference_entity:s.reference_entity??"mcc_adjustment",reference_id:s.reference_id??"manual",description:s.description??"Ajuste manual via MCC.",metadata:s.metadata??{},created_by:s.created_by??null})},listClientPlans(s={}){return se("list_client_plans",{include_inactive:s.include_inactive??!0,search:s.search??null})},getClientPlanFull(s){const r={include_inactive_features:s.include_inactive_features??!1};return s.plan_id!=null&&(r.plan_id=s.plan_id),s.plan_key&&(r.plan_key=s.plan_key),se("get_client_plan_full",r)},saveClientPlanWithFeatures(s){return se("save_client_plan_with_features",{plan:s.plan,features:s.features,replace_features:s.replace_features??!0,dry_run:s.dry_run??!1,changed_by:s.changed_by??null})},archiveClientPlan(s){return se("archive_client_plan",{plan_id:s.plan_id,reason:s.reason,archived_by:s.archived_by??null})},setClientActivePlan(s){return se("set_client_active_plan",{account_id:s.account_id,plan_id:s.plan_id,reason:s.reason,changed_by:s.changed_by??null})},listContractTypes(s={}){return se("list_contract_types",{include_inactive:s.include_inactive??!1})},listProspects(s={}){return se("list_prospects",{limit:s.limit??20,offset:s.offset??0,search:s.search??null})},setProspectStatus(s){return se("set_prospect_status",{id:s.id,status:s.status})},listContacts(s={}){return se("list_contacts",{limit:s.limit??20,offset:s.offset??0,search:s.search??null,origem:s.origem&&s.origem!=="all"?s.origem:null,status:s.status&&s.status!=="all"?s.status:null})},setContactStatus(s){return se("set_contact_status",{id:s.id,status:s.status})}},qe={search:"",account_type:"all",client_status:"all",billing:"all"};function et({open:s,accountId:r,currentPlanKey:t,onClose:d,onChanged:x}){const[N,v]=n.useState(!1),[D,c]=n.useState(!1),[I,A]=n.useState([]),[f,y]=n.useState(""),[p,o]=n.useState("");n.useEffect(()=>{s&&(o(""),y(""),(async()=>{v(!0);const w=await ee.listClientPlans({include_inactive:!1});if(v(!1),!w.success||!w.data){F.error(w.message||"Falha ao carregar planos.");return}A(w.data.items||[])})())},[s]);const m=async()=>{if(!r)return;if(!f){F.error("Selecione um plano.");return}if(!p.trim()){F.error("Informe o motivo da troca.");return}c(!0);const w=await ee.setClientActivePlan({account_id:r,plan_id:Number(f),reason:p.trim(),changed_by:null});if(c(!1),!w.success){F.error(w.message||"Falha ao trocar plano.");return}F.success("Plano do cliente atualizado com sucesso."),x()};return e.jsx(pe,{open:s,onOpenChange:w=>{w||d()},children:e.jsxs(je,{className:"max-w-md",children:[e.jsxs(_e,{children:[e.jsx(ve,{children:"Trocar plano do cliente"}),e.jsx(Le,{children:"A troca é registrada no histórico do cliente."})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Plano *"}),e.jsxs(Y,{value:f,onValueChange:y,disabled:N,children:[e.jsx(X,{children:e.jsx(Q,{placeholder:N?"Carregando...":"Selecione..."})}),e.jsx(W,{children:I.map(w=>e.jsxs(T,{value:String(w.id),children:[w.plan_name,w.plan_key===t?" (atual)":""]},w.id))})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Motivo *"}),e.jsx(Ne,{rows:2,value:p,onChange:w=>o(w.target.value)})]})]}),e.jsxs(Ye,{children:[e.jsx(b,{variant:"outline",onClick:d,disabled:D,children:"Cancelar"}),e.jsx(b,{onClick:m,disabled:D,children:D?"Salvando...":"Trocar plano"})]})]})})}var ns="Radio",[st,Ks]=Ds(ns),[at,tt]=st(ns),Ys=n.forwardRef((s,r)=>{const{__scopeRadio:t,name:d,checked:x=!1,required:N,disabled:v,value:D="on",onCheck:c,form:I,...A}=s,[f,y]=n.useState(null),p=ts(r,w=>y(w)),o=n.useRef(!1),m=f?I||!!f.closest("form"):!0;return e.jsxs(at,{scope:t,checked:x,disabled:v,children:[e.jsx(Je.button,{type:"button",role:"radio","aria-checked":x,"data-state":Zs(x),"data-disabled":v?"":void 0,disabled:v,value:D,...A,ref:p,onClick:as(s.onClick,w=>{x||c==null||c(),m&&(o.current=w.isPropagationStopped(),o.current||w.stopPropagation())})}),m&&e.jsx(Ws,{control:f,bubbles:!o.current,name:d,value:D,checked:x,required:N,disabled:v,form:I,style:{transform:"translateX(-100%)"}})]})});Ys.displayName=ns;var Xs="RadioIndicator",Qs=n.forwardRef((s,r)=>{const{__scopeRadio:t,forceMount:d,...x}=s,N=tt(Xs,t);return e.jsx(xa,{present:d||N.checked,children:e.jsx(Je.span,{"data-state":Zs(N.checked),"data-disabled":N.disabled?"":void 0,...x,ref:r})})});Qs.displayName=Xs;var nt="RadioBubbleInput",Ws=n.forwardRef(({__scopeRadio:s,control:r,checked:t,bubbles:d=!0,...x},N)=>
vendor: 1,748 bytes, line 21
21{const v=n.useRef(null),D=ts(v,N),c=ka(t),I=ha(r);return n.useEffect(()=>{const A=v.current;if(!A)return;const f=window.HTMLInputElement.prototype,p=Object.getOwnPropertyDescriptor(f,"checked").set;if(c!==t&&p){const o=new Event("click",{bubbles:d});p.call(A,t),A.dispatchEvent(o)}},[c,t,d]),e.jsx(Je.input,{type:"radio","aria-hidden":!0,defaultChecked:t,...x,tabIndex:-1,ref:D,style:{...x.style,...I,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});Ws.displayName=nt;function Zs(s){return s?"checked":"unchecked"}var rt=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],Xe="RadioGroup",[lt,yn]=Ds(Xe,[Bs,Ks]),ea=Bs(),sa=Ks(),[it,ct]=lt(Xe),aa=n.forwardRef((s,r)=>{const{__scopeRadioGroup:t,name:d,defaultValue:x,value:N,required:v=!1,disabled:D=!1,orientation:c,dir:I,loop:A=!0,onValueChange:f,...y}=s,p=ea(t),o=pa(I),[m,w]=ja({prop:N,defaultProp:x??null,onChange:f,caller:Xe});return e.jsx(it,{scope:t,name:d,required:v,disabled:D,value:m,onValueChange:w,children:e.jsx(_a,{asChild:!0,...p,orientation:c,dir:o,loop:A,children:e.jsx(Je.div,{role:"radiogroup","aria-required":v,"aria-orientation":c,"data-disabled":D?"":void 0,dir:o,...y,ref:r})})})});aa.displayName=Xe;var ta="RadioGroupItem",na=n.forwardRef((s,r)=>{const{__scopeRadioGroup:t,disabled:d,...x}=s,N=ct(ta,t),v=N.disabled||d,D=ea(t),c=sa(t),I=n.useRef(null),A=ts(r,I),f=N.value===x.value,y=n.useRef(!1);return n.useEffect(()=>{const p=m=>{rt.includes(m.key)&&(y.current=!0)},o=()=>y.current=!1;return document.addEventListener("keydown",p),document.addEventListener("keyup",o),()=>{document.removeEventListener("keydown",p),document.removeEventListener("keyup",o)}},[]),e.jsx(va,{asChild:!0,...D,focusable:!v,active:f,children:e.jsx(Ys,{disabled:v,required:N.required,
21checked:f,...c,...x,name:N.name,ref:A,onCheck:()=>N.onValueChange(x.value),onKeyDown:as(p=>{p.key==="Enter"&&p.preventDefault()}),onFocus:as(x.onFocus,()=>{var p;y.current&&((p=I.current)==null||p.click())})})})});na.displayName=ta;var ot="RadioGroupIndicator",ra=n.forwardRef((s,r)=>{const{__scopeRadioGroup:t,...d}=s,x=sa(t);return e.jsx(Qs,{...x,...d,ref:r})});ra.displayName=ot;var la=aa,ia=na,dt=ra;const ca=n.forwardRef(({className:s,...r},t)=>e.jsx(la,{className:Os("grid gap-2",s),...r,ref:t}));ca.displayName=la.displayName;const oa=n.forwardRef(({className:s,...r},t)=>e.jsx(ia,{ref:t,className:Os("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",s),...r,children:e.jsx(dt,{className:"flex items-center justify-center",children:e.jsx(ga,{className:"h-2.5 w-2.5 fill-current text-current"})})}));oa.displayName=ia.displayName;function ut({open:s,accountId:r,current:t,onClose:d,onSaved:x}){const[N,v]=n.useState(!1),[D,c]=n.useState(!1),[I,A]=n.useState([]),[f,y]=n.useState(new Set),[p,o]=n.useState(null);n.useEffect(()=>{if(!s)return;const g=new Set;let i=null;for(const j of t)j.contract_type_id!=null&&g.add(j.contract_type_id),j.is_default&&j.contract_type_id!=null&&(i=j.contract_type_id);y(g),o(i),(async()=>{v(!0);const j=await ee.listContractTypes({include_inactive:!1});if(v(!1),!j.success||!j.data){F.error(j.message||"Falha ao carregar tipos de contrato.");return}A(j.data.items||[])})()},[s,t]);const m=(g,i)=>{y(j=>{const $=new Set(j);return i?$.add(g):$.delete(g),$}),!i&&p===g&&o(null)},w=async()=>{if(!r)return;if(f.size===0){F.error("Selecione ao menos um tipo de contrato.");return}c(!0);const g=Array.from(f),i=await ee.setClientContractTypes({account_id:r,contract_type_ids:g,default_contract_type_id:p??g[0],created_by:null});if(c(!1),!i.success){F.error(i.message||"Falha ao salvar tipos de contrato.");return}F.success("Tipos de contrato atualizados com sucesso."),x()},P=n.useMemo(()=>Array.from(f),[f]);return e.jsx(pe,{open:s,onOpenChange:g=>{g||d()},children:e.jsxs(je,{className:"max-w-lg",children:[e.jsxs(_e,{children:[e.jsx(ve,{children:"Tipos de contrato"}),e.jsx(Le,{children:"Selecione os tipos permitidos e marque o padrão."})]}),N?e.jsx("div",{className:"space-y-2",children:Array.from({length:4}).map((g,i)=>e.jsx(te,{className:"h-10 w-full"},i))}):e.jsxs("div",{className:"space-y-3 max-h-[55vh] overflow-y-auto",children:[I.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"Nenhum tipo de contrato disponível."}),I.map(g=>{const i=f.has(g.id);return e.jsxs("div",{className:"flex items-start gap-3 rounded-md border p-3",children:[e.jsx(Sa,{id:`ct-${g.id}`,checked:i,onCheckedChange:j=>m(g.id,!!j)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx(C,{htmlFor:`ct-${g.id}`,className:"cursor-pointer",children:g.contract_type_name}),e.jsx("p",{className:"text-xs text-muted-foreground font-mono",children:g.contract_type_key}),g.description&&e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:g.description})]})]},g.id)}),P.length>0&&e.jsxs("div",{className:"space-y-2 pt-2 border-t",children:[e.jsx(C,{className:"text-xs",children:"Tipo padrão"}),e.jsx(ca,{value:p!=null?String(p):"",onValueChange:g=>o(Number(g)),className:"space-y-1",children:P.map(g=>{const i=I.find(j=>j.id===g);return i?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(oa,{value:String(g),id:`rd-${g}`}),e.jsx(C,{htmlFor:`rd-${g}`,className:"cursor-pointer text-sm",children:i.contract_type_name})]},g):null})})]})]}),e.jsxs(Ye,{children:[e.jsx(b,{variant:"outline",onClick:d,disabled:D,children:"Cancelar"}),e.jsx(b,{onClick:w,disabled:D||N,children:D?"Salvando...":"Salvar"})]})]})})}function mt({open:s,accountId:r,onClose:t,onSaved:d}){const[x,N]=n.useState("credit"),[v,D]=n.useState("1"),[c,I]=n.useState(""),[A,f]=n.useState(""),[y,p]=n.useState(!1),[o,m]=n.useState(!1);n.useEffect(()=>{s&&(N("credit"),D("1"),I(""),f(""),p(!1))},[s]);const w=async()=>
21{if(!r)return;const P=Number(v);if(!Number.isFinite(P)||P<=0){F.error("Quantidade deve ser maior que zero.");return}if(!c.trim()){F.error("Informe o motivo.");return}if(!y){F.error("Confirme o ajuste manual antes de salvar.");return}m(!0);const g=await ee.registerUsageEvent({account_id:r,event_type:x==="credit"?"manual_credit":"manual_debit",consumable_key:"selection_standard",direction:x,units:P,reference_entity:"mcc_adjustment",reference_id:"manual",description:A.trim()||c.trim(),metadata:{source:"mcc_manual_credit_adjustment",reason:c.trim()},created_by:null});if(m(!1),!g.success){F.error(g.message||"Falha ao registrar ajuste.");return}F.success("Ajuste registrado com sucesso."),d()};return e.jsx(pe,{open:s,onOpenChange:P=>{P||t()},children:e.jsxs(je,{className:"max-w-md",children:[e.jsxs(_e,{children:[e.jsx(ve,{children:"Ajustar créditos"}),e.jsx(Le,{children:"Registre crédito ou débito manual no ledger operacional do cliente."})]}),e.jsxs("div",{className:"flex items-start gap-2 p-3 rounded-lg border border-amber-300 bg-amber-50 text-amber-800 text-xs",children:[e.jsx(Aa,{className:"h-4 w-4 shrink-0 mt-0.5"}),e.jsx("span",{children:"Ajustes manuais afetam o ledger operacional do cliente."})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Operação"}),e.jsxs(Y,{value:x,onValueChange:P=>N(P),children:[e.jsx(X,{children:e.jsx(Q,{})}),e.jsxs(W,{children:[e.jsx(T,{value:"credit",children:"Crédito"}),e.jsx(T,{value:"debit",children:"Débito"})]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Unidade"}),e.jsxs(Y,{value:"selection_standard",onValueChange:()=>{},children:[e.jsx(X,{children:e.jsx(Q,{})}),e.jsx(W,{children:e.jsx(T,{value:"selection_standard",children:"selection_standard"})})]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Quantidade *"}),e.jsx(M,{type:"number",min:1,value:v,onChange:P=>D(P.target.value)})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Motivo *"}),e.jsx(M,{value:c,onChange:P=>I(P.target.value),placeholder:"Ex.: cortesia comercial"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Descrição (opcional)"}),e.jsx(Ne,{rows:2,value:A,onChange:P=>f(P.target.value)})]}),e.jsxs("label",{className:"flex items-start gap-2 text-xs text-muted-foreground cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:y,onChange:P=>p(P.target.checked),className:"mt-0.5"}),e.jsx("span",{children:"Confirmo o ajuste manual e entendo o impacto no ledger."})]})]}),e.jsxs(Ye,{children:[e.jsx(b,{variant:"outline",onClick:t,disabled:o,children:"Cancelar"}),e.jsx(b,{onClick:w,disabled:o||!y,children:o?"Salvando...":"Registrar"})]})]})})}const da="Não informado",xt=s=>s==null||s===""?"":String(s),H=(s,r=da)=>{const t=xt(s);return t.length?t:r},ht=s=>s===!0?"Sim":s===!1?"Não":da,pt=s=>{if(!s)return"";const r=new Date(s);return Number.isNaN(r.getTime())?s:r.toLocaleString("pt-BR")},ws=s=>{switch(s){case"active":return"default";case"pending":return"secondary";case"suspended":case"inactive":case"archived":return"destructive";default:return"outline"}},Ss=s=>{switch(s){case"active":return"Ativo";case"inactive":return"Inativo";
21case"pending":return"Pendente";case"suspended":return"Suspenso";case"archived":return"Arquivado";default:return H(s,"—")}},jt=s=>{switch(s){case"email":return"Email";case"phone":return"Telefone";case"whatsapp":return"WhatsApp";default:return H(s,"—")}},_t=s=>s?Array.isArray(s)?s:typeof s=="object"?Object.entries(s).map(([r,t])=>({consumable_key:r,...typeof t=="object"&&t?t:{}})):[]:[];function ce({icon:s,title:r,children:t}){return e.jsxs("section",{className:"rounded-lg border bg-card",children:[e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2.5 border-b",children:[e.jsx(s,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("h3",{className:"text-sm font-semibold",children:r})]}),e.jsx("div",{className:"p-4",children:t})]})}function J({label:s,value:r}){return e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("p",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:s}),e.jsx("p",{className:"text-sm break-words",children:r||"—"})]})}function vt({open:s,onOpenChange:r,accountId:t,onSaved:d}){var Ee,be,Ie,Re,a,O,Z,S,de,rs,ls,is,cs,os,ds,us,ms,xs,hs,ps,js;const[x,N]=n.useState(!1),[v,D]=n.useState(null),[c,I]=n.useState(null),[A,f]=n.useState("view"),[y,p]=n.useState(!1),[o,m]=n.useState(null),[w,P]=n.useState(!1),[g,i]=n.useState(!1),[j,$]=n.useState(!1),L=async()=>{if(!t)return;N(!0),D(null);const l=await ee.getClientProfile({account_id:t,include_recent_events:!0});if(!l.success||!l.data){D(l.message||"Falha ao carregar perfil do cliente."),I(null),N(!1);return}I(l.data),N(!1)};n.useEffect(()=>{!s||!t||(f("view"),m(null),L())},[s,t]);const q=(c==null?void 0:c.account)||{},h=(c==null?void 0:c.client_profile)||{},k=(c==null?void 0:c.active_plan)||null,B=n.useMemo(()=>_t(c==null?void 0:c.usage_summary),[c==null?void 0:c.usage_summary]),u=(c==null?void 0:c.contract_types)||[],R=(c==null?void 0:c.recent_usage_events)||[],V=h.selection_contact||{},_=h.addresses||[],ne=h.trade_display_name||q.name||"Cliente",ie=[q.account_type,q.account_nature].filter(
21Boolean).join(" · "),ge=()=>{m({trade_display_name:h.trade_display_name??"",company_description:h.company_description??"",company_segment:h.company_segment??"",company_sector:h.company_sector??"",company_size_range:h.company_size_range??"",employees_count:h.employees_count??0,has_structured_hr:h.has_structured_hr??!1,visibility_mode:h.visibility_mode??"standard",selection_contact:{name:V.name??"",role:V.role??"",email:V.email??"",phone:V.phone??"",preferred_channel:V.preferred_channel??"email"},addresses:_.length?_:[{label:"Matriz",type:"headquarters",zipcode:"",street:"",number:"",district:"",city:"",state:"",country:"BR",is_default:!0}]}),f("edit")},re=()=>{m(null),f("view")},fe=async()=>{var _s,vs,gs,fs,ys;if(!t||!o)return;p(!0);const l=o.addresses&&o.addresses[0]||{},G=[{label:l.label||"Matriz",type:l.type||"headquarters",zipcode:l.zipcode??"",street:l.street??"",number:l.number??"",district:l.district??"",city:l.city??"",state:l.state??"",country:l.country||"BR",is_default:!0}],Ce=await ee.updateClientProfile({account_id:t,profile:{trade_display_name:o.trade_display_name??"",company_description:o.company_description??"",company_segment:o.company_segment??"",company_sector:o.company_sector??"",company_size_range:o.company_size_range??"",employees_count:Number(o.employees_count)||0,has_structured_hr:!!o.has_structured_hr,visibility_mode:o.visibility_mode||"standard",selection_contact:{name:((_s=o.selection_contact)==null?void 0:_s.name)??"",role:((vs=o.selection_contact)==null?void 0:vs.role)??"",email:((gs=o.selection_contact)==null?void 0:gs.email)??"",phone:((fs=o.selection_contact)==null?void 0:fs.phone)??"",preferred_channel:((ys=o.selection_contact)==null?void 0:ys.preferred_channel)??"email"},addresses:G,metadata:{source:"mcc_clients_edit"}},created_by:null});if(p(!1),!Ce.success){F.error(Ce.message||"Falha ao salvar perfil operacional.");return}F.success("Perfil operacional salvo com sucesso."),f("view"),m(null),await L(),d==null||d()},ae=l=>m(G=>G&&{...G,...l}),ye=l=>m(G=>G&&{...G,selection_contact:{...G.selection_contact||{},...l}}),le=l=>m(G=>{if(!G)return G;const Ce=G.addresses&&G.addresses[0]||{};return{...G,addresses:[{...Ce,...l}]}});return e.jsxs(e.Fragment,{children:[e.jsx(pe,{open:s,onOpenChange:r,children:e.jsxs(je,{className:"max-w-3xl max-h-[88vh] overflow-y-auto",children:[e.jsxs(_e,{children:[e.jsxs(ve,{className:"flex items-center gap-2 pr-8",children:[q.account_type==="pj"?e.jsx(Ae,{className:"h-5 w-5"}):e.jsx(Fs,{className:"h-5 w-5"}),x?e.jsx(te,{className:"h-6 w-48"}):e.jsx("span",{children:ne}),!x&&h.client_status&&e.jsx(U,{variant:ws(h.client_status),className:h.client_status==="active"?"bg-green-600 hover:bg-green-700":"",children:Ss(h.client_status)})]}),!x&&ie&&e.jsx("p",{className:"text-xs text-muted-foreground uppercase tracking-wide",children:ie})]}),v&&e.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-lg border border-destructive/40 bg-destructive/5 text-destructive text-sm",children:[e.jsx(Pe,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{children:v})]}),x&&e.jsxs("div",{className:"space-y-3",children:[e.jsx(te,{className:"h-24 w-full"}),e.jsx(te,{className:"h-24 w-full"}),e.jsx(te,{className:"h-24 w-full"})]}),!x&&!v&&c&&A==="view"&&e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"flex justify-end",children:e.jsxs(b,{size:"sm",variant:"outline",onClick:ge,children:[e.jsx(De,{className:"h-3.5 w-3.5 mr-1.5"}),"Editar perfil operacional"]})}),e.jsx(ce,{icon:fa,title:"Conta oficial",children:e.jsxs("div",{className:"grid grid-cols-2 gap-x-4 gap-y-3",children:[e.jsx(J,{label:"Nome oficial",value:H(q.n
21ame)}),e.jsx(J,{label:"Documento",value:H(q.document)}),e.jsx(J,{label:"Tipo",value:e.jsx(U,{variant:"outline",className:"uppercase",children:H(q.account_type,"—")})}),e.jsx(J,{label:"Natureza",value:H(q.account_nature,"—")}),e.jsx(J,{label:"Status",value:e.jsx(U,{variant:ws(q.status),children:Ss(q.status)})}),e.jsx(J,{label:"Email",value:H(q.email)}),e.jsx(J,{label:"Telefone",value:H(q.phone)})]})}),e.jsxs(ce,{icon:Ae,title:"Perfil operacional",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-x-4 gap-y-3",children:[e.jsx(J,{label:"Nome de exibição",value:H(h.trade_display_name)}),e.jsx(J,{label:"Segmento",value:H(h.company_segment)}),e.jsx(J,{label:"Setor",value:H(h.company_sector)}),e.jsx(J,{label:"Tamanho",value:H(h.company_size_range)}),e.jsx(J,{label:"Nº funcionários",value:H(h.employees_count)}),e.jsx(J,{label:"RH estruturado",value:ht(h.has_structured_hr)}),e.jsx(J,{label:"Visibilidade",value:H(h.visibility_mode)}),e.jsx(J,{label:"Enriquecimento",value:H(h.public_enrichment_status)})]}),h.company_description&&e.jsx("div",{className:"mt-3 pt-3 border-t",children:e.jsx(J,{label:"Descrição",value:h.company_description})})]}),e.jsxs(ce,{icon:Pa,title:"Plano e saldo",children:[e.jsxs("div",{className:"grid grid-cols-3 gap-x-4 gap-y-3",children:[e.jsx(J,{label:"Plano",value:H(k==null?void 0:k.plan_name,"Sem plano")}),e.jsx(J,{label:"Chave do plano",value:H(k==null?void 0:k.plan_key,"—")}),e.jsx(J,{label:"Unidade",value:H(k==null?void 0:k.credit_unit_key,"—")})]}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[e.jsxs(b,{size:"sm",variant:"outline",onClick:()=>P(!0),children:[e.jsx(Ya,{className:"h-3.5 w-3.5 mr-1.5"})," Trocar plano"]}),e.jsxs(b,{size:"sm",variant:"outline",onClick:()=>$(!0),children:[e.jsx(Ke,{className:"h-3.5 w-3.5 mr-1.5"})," Ajustar créditos"]})]}),B.length>0&&e.jsxs("div",{className:"mt-4 pt-3 border-t space-y-2",children:[e.jsx("p",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Resumo de uso"}),e.jsx("div",{className:"space-y-2",children:B.map((l,G)=>e.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-md border bg-muted/30 px-3 py-2 text-sm",children:[e.jsx("span",{className:"font-medium",children:H(l.consumable_key,"—")}),e.jsxs("div",{className:"flex items-center gap-4 text-xs",children:[e.jsxs("span",{className:"text-muted-foreground",children:["Créditos: ",e.jsx("span",{className:"text-foreground font-medium",children:l.credited_units??0})]}),e.jsxs("span",{className:"text-muted-foreground",children:["Consumos: ",e.jsx("span",{className:"text-foreground font-medium",children:l.debited_units??0})]}),e.jsxs("span",{className:"text-muted-foreground",children:["Saldo: ",e.jsx("span",{className:"text-foreground font-semibold",children:l.operational_balance??0})]})]})]},G))})]})]}),e.jsxs(ce,{icon:ya,title:"Tipos de contrato",children:[u.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"Nenhum tipo de contrato configurado."}):e.jsx("div",{className:"flex flex-wrap gap-2",children:u.map((l,G)=>{const Ce=l.contract_type_name||l.contract_type_key||`#${l.contract_type_id??G}`;return e.jsxs(U,{variant:l.is_default?"default":"secondary",children:[Ce,l.is_default?" · padrão":""]},G)})}),e.jsx("div",{className:"mt-3",children:e.jsxs(b,{size:"sm",variant:"outline",onClick:()=>i(!0),children:[e.jsx(De,{className:"h-3.5 w-3.5 mr-1.5"})," Editar tipos de contrato"]})})]}),e.jsx(ce,{icon:Ea,title:"Contato de seletiva",children:!V.name&&!V.email&&!V.phone?e.jsx("p",{className:"text-sm text-muted-foreground",children:"Nenhum contato configurado."}):e.jsxs("div",{className:"grid grid-cols-2 gap-x-4 gap-y-3",children:[e.jsx(J,{label:"Nome",value:H(V.name)}),e.jsx(J,{label:"Cargo",value:H(V.role)}),e.jsx(J,{label:"Email",value:H(V.email)}),e.jsx(J,{label:"Telefone",value:H(V.phone)}),e.jsx(J,{label:"Canal preferido",value:jt(V.preferred_channel)})]})}),e.jsx(ce,{icon:Ns,title:"Endereços",children:_.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"Nenhum endereço cadastrado."}):e.jsx("div",{className:"space-y-2",children:_.map((l,G)=>e.jsxs("div",{className:"rounded-md border p-3 text-sm",children:[e.jsxs("div",{className:"flex items-center justify-between mb-1",children:[e.jsx("span",{className:"font-medium",children:H(l.label,`Endereço ${G+1}`)}),l.is_default&&e.jsx(U,{variant:"default",className:"bg-green-600 hover:bg-green-700",children:"principal"})]}),e.jsxs("p",{className:"text-muted-foreground",children:[[l.street,l.number].filter(
21Boolean).join(", ")||"—",l.district?` · ${l.district}`:""]}),e.jsxs("p",{className:"text-muted-foreground",children:[[l.city,l.state].filter(Boolean).join(" / "),l.zipcode?` · CEP ${l.zipcode}`:"",l.country?` · ${l.country}`:""]})]},G))})}),e.jsx(ce,{icon:Na,title:"Eventos recentes",children:R.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"Sem eventos recentes."}):e.jsx("div",{className:"space-y-1.5",children:R.map((l,G)=>e.jsxs("div",{className:"flex items-center justify-between gap-3 text-sm py-1.5 border-b last:border-0",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(U,{variant:l.direction==="credit"?"default":"secondary",className:l.direction==="credit"?"bg-green-600 hover:bg-green-700":"",children:l.direction||l.event_type||"—"}),e.jsx("span",{className:"truncate",children:H(l.description||l.consumable_key,"—")})]}),e.jsxs("div",{className:"flex items-center gap-3 text-xs text-muted-foreground shrink-0",children:[l.units!=null&&e.jsx("span",{className:"text-foreground font-medium",children:l.units}),e.jsx("span",{children:pt(l.created_at)})]})]},G))})})]}),!x&&!v&&c&&A==="edit"&&o&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs(b,{size:"sm",variant:"ghost",onClick:re,disabled:y,children:[e.jsx(Vs,{className:"h-3.5 w-3.5 mr-1.5"}),"Voltar"]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(b,{size:"sm",variant:"outline",onClick:re,disabled:y,children:"Cancelar"}),e.jsx(b,{size:"sm",onClick:fe,disabled:y,children:y?"Salvando...":"Salvar"})]})]}),e.jsxs("div",{className:"flex items-start gap-2 p-3 rounded-lg border bg-muted/40 text-xs text-muted-foreground",children:[e.jsx(zs,{className:"h-4 w-4 shrink-0 mt-0.5"}),e.jsx("span",{children:"Dados oficiais da conta não são editados aqui. Esta edição altera apenas o perfil operacional do cliente."})]}),e.jsx(ce,{icon:Ae,title:"Perfil operacional",children:e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"col-span-2 space-y-1.5",children:[e.jsx(C,{children:"Nome de exibição"}),e.jsx(M,{value:o.trade_display_name??"",onChange:l=>ae({trade_display_name:l.target.value})})]}),e.jsxs("div",{className:"col-span-2 space-y-1.5",children:[e.jsx(C,{children:"Descrição"}),e.jsx(Ne,{rows:3,value:o.company_description??"",onChange:l=>ae({company_description:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Segmento"}),e.jsx(M,{value:o.company_segment??"",onChange:l=>ae({company_segment:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Setor"}),e.jsx(M,{value:o.company_sector??"",onChange:l=>ae({company_sector:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Tamanho"}),e.jsx(M,{placeholder:"Ex.: 1-10",value:o.company_size_range??"",onChange:l=>ae({company_size_range:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Nº funcionários"}),e.jsx(M,{type:"number",min:0,value:o.employees_count??0,onChange:l=>ae({employees_count:l.target.value===""?0:Number(l.target.value)})})]}),e.jsxs("div",{className:"flex items-center justify-between rounded-md border px-3 py-2",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"RH estruturado"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Indica se o cliente possui RH formalizado."})]}),e.jsx(he,{checked:!!o.has_structured_hr,onCheckedChange:l=>ae({has_structured_hr:l})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Visibilidade"}),e.jsxs(Y,{value:o.visibility_mode||"standard",onValueChange:l=>ae({visibility_mode:l}),children:[e.jsx(X,{children:e.jsx(Q,{})}),e.jsxs(W,{children:[e.jsx(T,{value:"standard",children:"Standard"}),e.jsx(T,{value:"hidden",children:"Hidden"}),e.jsx(T,{value:"featured",children:"Featured"})]})]})]})]})}),e.jsx(ce,{icon:ba,title:"Contato de seletiva",children:e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Nome"}),e.jsx(M,{value:((Ee=o.selection_contact)==null?void 0:Ee.name)??"",onChange:l=>ye({name:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Cargo"}),e.jsx(M,{value:((be=o.selection_contact)==null?void 0:be.role)??"",onChange:l=>ye({role:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Email"}
21),e.jsx(M,{type:"email",value:((Ie=o.selection_contact)==null?void 0:Ie.email)??"",onChange:l=>ye({email:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Telefone"}),e.jsx(M,{value:((Re=o.selection_contact)==null?void 0:Re.phone)??"",onChange:l=>ye({phone:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5 col-span-2",children:[e.jsx(C,{children:"Canal preferido"}),e.jsxs(Y,{value:((a=o.selection_contact)==null?void 0:a.preferred_channel)||"email",onValueChange:l=>ye({preferred_channel:l}),children:[e.jsx(X,{children:e.jsx(Q,{})}),e.jsxs(W,{children:[e.jsx(T,{value:"email",children:"Email"}),e.jsx(T,{value:"phone",children:"Telefone"}),e.jsx(T,{value:"whatsapp",children:"WhatsApp"})]})]})]})]})}),e.jsx(ce,{icon:Ns,title:"Endereço principal",children:e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Label"}),e.jsx(M,{value:((Z=(O=o.addresses)==null?void 0:O[0])==null?void 0:Z.label)??"",onChange:l=>le({label:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"CEP"}),e.jsx(M,{value:((de=(S=o.addresses)==null?void 0:S[0])==null?void 0:de.zipcode)??"",onChange:l=>le({zipcode:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5 col-span-2",children:[e.jsx(C,{children:"Logradouro"}),e.jsx(M,{value:((ls=(rs=o.addresses)==null?void 0:rs[0])==null?void 0:ls.street)??"",onChange:l=>le({street:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Número"}),e.jsx(M,{value:((cs=(is=o.addresses)==null?void 0:is[0])==null?void 0:cs.number)??"",onChange:l=>le({number:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Bairro"}),e.jsx(M,{value:((ds=(os=o.addresses)==null?void 0:os[0])==null?void 0:ds.district)??"",onChange:l=>le({district:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Cidade"}),e.jsx(M,{value:((ms=(us=o.addresses)==null?void 0:us[0])==null?void 0:ms.city)??"",onChange:l=>le({city:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Estado"}),e.jsx(M,{value:((hs=(xs=o.addresses)==null?void 0:xs[0])==null?void 0:hs.state)??"",onChange:l=>le({state:l.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"País"}),e.jsx(M,{value:((js=(ps=o.addresses)==null?void 0:ps[0])==null?void 0:js.country)??"BR",onChange:l=>le({country:l.target.value})})]})]})}),e.jsxs("div",{className:"flex justify-end gap-2 pt-2 border-t",children:[e.jsx(b,{variant:"outline",onClick:re,disabled:y,children:"Cancelar"}),e.jsx(b,{onClick:fe,disabled:y,children:y?"Salvando...":"Salvar"})]})]})]})}),e.jsx(et,{open:w,accountId:t,currentPlanKey:(k==null?void 0:k.plan_key)??null,onClose:()=>P(!1),onChanged:()=>{P(!1),L(),d==null||d()}}),e.jsx(ut,{open:g,accountId:t,current:u,onClose:()=>i(!1),onSaved:()=>{i(!1),L(),d==null||d()}}),e.jsx(mt,{open:j,accountId:t,onClose:()=>$(!1),onSaved:()=>{$(!1),L(),d==null||d()}})]})}const Qe={total_clients:0,active_clients:0,prepaid_clients:0,postpaid_enabled_clients:0,with_active_plan:0},gt=s=>s?s==="prepaid"?"Pré-pago":s==="postpaid"?"Pós-pago":s:"—",ft=s=>{switch(s){case"active":return"default";case"pending":return"secondary";case"suspended":case"archived":case"inactive":return"destructive";default:return"outline"}},yt=s=>{switch(s){case"active":return"Ativo";case"inactive":return"Inativo";
21case"pending":return"Pendente";case"suspended":return"Suspenso";case"archived":return"Arquivado";default:return s||"—"}},Nt=s=>{if(!s)return"—";const r=new Date(s);return Number.isNaN(r.getTime())?"—":r.toLocaleDateString("pt-BR")+" "+r.toLocaleTimeString("pt-BR",{hour:"2-digit",minute:"2-digit"})};function bt(){const[s,r]=n.useState(qe),[t,d]=n.useState(qe),[x,N]=n.useState([]),[v,D]=n.useState(Qe),[c,I]=n.useState(!0),[A,f]=n.useState(null),[y,p]=n.useState(null),o=n.useCallback(async i=>{I(!0),f(null);const j=await ee.listClients({limit:50,offset:0,search:i.search.trim()||null,account_type:i.account_type,client_status:i.client_status});if(!j.success||!j.data){N([]),D(Qe),f(j.message||"Falha ao listar clientes."),I(!1);return}N(j.data.items||[]),D(j.data.summary||Qe),I(!1)},[]);n.useEffect(()=>{o(t)},[o,t]);const m=()=>d({...s}),w=()=>{r(qe),d(qe)},P=n.useMemo(()=>t.billing==="all"?x:t.billing==="prepaid"?x.filter(i=>i.billing_mode==="prepaid"):t.billing==="postpaid_enabled"?x.filter(i=>i.postpaid_enabled===!0):x,[x,t.billing]),g=[{label:"Total de clientes",value:v.total_clients},{label:"Ativos",value:v.active_clients},{label:"Pré-pagos",value:v.prepaid_clients},{label:"Pós-pago habilitado",value:v.postpaid_enabled_clients}];return e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:g.map(i=>e.jsx(Ge,{children:e.jsxs(Ue,{className:"p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:i.label}),c?e.jsx(te,{className:"h-7 w-12 mt-1"}):e.jsx("p",{className:"text-2xl font-semibold mt-1",children:i.value??0})]})},i.label))}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs("div",{className:"relative flex-1 min-w-[260px]",children:[e.jsx(Be,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(M,{placeholder:"Buscar por empresa, documento, email, telefone ou segmento...",className:"pl-9",value:s.search,onChange:i=>r(j=>({...j,search:i.target.value})),onKeyDown:i=>{i.key==="Enter"&&m()}})]}),e.jsxs(Y,{value:s.account_type,onValueChange:i=>r(j=>({...j,account_type:i})),children:[e.jsx(X,{className:"w-[130px]",children:e.jsx(Q,{placeholder:"Tipo"})}),e.jsxs(W,{children:[e.jsx(T,{value:"all",children:"Todos"}),e.jsx(T,{value:"pf",children:"PF"}),e.jsx(T,{value:"pj",children:"PJ"})]})]}),e.jsxs(Y,{value:s.client_status,onValueChange:i=>r(j=>({...j,client_status:i})),children:[e.jsx(X,{className:"w-[140px]",children:e.jsx(Q,{placeholder:"Status"})}),e.jsxs(W,{children:[e.jsx(T,{value:"all",children:"Todos"}),e.jsx(T,{value:"active",children:"Ativo"}),e.jsx(T,{value:"inactive",children:"Inativo"}),e.jsx(T,{value:"pending",children:"Pendente"}),e.jsx(T,{value:"suspended",children:"Suspenso"}),e.jsx(T,{value:"archived",children:"Arquivado"})]})]}),e.jsxs(Y,{value:s.billing,onValueChange:i=>r(j=>({...j,billing:i})),children:[e.jsx(X,{className:"w-[180px]",children:e.jsx(Q,{placeholder:"Billing"})}),e.jsxs(W,{children:[e.jsx(T,{value:"all",children:"Todos"}),e.jsx(T,{value:"prepaid",children:"Pré-pago"}),e.jsx(T,{value:"postpaid_enabled",children:"Pós-pago habilitado"})]})]}),e.jsx(b,{onClick:m,children:"Aplicar"}),e.jsx(b,{variant:"outline",onClick:w,children:"Limpar"}),e.jsxs(b,{variant:"outline",onClick:()=>o(t),disabled:c,children:[e.jsx(Me,{className:`h-4 w-4 mr-1 ${c?"animate-spin":""}`}),"Atualizar"]}),e.jsxs(b,{className:"ml-auto",disabled:!0,onClick:()=>F.info("Cadastro pela MCC será habilitado na próxima etapa."),children:[e.jsx(Ke,{className:"h-4 w-4 mr-1"}),"Nova Empresa"]})]}),A&&e.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-lg border border-destructive/40 bg-destructive/5 text-destructive text-sm",children:[e.jsx(Pe,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{children:A})]}),e.jsx("div",{className:"border rounded-lg",children:e.jsxs(Oe,{children:[e.jsx(Fe,{children:e.jsxs(K,{children:[e.jsx(z,{children:"Cliente"}),e.jsx(z,{children:"Tipo"}),e.jsx(z,{children:"Segmento"}),e.jsx(z,{children:"Plano"}),e.jsx(z,{children:"Saldo"}),e.jsx(z,{children:"Billing"}),e.jsx(z,{children:"Status"}),e.jsx(z,{children:"Atualizado em"}),e.jsx(z,{className:"text-right",children:"Ações"})]})}),e.jsx(ze,{children:c?Array.from({length:4}).map((i,j)=>e.jsx(K,{children:Array.from({length:9}).map(($,L)=>e.jsx(E,{children:e.jsx(te,{className:"h-4 w-full"})},L))},`sk-${j}`)):P.length===0?e.jsx(K,{children:e.jsx(E,{colSpan:9,className:"text-center py-10 text-muted-foreground",children:"Nenhum cliente encontrado."})}):P.map(i=>{var q,h,k;const j=i.trade_display_name||i.account_name||"—",$=i.document||i.email||i.phone||null,L=[i.company_
21segment,i.company_sector].filter(Boolean).join(" · ")||"—";return e.jsxs(K,{children:[e.jsxs(E,{children:[e.jsx("div",{className:"font-medium",children:j}),$&&e.jsx("div",{className:"text-xs text-muted-foreground",children:$})]}),e.jsx(E,{children:e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs(U,{variant:"outline",className:"gap-1 uppercase w-fit",children:[i.account_type==="pj"?e.jsx(Ae,{className:"h-3 w-3"}):e.jsx(Fs,{className:"h-3 w-3"}),i.account_type]}),i.account_nature&&e.jsx("span",{className:"text-[11px] text-muted-foreground",children:i.account_nature})]})}),e.jsx(E,{className:"text-sm",children:L}),e.jsx(E,{children:(q=i.plan)!=null&&q.plan_name?e.jsx(U,{variant:"secondary",children:i.plan.plan_name}):e.jsx("span",{className:"text-muted-foreground text-sm",children:"Sem plano"})}),e.jsxs(E,{className:"text-sm",children:[e.jsx("span",{className:"font-medium",children:i.main_balance??0}),((h=i.plan)==null?void 0:h.credit_unit_key)==="selection_standard"?e.jsx("span",{className:"text-xs text-muted-foreground ml-1",children:"créditos"}):(k=i.plan)!=null&&k.credit_unit_key?e.jsx("span",{className:"text-xs text-muted-foreground ml-1",children:i.plan.credit_unit_key}):null]}),e.jsx(E,{children:e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("span",{className:"text-sm",children:gt(i.billing_mode)}),i.postpaid_enabled&&e.jsx(U,{variant:"outline",className:"w-fit text-[10px]",children:"Pós-pago habilitado"})]})}),e.jsx(E,{children:e.jsx(U,{variant:ft(i.client_status),className:i.client_status==="active"?"bg-green-600 hover:bg-green-700":"",children:yt(i.client_status)})}),e.jsx(E,{className:"text-xs text-muted-foreground",children:Nt(i.client_profile_updated_at)}),e.jsx(E,{className:"text-right",children:e.jsxs("div",{className:"flex justify-end gap-1",children:[e.jsx(b,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>p(i.account_id),title:"Visualizar",children:e.jsx(Gs,{className:"h-4 w-4"})}),e.jsx(b,{variant:"ghost",size:"icon",className:"h-8 w-8",disabled:!0,title:"Edição administrativa em breve",children:e.jsx(De,{className:"h-4 w-4"})})]})})]},i.account_id)})})]})}),e.jsx(vt,{open:!!y,onOpenChange:i=>!i&&p(null),accountId:y,onSaved:()=>o(t)})]})}const Ct="https://gmtexatrdgqaymnknopd.supabase.co",ks="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImdtdGV4YXRyZGdxYXltbmtub3BkIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTA1MDI0NzMsImV4cCI6MjA2NjA3ODQ3M30.cmegADUAr87QrMLD3zn79wWTOOiBIqBKq49mNOmuU2A",wt=`${Ct}/functions/v1/rhai_edge_mcc_benefits_operation_gateway`,As="[RHAI MccBenefitsGateway]",St=()=>({"Content-Type":"application/json",apikey:ks,Authorization:`Bearer ${ks}`});async function $e(s,r){try{const t=await fetch(wt,{method:"POST",headers:St(),body:JSON.stringify({action:s,payload:r})}),d=await t.json();return t.ok||console.warn(`${As} ${s} http error`,d),d}catch(t){return console.warn(`${As} ${s} network error`,t),{success:!1,error_code:"network_error",message:"Falha de rede ao consultar a Edge de Benefícios.",data:null}}}const Te={list(s={}){return $e("benefits_library_list",{p_search:s.p_search??"",p_category:s.p_category??"",p_kind:s.p_kind??"",p_scope_type:s.p_scope_type??null,p_is_active:s.p_is_active??null,p_limit:s.p_limit??300})},createOrUpdate(s){return $e("benefit_create_or_update",s)},promoteToGlobal(s){return $e("benefit_promote_to_global",{p_id:s})},delete(s){return $e("benefit_delete",{p_id:s})}},ua=["alimentação","saúde","transporte","flexibilidade","financeiro","educação","bem-estar","família","cultura","carreira","tecnologia","ambiente"],ma=["benefit","policy","compensation","infrastructure","culture"];function Ps({open:s,onOpenChange:r,benefit:t,onSaved:d}){const x=!!t,[N,v]=n.useState(""),[D,c]=n.useState(""),[I,A]=n.useState("benefit"),[f,y]=n.useState(""),[p,o]=n.useState("global"),[m,
21w]=n.useState(""),[P,g]=n.useState(""),[i,j]=n.useState(0),[$,L]=n.useState(!0),[q,h]=n.useState(!1);n.useEffect(()=>{s&&(v((t==null?void 0:t.benefit_name)??""),c((t==null?void 0:t.benefit_category)??""),A((t==null?void 0:t.benefit_kind)??"benefit"),y((t==null?void 0:t.description)??""),o((t==null?void 0:t.scope_type)??"global"),w((t==null?void 0:t.company_id)??""),g((t==null?void 0:t.icon_name)??""),j((t==null?void 0:t.display_order)??0),L((t==null?void 0:t.is_active)??!0))},[s,t]);const k=async()=>{if(!N.trim()){F.error("Informe o nome do benefício");return}if(p==="company"&&!m.trim()){F.error("Informe o company_id para escopo company");return}h(!0);const B=await Te.createOrUpdate({p_id:t==null?void 0:t.id,p_benefit_name:N.trim(),p_benefit_category:D||null,p_benefit_kind:I||null,p_description:f.trim()||null,p_scope_type:p,p_company_id:p==="company"?m.trim():null,p_icon_name:P.trim()||null,p_display_order:Number(i)||0,p_is_active:$});if(h(!1),!B.success){F.error(B.message||"Falha ao salvar benefício");return}F.success(x?"Benefício atualizado":"Benefício criado"),r(!1),d()};return e.jsx(pe,{open:s,onOpenChange:r,children:e.jsxs(je,{className:"max-w-md max-h-[90vh] overflow-y-auto",children:[e.jsx(_e,{children:e.jsx(ve,{children:x?"Editar Benefício":"Novo Benefício"})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(C,{children:"Nome do benefício"}),e.jsx(M,{value:N,onChange:B=>v(B.target.value),placeholder:"Ex: Plano de Saúde"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(C,{children:"Categoria"}),e.jsxs(Y,{value:D,onValueChange:c,children:[e.jsx(X,{children:e.jsx(Q,{placeholder:"Selecione"})}),e.jsx(W,{children:ua.map(B=>e.jsx(T,{value:B,children:B},B))})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(C,{children:"Kind"}),e.jsxs(Y,{value:I,onValueChange:A,children:[e.jsx(X,{children:e.jsx(Q,{})}),e.jsx(W,{children:ma.map(B=>e.jsx(T,{value:B,children:B},B))})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(C,{children:"Descrição"}),e.jsx(Ne,{value:f,onChange:B=>y(B.target.value),placeholder:"Descrição opcional",rows:3})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(C,{children:"Escopo"}),e.jsxs(Y,{value:p,onValueChange:B=>o(B),children:[e.jsx(X,{children:e.jsx(Q,{})}),e.jsxs(W,{children:[e.jsx(T,{value:"global",children:"Global"}),e.jsx(T,{value:"company",children:"Company"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(C,{children:"Ordem"}),e.jsx(M,{type:"number",value:i,onChange:B=>j(Number(B.target.value))})]})]}),p==="company"&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(C,{children:"Company ID (account_id)"}),e.jsx(M,{value:m,onChange:B=>w(B.target.value),placeholder:"uuid da empresa"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(C,{children:"Ícone (Lucide name)"}),e.jsx(M,{value:P,onChange:B=>g(B.target.value),placeholder:"Ex: Heart, Shield..."})]}),e.jsxs("div",{className:"flex items-center justify-between rounded-md border p-3",children:[e.jsxs("div",{children:[e.jsx(C,{className:"text-sm",children:"Ativo"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Itens inativos não aparecem em buscas operacionais"})]}),e.jsx(he,{checked:$,onCheckedChange:L})]})]}),e.jsxs("div",{className:"flex justify-end gap-2 pt-4 border-t",children:[e.jsx(b,{variant:"outline",onClick:()=>r(!1),disabled:q,children:"Cancelar"}),e.jsx(b,{onClick:k,disabled:q,children:q?"Salvando...":"Salvar"})]})]})})}function kt(){const[s,r]=n.useState([]),[t,d]=n.useState(!1),[x,N]=n.useState(""),[v,D]=n.useState("all"),[c,I]=n.useState("all"),[A,f]=n.useState("all"),[y,p]=n.useState("all"),[o,m]=n.useState(!1),[w,P]=n.useState(null),[g,i]=n.useState(null),[j,$]=n.useState(null),L=n.useCallback(async()=>{var R;d(!0);const u=await Te.list({p_search:x||"",p_category:v==="all"?"":v,p_kind:c==="all"?"":c,p_scope_type:A==="all"?null:A,p_is_active:y==="all"?null:y==="active",p_limit:300}
21);if(d(!1),!u.success){F.error(u.message||"Falha ao carregar benefícios"),r([]);return}r(((R=u.data)==null?void 0:R.items)??[])},[x,v,c,A,y]);n.useEffect(()=>{const u=setTimeout(()=>{L()},250);return()=>clearTimeout(u)},[L]);const q=n.useMemo(()=>{const u=new Set(ua);return s.forEach(R=>R.benefit_category&&u.add(R.benefit_category)),Array.from(u)},[s]),h=async u=>{$(u.id);const R=await Te.createOrUpdate({p_id:u.id,p_benefit_name:u.benefit_name,p_benefit_category:u.benefit_category,p_benefit_kind:u.benefit_kind,p_description:u.description,p_scope_type:u.scope_type,p_company_id:u.company_id,p_icon_name:u.icon_name,p_display_order:u.display_order,p_is_active:!u.is_active});if($(null),!R.success){F.error(R.message||"Falha ao alterar status");return}F.success(u.is_active?"Benefício desativado":"Benefício reativado"),L()},k=async u=>{$(u.id);const R=await Te.promoteToGlobal(u.id);if($(null),!R.success){F.error(R.message||"Falha ao promover");return}F.success("Benefício promovido para global"),L()},B=async()=>{if(!g)return;$(g.id);const u=await Te.delete(g.id);if($(null),i(null),!u.success){F.error(u.message||"Falha ao deletar");return}F.success("Benefício deletado"),L()};return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs("div",{className:"relative flex-1 min-w-[220px]",children:[e.jsx(Be,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(M,{placeholder:"Buscar por nome, categoria ou empresa...",className:"pl-9",value:x,onChange:u=>N(u.target.value)})]}),e.jsxs(Y,{value:v,onValueChange:D,children:[e.jsx(X,{className:"w-[160px]",children:e.jsx(Q,{placeholder:"Categoria"})}),e.jsxs(W,{children:[e.jsx(T,{value:"all",children:"Todas categorias"}),q.map(u=>e.jsx(T,{value:u,children:u},u))]})]}),e.jsxs(Y,{value:c,onValueChange:I,children:[e.jsx(X,{className:"w-[150px]",children:e.jsx(Q,{placeholder:"Kind"})}),e.jsxs(W,{children:[e.jsx(T,{value:"all",children:"Todos kinds"}),ma.map(u=>e.jsx(T,{value:u,children:u},u))]})]}),e.jsxs(Y,{value:A,onValueChange:u=>f(u),children:[e.jsx(X,{className:"w-[140px]",children:e.jsx(Q,{})}),e.jsxs(W,{children:[e.jsx(T,{value:"all",children:"Todos escopos"}),e.jsx(T,{value:"global",children:"Global"}),e.jsx(T,{value:"company",children:"Company"})]})]}),e.jsxs(Y,{value:y,onValueChange:u=>p(u),children:[e.jsx(X,{className:"w-[140px]",children:e.jsx(Q,{})}),e.jsxs(W,{children:[e.jsx(T,{value:"all",children:"Todos status"}),e.jsx(T,{value:"active",children:"Ativos"}),e.jsx(T,{value:"inactive",children:"Inativos"})]})]}),e.jsx(b,{variant:"outline",size:"icon",onClick:L,disabled:t,children:e.jsx(Me,{className:`h-4 w-4 ${t?"animate-spin":""}`})}),e.jsxs(b,{onClick:()=>m(!0),children:[e.jsx(Ke,{className:"h-4 w-4 mr-1"}),"Novo benefício"]})]}),e.jsx("div",{className:"border rounded-lg",children:e.jsxs(Oe,{children:[e.jsx(Fe,{children:e.jsxs(K,{children:[e.jsx(z,{children:"Benefit Name"}),e.jsx(z,{children:"Category"}),e.jsx(z,{children:"Kind"}),e.jsx(z,{children:"Scope"}),e.jsx(z,{children:"Company"}),e.jsx(z,{children:"Active"}),e.jsx(z,{children:"Created At"}),e.jsx(z,{className:"text-right",children:"Actions"})]})}),e.jsx(ze,{children:t&&s.length===0?e.jsx(K,{children:e.jsx(E,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"Carregando..."})}):s.length===0?e.jsx(K,{children:e.jsx(E,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"Nenhum benefício encontrado"})}):s.map(u=>e.jsxs(K,{children:[e.jsx(E,{className:"font-medium",children:u.benefit_name}),e.jsx(E,{children:u.benefit_category?e.jsx(U,{variant:"outline",children:u.benefit_category}):e.jsx("span",{className:"text-muted-foreground",children:"—"})}),e.jsx(E,{className:"text-muted-foreground text-xs",children:u.benefit_kind??"—"}),e.jsx(E,{children:e.jsxs(U,{variant:"secondary",className:"gap-1",children:[u.scope_type==="global"?e.jsx(La,{className:"h-3 w-3"}):e.jsx(Ae,{className:"h-3 w-3"}),u.scope_type]})}),e.jsx(E,{className:"text-muted-foreground",children:u.company_name??"—"}),e.jsx(E,{children:e.jsx(he,{checked:u.is_active,disabled:j===u.id,onCheckedChange:()=>h(u)})}),e.jsx(E,{className:"text-muted-foreground text-xs",children:new Date(u.created_at).toLocaleDateString("pt-BR")}),e.jsx(E,{className:"text-right",children:e.jsxs("div",{className:"flex justify-end gap-1",children:[e.jsx(b,{variant:"ghost",size:"icon",className:"h-8 w-8",title:"Editar",onClick:()=>P(u),children:e.jsx(De,{className:"h-4 w-4"})}),u.scope_type==="company"&&e.jsx(b,{variant:"ghost",size:"icon",className:"h-8 w-8",title:"Promover para global",disabled:j===u.id,onClick:()=>k(u),children:e.jsx(Ha,{className:"h-4 w-4"})}),e.jsx(b,{variant:"ghost",size:"icon",className:"h-8 w-8 text-destructive hover:text-destructive",title:"Deletar definitivamente",disabled:j===u.id,onClick:()=>i(u),children:e.jsx(Ma,{className:"h-4 w-4"})})]})})]},u.id))})]})}),e.jsx(Ps,{open:o,onOpenChange:m,onSaved:L}),e.jsx(Ps,{open:!!w,onOpenChange:u=>!u&&P(null),benefit:w,onSaved:L}),e.jsx(Ia,{open:!!g,onOpenChange:u=>!u&&i(null),children:e.jsxs(Ra,{children:[e.jsxs(Ta,{children:[e.jsx(Da,{children:"Deletar benefício?"}),e.jsxs(Ba,{children:["Tem certeza que deseja deletar definitivamente",g?` "${g.benefit_name}"`:" este benefício","? Essa ação não pode ser desfeita. Para uso normal, prefira desativar."]})]}),e.jsxs(Oa,{children:[e.jsx(Fa,{children:"Cancelar"}),e.jsx(za,{className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",onClick:B,children:"Deletar"})]})]})})]})}const Es=[{value:"prepaid",label:"Pré-pago"},{value:"postpaid",label:"Pós-pago"},{value:"hybrid",label:"Híbrido"},{value:"free",label:"Grátis"}],At=["none","included","credit_fraction","credit_unit","money_fixed","money_variable","custom"],Pt=["none","daily","weekly","monthly","yearly","custom"],Et=["none","days","months","years","custom"],It=["plan","cycle","selection","activation","candidate","account","custom"],Rt={selective_mode:"Modo de seletiva",candidate:"Candidato",hunter:"Caça-talentos",screening:"Triagem",assessment:"Avaliação",answers:"Respostas",selective:"Seletiva",payment:"Pagamento"},Tt=/^[a-z][a-z0-9_]*$/;function Is(s){return{...s,is_enabled:!1,is_included:!1,is_addon_available:!1,included_quantity:null,unit_cost_credits:null,unit_cost_money:null,pricing_mode:"none",cycle_period:"none",cycle_quantity:1,is_renewable:!1,expires_at_cycle_end:!1,rollover_enabled:!1,rollover_limit:null,validity_period:"none",validity_quantity:null,expires_after_validity:!1,limit_scope:"plan",visibility_to_client:!0,billing_behavior:"none",settings:{},metadata:{source:"mcc_plans_editor"},is_active:!0}}function We(s){return{plan_id:(s==null?void 0:s.id)??null,plan_key:(s==null?void 0:s.plan_key)??"",plan_name:(s==null?void 0:s.plan_name)??"",plan_description:(s==null?void 0:s.plan_description)??"",billing_mode_default:(s==null?void 0:s.billing_mode_default)??"prepaid",credit_unit_key:(s==null?void 0:s.credit_unit_key)??"selection_standard",included_units:(s==null?void 0:s.included_units)??0,is_public:!!(s!=null&&s.is_public),is_active:(s==null?void 0:s.is_active)??!0,plan_audie
21nce:(s==null?void 0:s.plan_audience)||{}}}function Rs(s,r){const t={};for(const d of s)t[d.feature_key]=Is(d);for(const d of r){const x=t[d.feature_key]||Is(d);t[d.feature_key]={...x,...d}}return t}function Ze(s){return{recommended_for:((s==null?void 0:s.recommended_for)||[]).join(", "),allowed_account_natures:((s==null?void 0:s.allowed_account_natures)||[]).join(", "),allowed_experience_modes:((s==null?void 0:s.allowed_experience_modes)||[]).join(", "),requires_manual_approval:!!(s!=null&&s.requires_manual_approval)}}function Dt(s){const r=t=>t.split(",").map(d=>d.trim()).filter(Boolean);return{recommended_for:r(s.recommended_for),allowed_account_natures:r(s.allowed_account_natures),allowed_experience_modes:r(s.allowed_experience_modes),requires_manual_approval:s.requires_manual_approval}}function Bt({open:s,onOpenChange:r,mode:t,planId:d,onSaved:x}){var Ie,Re;const[N,v]=n.useState(!1),[D,c]=n.useState(!1),[I,A]=n.useState(null),[f,y]=n.useState(t),[p,o]=n.useState(null),[m,w]=n.useState(We()),[P,g]=n.useState(Ze()),[i,j]=n.useState({}),[$,L]=n.useState([]),q=async a=>{var Z;v(!0),A(null);const O=await ee.getClientPlanFull({plan_id:a,include_inactive_features:!1});if(v(!1),!O.success||!O.data){A(O.message||"Falha ao carregar plano.");return}o(O.data),L(O.data.library_features||[]),j(Rs(O.data.library_features||[],O.data.configured_features||[])),w(We(O.data.plan)),g(Ze((Z=O.data.plan)==null?void 0:Z.plan_audience))},h=async()=>{v(!0),A(null);const a=await ee.getClientPlanFull({plan_key:"prepaid_basic",include_inactive_features:!1});if(v(!1),!a.success||!a.data){A(a.message||"Falha ao carregar biblioteca de features.");return}o(null),L(a.data.library_features||[]),j(Rs(a.data.library_features||[],[])),w(We()),g(Ze())};n.useEffect(()=>{s&&(y(t),t==="create"?h():d!=null&&q(d))},[s,t,d]);const k=f==="edit"||f==="create",B=f!=="create"&&((Ie=p==null?void 0:p.plan)==null?void 0:Ie.id)!=null,u=n.useMemo(()=>{const a=Object.values(i),O={};for(const Z of a){const S=Z.feature_family||"other";(O[S]||(O[S]=[])).push(Z)}return O},[i]),R=n.useMemo(()=>Object.entries(u).filter(([,a])=>a.some(O=>O.is_enabled)).map(([a])=>a),[u]),V=a=>w(O=>({...O,...a})),_=(a,O)=>j(Z=>({...Z,[a]:{...Z[a],...O}})),ne=()=>Object.values(i).map(a=>({feature_key:a.feature_key,is_enabled:!!a.is_enabled,is_included:!!a.is_included,is_addon_available:!!a.is_addon_available,included_quantity:a.included_quantity??null,unit_cost_credits:a.unit_cost_credits??null,unit_cost_money:a.unit_cost_money??null,pricing_mode:a.pricing_mode||"none",cycle_period:a.cycle_period||"none",cycle_quantity:a.cycle_quantity??1,is_renewable:!!a.is_renewable,expires_at_cycle_end:!!a.expires_at_cycle_end,rollover_enabled:!!a.rollover_enabled,rollover_limit:a.rollover_limit??null,validity_period:a.validity_period||"none",validity_quantity:a.validity_quantity??null,expires_after_validity:!!a.expires_after_validity,limit_scope:a.limit_scope||"plan",visibility_to_client:a.visibility_to_client??!0,billing_behavior:a.billing_behavior||"none",settings:a.settings||{},metadata:{...a.metadata||{},source:"mcc_plans_editor"},is_active:a.is_active??!0})),ie=()=>{const a={plan_name:m.plan_name,plan_description:m.plan_description,billing_mode_default:m.billing_mode_default,credit_unit_key:m.credit_unit_key,included_units:Number(m.included_units)||0,plan_audience:Dt(P),is_public:!!m.is_public,is_active:!!m.is_active,metadata:{source:"mcc_plans_editor"}};return f==="create"?a.plan_key=m.plan_key.trim():m.plan_id!=null&&(a.plan_id=m.plan_id),a},ge=()=>{if(!m.plan_name.trim())return"Informe o nome do plano.";if(!m.billing_mode_default)return"Selecione o billing mode.";if(f==="create"){const a=m.plan_key.trim();if(!a)return"Informe a plan_key.";if(!Tt.test(a))return"plan_key deve ser snake_case, sem espaços, começando por letra minúscula."}return null},re=async()=>{const a=ge();if(a){F.error(a);return}const O=ie(),Z=ne();c(!0);const S=await ee.saveClientPlanWithFeatures({plan:O,features:Z,replace_features:!0,dry_run:!0});if(!S.success){c(!1),F.error(S.message||"Validação do plano falhou.");return}const de=await ee.saveClientPlanWithFeatures({plan:O,features:Z,replace_features:!0,dry_run:!1});if(c(!1),!de.success){F.error(de.message||"Falha ao salvar plano.");return}F.success("Plano salvo com sucesso."),x==null||x(),f==="create"?r(!1):(y("view"),d!=null&&await q(d))},fe=e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[m.billing_mode_default&&e.jsx(U,{variant:"outline",children:((Re=Es.find(a=>a.value===m.billing_mode_default))==null?void 0:Re.label)||m.billing_mode_default}),e.jsx(U,{variant:m.is_active?"default":"destructive",className:m.is_active?"bg-green-600 hover:bg-green-700":"",children:m.is_active?"Ativo":"Arquivado"}),e.jsx(U,{variant:m.is_public?"default":"secondary",children:m.is_public?"Público":"Interno"})]}),ae=a=>{const O=a.value_type==="quantity"||a.value_type==="fraction",Z=(()=>{try{return JSON.stringify(a.settings??{},null,2)}catch{return"{}"}})();return e.jsxs("div",{className:"rounded-md border p-3 space-y-3 bg-card",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-sm font-medium",children:a.feature_name||a.feature_key}),a.feature_description&&e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:a.feature_description}),e.jsx("p",{className:"text-[11px] text-muted-foreground font-mono mt-1",children:a.feature_key})]}),!k&&e.jsx(U,{variant:a.is_enabled?"default":"secondary",className:a.is_enabled?"bg-green-600 hover:bg-green-700":"",children:a.is_enabled?"Habilitada":"Desabilitada"})]}),k?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-2",children:[e.jsx(ue,{label:"Habilitada",v:!!a.is_enabled,onChange:S=>_(a.feature_key,{is_enabled:S})}),e.jsx(ue,{label:"Incluída",v:!!a.is_included,onChange:S=>_(a.feature_key,{is_included:S})}),e.jsx(ue,{label:"Como adicional",v:!!a.is_addon_available,onChange:S=>_(a.feature_key,{is_addon_available:S})}),e.jsx(ue,{label:"Visível ao cliente",v:a.visibility_to_client??!0,onChange:S=>_(a.feature_key,{visibility_to_client:S})})]}),(O||a.is_addon_available||a.is_included)&&e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-2",children:[O&&e.jsx(we,{label:`Quantidade incluída${a.unit_label?` (${a.unit_label})`:""}`,value:a.included_quantity,onChange:S=>_(a.feature_key,{included_quantity:S})}),a.is_addon_available&&e.jsxs(e.Fragment,{children:[e.jsx(we,{label:"Custo adicional (créditos)",value:a.unit_cost_credits,onChange:S=>_(a.feature_key,{unit_cost_credits:S})}),e.jsx(we,{label:"Custo adicional (dinheiro)",value:a.unit_cost_money,onChange:S=>_(a.feature_key,{unit_cost_money:S})})]}),e.jsx(Ve,{label:"Pricing mode",value:a.pricing_mode||"none",options:At,onChange:S=>_(a.feature_key,{pricing_mode:S})})]}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-2",children:[e.jsx(Ve,{label:"Ciclo",value:a.cycle_period||"none",options:Pt,onChange:S=>_(a.feature_key,{cycle_period:S})}),e.jsx(we,{label:"Qtd. ciclo",value:a.cycle_quantity,onChange:S=>_(a.feature_key,{cycle_quantity:S??1})}),e.jsx(ue,{label:"Renovável",v:!!a.is_renewable,onChange:S=>_(a.feature_key,{is_renewable:S})}),e.jsx(ue,{label:"Expira no fim do ciclo",v:!!a.expires_at_cycle_end,onChange:S=>_(a.feature_key,{expires_at_cycle_end:S})}),e.jsx(ue,{label:"Rollover",v:!!a.rollover_enabled,onChange:S=>_(a.feature_key,{rollover_enabled:S})}),a.rollover_enabled&&e.jsx(we,{label:"Limite rollover",value:a.rollover_limit,onChange:S=>_(a.feature_key,{rollover_limit:S})})]}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-2",children:[e.jsx(Ve,{label:"Valida
21de",value:a.validity_period||"none",options:Et,onChange:S=>_(a.feature_key,{validity_period:S})}),e.jsx(we,{label:"Qtd. validade",value:a.validity_quantity,onChange:S=>_(a.feature_key,{validity_quantity:S})}),e.jsx(ue,{label:"Expira após validade",v:!!a.expires_after_validity,onChange:S=>_(a.feature_key,{expires_after_validity:S})}),e.jsx(Ve,{label:"Escopo do limite",value:a.limit_scope||"plan",options:It,onChange:S=>_(a.feature_key,{limit_scope:S})})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-2",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{className:"text-xs",children:"Billing behavior"}),e.jsx(M,{value:a.billing_behavior||"",onChange:S=>_(a.feature_key,{billing_behavior:S.target.value})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{className:"text-xs",children:"Settings (JSON)"}),e.jsx(Ne,{rows:2,className:"font-mono text-xs",defaultValue:Z,onBlur:S=>{const de=S.target.value.trim();if(!de){_(a.feature_key,{settings:{}});return}try{_(a.feature_key,{settings:JSON.parse(de)})}catch{F.error(`Settings inválido em ${a.feature_key}.`)}}})]})]})]}):e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-x-3 gap-y-1.5 text-xs",children:[e.jsx(oe,{label:"Família",v:a.feature_family}),e.jsx(oe,{label:"Escopo",v:a.operation_scope}),a.included_quantity!=null&&e.jsx(oe,{label:"Incluído",v:`${a.included_quantity}${a.unit_label?" "+a.unit_label:""}`}),e.jsx(oe,{label:"Pricing",v:a.pricing_mode}),a.cycle_period&&a.cycle_period!=="none"&&e.jsx(oe,{label:"Ciclo",v:`${a.cycle_quantity??1} ${a.cycle_period}`}),a.validity_period&&a.validity_period!=="none"&&e.jsx(oe,{label:"Validade",v:`${a.validity_quantity??"—"} ${a.validity_period}`}),e.jsx(oe,{label:"Renovável",v:a.is_renewable?"Sim":"Não"}),e.jsx(oe,{label:"Incluída",v:a.is_included?"Sim":"Não"}),a.is_addon_available&&e.jsx(oe,{label:"Adicional",v:"Disponível"})]})]},a.feature_key)},ye=(p==null?void 0:p.summary)&&e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-2",children:[["Configuradas",p.summary.total_configured_features],["Habilitadas",p.summary.enabled_features],["Incluídas",p.summary.included_features],["Adicionais",p.summary.addon_available_features],["Renováveis",p.summary.renewable_features],["Relevantes p/ billing",p.summary.billing_relevant_enabled_features]].map(([a,O])=>e.jsxs("div",{className:"rounded-md border p-2.5",children:[e.jsx("p",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:a}),e.jsx("p",{className:"text-base font-semibold",children:O??0})]},String(a)))}),le=Object.values(i).filter(a=>a.is_enabled),Ee=Object.values(i).filter(a=>!a.is_enabled),be=Object.values(i).filter(a=>a.is_addon_available);return e.jsx(pe,{open:s,onOpenChange:r,children:e.jsxs(je,{className:"max-w-5xl max-h-[92vh] overflow-y-auto",children:[e.jsxs(_e,{children:[e.jsxs(ve,{className:"flex items-center gap-2 pr-8",children:[e.jsx(Us,{className:"h-5 w-5"}),f==="create"?e.jsx("span",{children:"Novo plano"}):N?e.jsx(te,{className:"h-6 w-48"}):e.jsx("span",{children:m.plan_name||"Plano"}),!N&&f!=="create"&&fe]}),!N&&f!=="create"&&m.plan_key&&e.jsx("p",{className:"text-xs text-muted-foreground font-mono",children:m.plan_key})]}),I&&e.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-lg border border-destructive/40 bg-destructive/5 text-destructive text-sm",children:[e.jsx(Pe,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{children:I})]}),N&&e.jsxs("div",{className:"space-y-3",children:[e.jsx(te,{className:"h-24 w-full"}),e.jsx(te,{className:"h-24 w-full"})]}),!N&&!I&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[f==="view"&&e.jsxs(b,{size:"sm",variant:"outline",onClick:()=>y("edit"),children:[e.jsx(De,{className:"h-3.5 w-3.5 mr-1.5"})," Editar"]}),f==="edit"&&e.jsxs(b,{size:"sm",variant:"ghost",onClick:()=>{y("view"),d&&q(d)},children:[e.jsx(Vs,{className:"h-3.5 w-3.5 mr-1.5"})," Cancelar edição"]})]}),k&&e.jsx(b,{onClick:re,disabled:D,children:D?"Salvando...":"Salvar"})]}),e.jsxs(qs,{defaultValue:"basics",className:"w-full",children:[e.jsxs($s,{children:[e.jsx(me,{value:"basics",children:"Dados básicos"}),e.jsx(me,{value:"features",children:"Features"}),!k&&e.jsx(me,{value:"summary",children:"Resumo"})]}
21),e.jsxs(xe,{value:"basics",className:"space-y-4 mt-4",children:[e.jsx("div",{className:"rounded-lg border p-4 space-y-3",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Nome do plano *"}),k?e.jsx(M,{value:m.plan_name,onChange:a=>V({plan_name:a.target.value})}):e.jsx("p",{className:"text-sm",children:m.plan_name})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Chave (plan_key) *"}),f==="create"?e.jsx(M,{placeholder:"prepaid_basic",value:m.plan_key,onChange:a=>V({plan_key:a.target.value})}):e.jsxs("p",{className:"text-sm font-mono text-muted-foreground",children:[m.plan_key," ",B&&e.jsx("span",{className:"text-[10px] uppercase ml-2",children:"imutável"})]})]}),e.jsxs("div",{className:"space-y-1.5 md:col-span-2",children:[e.jsx(C,{children:"Descrição"}),k?e.jsx(Ne,{rows:2,value:m.plan_description||"",onChange:a=>V({plan_description:a.target.value})}):e.jsx("p",{className:"text-sm",children:m.plan_description||"—"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Billing mode *"}),k?e.jsxs(Y,{value:m.billing_mode_default||"prepaid",onValueChange:a=>V({billing_mode_default:a}),children:[e.jsx(X,{children:e.jsx(Q,{})}),e.jsx(W,{children:Es.map(a=>e.jsx(T,{value:a.value,children:a.label},a.value))})]}):e.jsx("p",{className:"text-sm",children:m.billing_mode_default})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Credit unit key"}),k?e.jsx(M,{value:m.credit_unit_key||"",onChange:a=>V({credit_unit_key:a.target.value})}):e.jsx("p",{className:"text-sm",children:m.credit_unit_key||"—"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Unidades incluídas"}),k?e.jsx(M,{type:"number",min:0,value:m.included_units??0,onChange:a=>V({included_units:a.target.value===""?0:Number(a.target.value)})}):e.jsx("p",{className:"text-sm",children:m.included_units??0})]}),e.jsxs("div",{className:"flex items-center justify-between rounded-md border px-3 py-2",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"Público"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Visível para contratação direta."})]}),e.jsx(he,{disabled:!k,checked:!!m.is_public,onCheckedChange:a=>V({is_public:a})})]}),e.jsxs("div",{className:"flex items-center justify-between rounded-md border px-3 py-2",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"Ativo"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Desative para arquivar via salvamento."})]}),e.jsx(he,{disabled:!k,checked:!!m.is_active,onCheckedChange:a=>V({is_active:a})})]})]})}),e.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[e.jsx("p",{className:"text-sm font-semibold",children:"Audiência do plano"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[e.jsxs("div",{className:"space-y-1.5 md:col-span-2",children:[e.jsx(C,{className:"text-xs",children:"Recomendado para (separar por vírgula)"}),k?e.jsx(M,{value:P.recommended_for,onChange:a=>g(O=>({...O,recommended_for:a.target.value}))}):e.jsx("p",{className:"text-sm",children:P.recommended_for||"—"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{className:"text-xs",children:"Naturezas permitidas"}),k?e.jsx(M,{value:P.allowed_account_natures,onChange:a=>g(O=>({...O,allowed_account_natures:a.target.value}))}):e.jsx("p",{className:"text-sm",children:P.allowed_account_natures||"—"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{className:"text-xs",children:"Modos de experiência permitidos"}),k?e.jsx(M,{value:P.allowed_experience_modes,onChange:a=>g(O=>({...O,allowed_experience_modes:a.target.value}))}):e.jsx("p",{className:"text-sm",children:P.allowed_experience_modes||"—"})]}),e.jsxs("div",{className:"flex items-center justify-between rounded-md border px-3 py-2 md:col-span-2",children:[e.jsx("div",{children:e.jsx("p",{className:"text-sm font-medium",children:"Requer aprovação manual"})}),e.jsx(he,{disabled:!k,checked:P.requires_manual_approval,onCheckedChange:a=>g(O=>({...O,requires_manual_approval:a}))})]})]})]})]}
21),e.jsx(xe,{value:"features",className:"space-y-4 mt-4",children:Object.keys(u).length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"Biblioteca de features vazia."}):e.jsx(qa,{type:"multiple",defaultValue:k?Object.keys(u):R,className:"w-full",children:Object.entries(u).map(([a,O])=>{const Z=O.filter(S=>S.is_enabled).length;return e.jsxs($a,{value:a,children:[e.jsx(Va,{className:"hover:no-underline",children:e.jsxs("div",{className:"flex items-center gap-2 text-left",children:[e.jsx("span",{className:"font-medium",children:Rt[a]||a}),e.jsxs(U,{variant:"outline",className:"text-[10px]",children:[Z,"/",O.length]})]})}),e.jsx(Ga,{children:e.jsx("div",{className:"space-y-2",children:O.map(ae)})})]},a)})})}),!k&&e.jsxs(xe,{value:"summary",className:"space-y-4 mt-4",children:[ye,e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"text-sm font-semibold flex items-center gap-1.5",children:[e.jsx(Ca,{className:"h-4 w-4"})," Features habilitadas (",le.length,")"]}),le.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"Nenhuma feature habilitada."}):e.jsx("div",{className:"space-y-2",children:le.map(ae)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"text-sm font-semibold",children:["Adicionais disponíveis (",be.length,")"]}),be.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"Nenhum adicional disponível neste plano."}):e.jsx("div",{className:"space-y-2",children:be.map(ae)})]}),e.jsxs("details",{className:"rounded-md border p-3",children:[e.jsxs("summary",{className:"text-sm cursor-pointer text-muted-foreground",children:["Features desabilitadas (",Ee.length,")"]}),e.jsx("div",{className:"space-y-2 mt-3",children:Ee.map(ae)})]})]})]}),k&&e.jsxs("div",{className:"flex items-start gap-2 p-3 rounded-lg border bg-muted/40 text-xs text-muted-foreground",children:[e.jsx(zs,{className:"h-4 w-4 shrink-0 mt-0.5"}),e.jsx("span",{children:"Antes de gravar, executamos um dry-run para validar. Se houver inconsistência, mostraremos a mensagem retornada pela Edge."})]})]})]})})}function ue({label:s,v:r,onChange:t}){return e.jsxs("div",{className:"flex items-center justify-between rounded-md border px-2.5 py-1.5",children:[e.jsx("span",{className:"text-xs",children:s}),e.jsx(he,{checked:r,onCheckedChange:t})]})}function we({label:s,value:r,onChange:t}){return e.jsxs("div",{className:"space-y-1",children:[e.jsx(C,{className:"text-xs",children:s}),e.jsx(M,{type:"number",value:r??"",onChange:d=>t(d.target.value===""?null:Number(d.target.value))})]})}function Ve({label:s,value:r,options:t,onChange:d}){return e.jsxs("div",{className:"space-y-1",children:[e.jsx(C,{className:"text-xs",children:s}),e.jsxs(Y,{value:r,onValueChange:d,children:[e.jsx(X,{children:e.jsx(Q,{})}),e.jsx(W,{children:t.map(x=>e.jsx(T,{value:x,children:x},x))})]})]})}function oe({label:s,v:r}){return e.jsxs("div",{children:[e.jsxs("span",{className:"text-muted-foreground",children:[s,": "]}),e.jsx("span",{className:"text-foreground",children:r==null||r===""?"—":String(r)})]})}function Ot({plan:s,onClose:r,onArchived:t}){const[d,x]=n.useState(""),[N,v]=n.useState(!1);n.useEffect(()=>{s&&x("")},[s]);const D=async()=>{if(!s)return;const c=d.trim();if(!c){F.error("Informe o motivo do arquivamento.");return}v(!0);const I=await ee.archiveClientPlan({plan_id:s.id,reason:c,archived_by:null});if(v(!1),!I.success){F.error(I.message||"Falha ao arquivar plano.");return}F.success("Plano arquivado com sucesso."),t()};return e.jsx(pe,{open:!!s,onOpenChange:c=>{c||r()},children:e.jsxs(je,{className:"max-w-md",children:[e.jsxs(_e,{children:[e.jsx(ve,{children:"Arquivar plano"}),e.jsx(Le,{children:"Esta ação não exclui o plano — ele será marcado como inativo e poderá ser consultado depois."})]}),s&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"rounded-md border p-3 bg-muted/30",children:[e.jsx("p",{className:"text-sm font-medium",children:s.plan_name}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s.plan_key})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(C,{children:"Motivo *"}),e.jsx(Ne,{rows:3,value:d,onChange:c=>x(c.target.value),placeholder:"Por que esse plano está sendo arquivado?"})]})]}),e.jsxs(Ye,{children:[e.jsx(b,{variant:"outline",onClick:r,disabled:N,children:"Cancelar"}),e.jsx(b,{onClick:D,disabled:N||!d.trim(),children:N?"Arquivando...":"Arquivar"})]})]})})}const es={total_plans:0,active_plans:0,public_plans:0,inactive_plans:0},Ft=s=>
21{switch(s){case"prepaid":return"Pré-pago";case"postpaid":return"Pós-pago";case"hybrid":return"Híbrido";case"free":return"Grátis";default:return s||"—"}},zt=s=>{if(!s)return"—";const r=new Date(s);return Number.isNaN(r.getTime())?s:r.toLocaleString("pt-BR")};function Lt(){const[s,r]=n.useState(!1),[t,d]=n.useState(null),[x,N]=n.useState([]),[v,D]=n.useState(es),[c,I]=n.useState(""),[A,f]=n.useState(null),[y,p]=n.useState(!0),[o,m]=n.useState(!1),[w,P]=n.useState("view"),[g,i]=n.useState(null),[j,$]=n.useState(null),L=n.useCallback(async()=>{r(!0),d(null);const R=await ee.listClientPlans({include_inactive:y,search:A});if(!R.success||!R.data){d(R.message||"Falha ao carregar planos."),N([]),D(es),r(!1);return}N(R.data.items||[]),D(R.data.summary||es),r(!1)},[y,A]);n.useEffect(()=>{L()},[L]);const q=()=>f(c.trim()?c.trim():null),h=()=>{I(""),f(null),p(!0)},k=R=>{i(R.id),P("view"),m(!0)},B=()=>{i(null),P("create"),m(!0)},u=n.useMemo(()=>[{label:"Total de planos",value:v.total_plans},{label:"Ativos",value:v.active_plans},{label:"Públicos",value:v.public_plans},{label:"Arquivados/Inativos",value:v.inactive_plans}],[v]);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("h2",{className:"text-xl font-semibold tracking-tight flex items-center gap-2",children:[e.jsx(Us,{className:"h-5 w-5 text-muted-foreground"}),"Planos"]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Gestão de planos, features, limites, ciclos e adicionais da plataforma."})]}),e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:u.map(R=>e.jsx(Ge,{children:e.jsxs(Ue,{className:"p-4",children:[e.jsx("p",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:R.label}),e.jsx("p",{className:"text-2xl font-semibold mt-1",children:s?"—":R.value??0})]})},R.label))}),e.jsx(Ge,{children:e.jsxs(Ue,{className:"p-4 flex flex-wrap items-center gap-3",children:[e.jsxs("div",{className:"relative flex-1 min-w-[260px]",children:[e.jsx(Be,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(M,{placeholder:"Buscar por nome, chave ou descrição...",className:"pl-9",value:c,onChange:R=>I(R.target.value),onKeyDown:R=>{R.key==="Enter"&&q()}})]}),e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-md border",children:[e.jsx(he,{checked:y,onCheckedChange:p,id:"inc-inactive"}),e.jsx("label",{htmlFor:"inc-inactive",className:"text-sm cursor-pointer",children:"Incluir inativos"})]}),e.jsx(b,{onClick:q,variant:"default",children:"Aplicar"}),e.jsx(b,{onClick:h,variant:"outline",children:"Limpar"}),e.jsxs(b,{onClick:L,variant:"outline",children:[e.jsx(Me,{className:"h-4 w-4 mr-1.5"})," Atualizar"]}),e.jsx("div",{className:"flex-1"}),e.jsxs(b,{onClick:B,children:[e.jsx(Ke,{className:"h-4 w-4 mr-1.5"})," Novo Plano"]})]})}),t&&e.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-lg border border-destructive/40 bg-destructive/5 text-destructive text-sm",children:[e.jsx(Pe,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{children:t})]}),e.jsx(Ge,{children:e.jsx(Ue,{className:"p-0",children:e.jsxs(Oe,{children:[e.jsx(Fe,{children:e.jsxs(K,{children:[e.jsx(z,{children:"Plano"}),e.jsx(z,{children:"Billing"}),e.jsx(z,{children:"Unidade base"}),e.jsx(z,{children:"Público"}),e.jsx(z,{children:"Status"}),e.jsx(z,{children:"Atualizado em"}),e.jsx(z,{className:"text-right",children:"Ações"})]})}),e.jsxs(ze,{children:[s&&Array.from({length:4}).map((R,V)=>e.jsx(K,{children:Array.from({length:7}).map((_,ne)=>e.jsx(E,{children:e.jsx(te,{className:"h-5 w-full"})},ne))},`s${V}`)),!s&&x.length===0&&e.jsx(K,{children:e.jsx(E,{colSpan:7,className:"text-center text-muted-foreground py-10",children:"Nenhum plano encontrado."})}),!s&&x.map(R=>e.jsxs(K,{children:[e.jsxs(E,{children:[e.jsx("div",{className:"font-medium",children:R.plan_name}),e.jsx("div",{className:"text-xs text-muted-foreground",children:R.plan_key})]}),e.jsx(E,{children:e.jsx(U,{variant:"outline",children:Ft(R.billing_mode_default)})}),e.jsx(E,{className:"text-sm",children:R.credit_unit_key||"—"}),e.jsx(E,{children:e.jsx(U,{variant:R.is_public?"default":"secondary",children:R.is_public?"Público":"Interno"})}),e.jsx(E,{children:R.is_active?e.jsx(U,{className:"bg-green-600 hover:bg-green-700",children:"Ativo"}):e.jsx(U,{variant:"destructive",children:"Arquivado"})}),e.jsx(E,{className:"text-sm text-muted-foreground",children:zt(R.updated_at)}),e.jsx(E,{className:"text-right",children:e.jsxs("div",{className:"flex items-center justify-end gap-1",children:[e.jsxs(b,{size:"sm",variant:"ghost",onClick:()=>k(R),children:[e.jsx(Gs,{className:"h-4 w-4 mr-1"})," Ver"]}),e.jsxs(b,{size:"sm",variant:"ghost",className:"text-destructive hover:text-destructive",disabled:!R.is_active,onClick:()=>$(R),children:[e.jsx(Ua,{className:"h-4 w-4 mr-1"})," Arquivar"]})]})})]},R.id))]})]})})}),e.jsx(Bt,{open:o,onOpenChange:m,mode:w,planId:g,onSaved:L}),e.jsx(Ot,{plan:j,onClose:()=>$(null),onArchived:()=>{$(null),L()}})]})}const Se=20,Ts=s=>{if(!s)return"—";const r=new Date(s);return Number.isNaN(r.getTime())?"—":r.toLocaleDateString("pt-BR")+" "+r.toLocaleTimeString("pt-BR",{hour:"2-digit",minute:"2-digit"})},Mt=s=>s==="processado"?e.jsx(U,{className:"bg-green-600 hover:bg-green-700",children:"Processado"}):e.jsx(U,{variant:"secondary",children:"Novo"});function qt(){const[s,r]=n.useState(""),[t,d]=n.useState(""),[x,N]=n.useState([]),[v,D]=n.useState(0),[c,I]=n.useState(0),[A,f]=n.useState(!0),[y,p]=n.useState(null),[o,m]=n.useState(null),w=n.useCallback(async(h,k)=>{var u;f(!0),p(null);const B=await ee.listProspects({limit:Se,offset:k,search:h.trim()||null});if(!B.success||!B.data){N([]),D(0),p(B.message||"Falha ao listar prospects."),f(!1);return}N(B.data.items||[]),D(B.data.total??((u=B.data.items)==null?void 0:u.length)??0),f(!1)},[]);n.useEffect(()=>{w(t,c)},[w,t,c]);const P=()=>{I(0),d(s)},g=()=>{r(""),d(""),I(0)},i=async(h,k)=>{if(h.id==null)return;m(h.id);const B=await ee.setProspectStatus({id:h.id,status:k});if(m(null),!B.success){F.error(B.message||"Não foi possível atualizar o status do prospect.");return}
21F.success(k==="processado"?"Prospect marcado como processado.":"Prospect reaberto como novo."),w(t,c)},j=c+Se<v,$=c>0,L=Math.floor(c/Se)+1,q=Math.max(1,Math.ceil(v/Se));return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs("div",{className:"relative flex-1 min-w-[260px]",children:[e.jsx(Be,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(M,{placeholder:"Buscar por nome, empresa, email, telefone, cidade ou CNPJ...",className:"pl-9",value:s,onChange:h=>r(h.target.value),onKeyDown:h=>{h.key==="Enter"&&P()}})]}),e.jsx(b,{onClick:P,children:"Aplicar"}),e.jsx(b,{variant:"outline",onClick:g,children:"Limpar"}),e.jsxs(b,{variant:"outline",onClick:()=>w(t,c),disabled:A,children:[e.jsx(Me,{className:`h-4 w-4 mr-1 ${A?"animate-spin":""}`}),"Atualizar"]})]}),y&&e.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-lg border border-destructive/40 bg-destructive/5 text-destructive text-sm",children:[e.jsx(Pe,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{children:y})]}),e.jsx("div",{className:"border rounded-lg",children:e.jsxs(Oe,{children:[e.jsx(Fe,{children:e.jsxs(K,{children:[e.jsx(z,{children:"Contato"}),e.jsx(z,{children:"Empresa"}),e.jsx(z,{children:"Cidade/UF"}),e.jsx(z,{children:"Recebido em"}),e.jsx(z,{children:"Status"}),e.jsx(z,{children:"Processado em"}),e.jsx(z,{className:"text-right",children:"Ações"})]})}),e.jsx(ze,{children:A?Array.from({length:4}).map((h,k)=>e.jsx(K,{children:Array.from({length:7}).map((B,u)=>e.jsx(E,{children:e.jsx(te,{className:"h-4 w-full"})},u))},`sk-${k}`)):x.length===0?e.jsx(K,{children:e.jsx(E,{colSpan:7,className:"text-center py-10 text-muted-foreground",children:"Nenhum prospect encontrado."})}):x.map(h=>e.jsxs(K,{children:[e.jsxs(E,{children:[e.jsx("div",{className:"font-medium",children:h.nome_pessoa||"—"}),e.jsx("div",{className:"text-xs text-muted-foreground",children:[h.email,h.telefone].filter(Boolean).join(" · ")||"—"})]}),e.jsxs(E,{children:[e.jsx("div",{className:"text-sm",children:h.nome_empresa||"—"}),h.cnpj&&e.jsx("div",{className:"text-xs text-muted-foreground",children:h.cnpj})]}),e.jsx(E,{className:"text-sm",children:[h.cidade,h.estado].filter(Boolean).join(" / ")||"—"}),e.jsx(E,{className:"text-xs text-muted-foreground",children:Ts(h.created_at)}),e.jsx(E,{children:Mt(h.status)}),e.jsx(E,{className:"text-xs text-muted-foreground",children:Ts(h.processed_at)}),e.jsx(E,{className:"text-right",children:h.status==="processado"?e.jsxs(b,{variant:"outline",size:"sm",disabled:o===h.id,onClick:()=>i(h,"novo"),children:[e.jsx(Hs,{className:"h-4 w-4 mr-1"}),"Reabrir"]}):e.jsxs(b,{variant:"outline",size:"sm",disabled:o===h.id,onClick:()=>i(h,"processado"),children:[e.jsx(Ls,{className:"h-4 w-4 mr-1"}),"Processar"]})})]},h.id))})]})}),e.jsxs("div",{className:"flex items-center justify-between text-sm text-muted-foreground",children:[e.jsxs("span",{children:[v," prospect",v===1?"":"s"," no total"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(b,{variant:"outline",size:"sm",disabled:!$||A,onClick:()=>I(Math.max(0,c-Se)),children:[e.jsx(Js,{className:"h-4 w-4 mr-1"}),"Anterior"]}),e.jsxs("span",{children:["Página ",L," de ",q]}),e.jsxs(b,{variant:"outline",size:"sm",disabled:!j||A,onClick:()=>I(c+Se),children:["Próxima",e.jsx(Ms,{className:"h-4 w-4 ml-1"})]})]})]})]})}const ke=20,$t={investidor:"Investidores",empresa_rh:"Empresas de RH",setor_publico:"Setor Público",api:"APIs",imprensa:"Imprensa",contato_geral:"Contato Geral"},ss=s=>{if(!s)return"—";const r=new Date(s);return Number.isNaN(r.getTime())?"—":r.toLocaleDateString("pt-BR")+" "+r.toLocaleTimeString("pt-BR",{hour:"2-digit",minute:"2-digit"})},Vt=s=>s?e.jsx(U,{variant:"outline",children:$t[s]||s}):e.jsx("span",{className:"text-muted-foreground",children:"—"}),Gt=s=>s==="processado"?e.jsx(U,{className:"bg-green-600 hover:bg-green-700",children:"Processado"}):e.jsx(U,{variant:"secondary",children:"Novo"});function Ut(){const[s,r]=n.useState(""),[t,d]=n.useState(""),[x,N]=n.useState("all"),[v,D]=n.useState("all"),[c,I]=n.useState([]),[A,f]=n.useState(0),[y,p]=n.useState(0),[o,m]=n.useState(!0),[w,P]=n.useState(null),[g,i]=n.useState(null),[j,$]=n.useState(null),L=n.useCallback(async(_,ne,ie,ge)=>{var fe;m(!0),P(null);const re=await ee.listContacts({limit:ke,offset:ge,search:_.trim()||null,origem:ne,status:ie});if(!re.success||!re.data){I([]),f(0),P(re.message||"Falha ao listar contatos."),m(!1);return}I(re.data.items||[]),f(re.data.total??((fe=re.data.items)==null?void 0:fe.length)??0),m(!1)},[]);n.useEffect(()=>{L(t,x,v,y)},[L,t,x,v,y]);const q=()=>{p(0),d(s)},h=()=>{r(""),d(""),N("all"),D("all"),p(0)},k=async(_,ne)=>{if(_.id==null)return;i(_.id);const ie=await ee.setContactStatus({id:_.id,status:ne});if(i(null),!ie.success){F.error(ie.message||"Não foi possível atualizar o status do contato.");return}F.success(ne==="processado"?"Contato marcado como processado.":"Contato reaberto como novo."),L(t,x,v,y)},B=y+ke<A,u=y>0,R=Math.floor(y/ke)+1,V=Math.max(1,Math.ceil(A/ke));return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs("div",{className:"relative flex-1 min-w-[260px]",children:[e.jsx(Be,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(M,{placeholder:"Buscar por nome, organização, email ou telefone...",className:"pl-9",value:s,onChange:_=>r(_.target.value),onKeyDown:_=>{_.key==="Enter"&&q()}})]}),e.jsxs(Y,{value:x,onValueChange:_=>{N(_),p(0)},children:[e.jsx(X,{className:"w-[180px]",children:e.jsx(Q,{placeholder:"Origem"})}),e.jsxs(W,{children:[e.jsx(T,{value:"all",children:"Todas as origens"}),e.jsx(T,{value:"investidor",children:"Investidores"}),e.jsx(T,{value:"empresa_rh",children:"Empresas de RH"}),e.jsx(T,{value:"setor_publico",children:"Setor Público"}),e.jsx(T,{value:"api",children:"APIs"}),e.jsx(T,{value:"imprensa",children:"Imprensa"}),e.jsx(T,{value:"contato_geral",children:"Contato Geral"})]})]}),e.jsxs(Y,{value:v,onValueChange:_=>{D(_),p(0)},children:[e.jsx(X,{className:"w-[160px]",children:e.jsx(Q,{placeholder:"Status"})}),e.jsxs(W,{children:[e.jsx(T,{value:"all",children:"Todos os status"}),e.jsx(T,{value:"novo",children:"Novo"}),e.jsx(T,{value:"processado",children:"Processado"})]})]}),e.jsx(b,{onClick:q,children:"Aplicar"}),e.jsx(b,{variant:"outline",onClick:h,children:"Limpar"}),e.jsxs(b,{variant:"outline",onClick:()=>L(t,x,v,y),disabled:o,children:[e.jsx(Me,{className:`h-4 w-4 mr-1 ${o?"animate-spin":""}`}),"Atualizar"]})]}),w&&e.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-lg border border-destructive/40 bg-destructive/5 text-destructive text-sm",children:[e.jsx(Pe,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{children:w})]}),e.jsx("div",{className:"border rounded-lg",children:e.jsxs(Oe,{children:[e.jsx(Fe,{children:e.jsxs(K,{children:[e.jsx(z,{children:"Origem"}),e.jsx(z,{children:"Pessoa"}),e.jsx(z,{children:"Organização"}),e.jsx(z,{children:"Telefone"}),e.jsx(z,{children:"Recebido em"}),e.jsx(z,{children:"Status"}),e.jsx(z,{children:"Processado em"}),e.jsx(z,{className:"text-right",children:"Ações"})]})}),e.jsx(ze,{children:o?Array.from({length:4}).map((_,ne)=>e.jsx(K,{children:Array.from({length:8}).map((ie,ge)=>e.jsx(E,{children:e.jsx(te,{className:"h-4 w-full"})},ge))},`sk-${ne}`)):c.length===0?e.jsx(K,{children:e.jsx(E,{colSpan:8,className:"text-center py-10 text-muted-foreground",children:"Nenhum contato encontrado."})}):c.map(_=>e.jsxs(K,{children:[e.jsx(E,{children:Vt(_.origem)}),e.jsxs(E,{children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium",children:_.nome_pessoa||"—"}),_.linkedin&&e.jsx("a",{href:_.linkedin.startsWith("http")?_.linkedin:`https://${_.linkedin}`,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:text-foreground transition-colors","aria-label":"LinkedIn",children:e.jsx(Ja,{className:"h-3.5 w-3.5"})})]}),e.jsx("div",{className:"text-xs text-muted-foreground",children:_.email||"—"})]}),e.jsx(E,{className:"text-sm",children:_.nome_organizacao||"—"}),e.jsx(E,{children:e.jsxs("div",{className:"flex items-center gap-1.5 text-sm",children:[e.jsx("span",{children:_.telefone||"—"}),_.telefone_whatsapp&&e.jsx(wa,{className:"h-3.5 w-3.5 text-green-600","aria-label":"WhatsApp"})]})}),e.jsx(E,{className:"text-xs text-muted-foreground",children:ss(_.created_at)}),e.jsx(E,{children:Gt(_.status)}),e.jsx(E,{className:"text-xs text-muted-foreground",children:ss(_.processed_at)}),e.jsx(E,{className:"text-right",children:e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[_.mensagem&&e.jsxs(b,{variant:"ghost",size:"sm",onClick:()=>$(_),children:[e.jsx(Ka,{className:"h-4 w-4 mr-1"}),"Mensagem"]}),_.status==="processado"?e.jsxs(b,{variant:"outline",size:"sm",disabled:g===_.id,onClick:()=>k(_,"novo"),children:[e.jsx(Hs,{className:"h-4 w-4 mr-1"}),"Reabrir"]}):e.jsxs(b,{variant:"outline",size:"sm",disabled:g===_.id,onClick:()=>k(_,"processado"),children:[e.jsx(Ls,{className:"h-4 w-4 mr-1"}),"Processar"]})]})})]},_.id))})]})}),e.jsxs("div",{className:"flex items-center justify-between text-sm text-muted-foreground",children:[e.jsxs("span",{children:[A," contato",A===1?"":"s"," no total"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(b,{variant:"outline",size:"sm",disabled:!u||o,onClick:()=>p(Math.max(0,y-ke)),children:[e.jsx(Js,{className:"h-4 w-4 mr-1"}),"Anterior"]}),e.jsxs("span",{children:["Página ",R," de ",V]}),e.jsxs(b,{variant:"outline",size:"sm",disabled:!B||o,onClick:()=>p(y+ke),children:["Próxima",e.jsx(Ms,{className:"h-4 w-4 ml-1"})]})]})]}),e.jsx(pe,{open:!!j,onOpenChange:_=>{_||$(null)},children:e.jsxs(je,{className:"max-w-lg",children:[e.jsxs(_e,{children:[e.jsxs(ve,{children:["Mensagem de ",(j==null?void 0:j.nome_pessoa)||"Contato"]}),e.jsxs(Le,{children:[(j==null?void 0:j.nome_organizacao)||"—",j!=null&&j.created_at?` · ${ss(j.created_at)}`:""]})]}),e.jsx("p",{className:"text-sm whitespace-pre-wrap break-words max-h-[60vh] overflow-y-auto",children:j==null?void 0:j.mensagem})]})})]})}function Nn(){const[s,r]=n.useState("companies");return e.jsxs("div",{className:"space-y-6 p-6",children:[e.jsx(Xa,{}),e.jsxs(qs,{value:s,onValueChange:r,className:"w-full",children:[e.jsxs($s,{className:"grid w-full grid-cols-5 max-w-2xl",children:[e.jsx(me,{value:"companies",children:"Companies"}),e.jsx(me,{value:"plans",children:"Plans"}),e.jsx(me,{value:"benefits",children:"Benefits Library"}),e.jsx(me,{value:"prospects",children:"Prospects"}),e.jsx(me,{value:"contacts",children:"Contacts"})]}),e.jsx(xe,{value:"companies",className:"mt-6",children:e.jsx(bt,{})}),e.jsx(xe,{value:"plans",className:"mt-6",children:e.jsx(Lt,{})}),e.jsx(xe,{value:"benefits",className:"mt-6",children:e.jsx(kt,{})}),e.jsx(xe,{value:"prospects",className:"mt-6",children:e.jsx(qt,{})}),e.jsx(xe,{value:"contacts",className:"mt-6",children:e.jsx(Ut,{})})]})]})}export{Nn as ClientsHub};

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.