PageSourceSearch

https://giftlove-novo.lovable.app/assets/ServiceDisputes-C5wRNADW.js

js giftlove-novo.lovable.app collected 2026-10-03 03:29:39 UTC 4,629 bytes, 1 lines download raw bytes

1import{j as e}from"./vendor-motion-D_eWtC2i.js";import{r as f}from"./vendor-react-C5-rmG_I.js";import{T as v,l as g,a4 as y,m as c,F as b,I as N,J as C,K as _,B as m,h as w,p as u,O as p}from"./index-BB35H7Wo.js";import{B as D}from"./badge-Bh_ckV5a.js";import{S as A}from"./skeleton-BMFUsGhM.js";import{A as M,a as E,b as P,c as q,d as S,e as O,f as k,g as B}from"./alert-dialog-v1-vKzmf.js";import{P as F}from"./PageHeader-B-h5e2bL.js";import{f as x}from"./format-CXLuF5My.js";import H from"./shield-alert-B59zc2rE.js";import{f as l}from"./format-CXUDrD0n.js";import"./vendor-supabase-CfDyWxaF.js";import"./vendor-charts-BzSnLuq2.js";import"./en-US-BMDxpvZG.js";function X(){const h=v(),[a,o]=f.useState(null),{data:i,isLoading:j}=g({queryKey:["admin-service-disputes"],queryFn:async()=>{const{data:s,error:r}=await u.from("partner_service_orders").select("*, partners(name, email, phone)").eq("status","disputed").order("disputed_at",{ascending:!0});if(r)throw r;return s??[]}}),n=y({mutationFn:async({orderId:s,resolution:r})=>{const{data:t,error:d}=await u.functions.invoke("partner-service-flow",{body:{action:"admin-resolve",orderId:s,resolution:r}});if(d)throw d;if(!(t!=null&&t.success))throw new Error((t==null?void 0:t.error)||"Falha ao resolver");return t},onSuccess:(s,r)=>{h.invalidateQueries({queryKey:["admin-service-disputes"]}),p.success(r.resolution==="release"?"Contestação resolvida — valor liberado ao parceiro.":"Contestação resolvida — reembolso ao cliente.")},onError:s=>p.error(s.message??"Erro ao resolver a contestação")});return e.jsxs("div",{className:"space-y-6",children:[e.jsx(F,{title:"Contestações de Serviços",description:"Ordens de serviço contestadas pelo cliente. O valor está congelado até a resolução."}),j?e.jsx("div",{className:"grid gap-3",children:[1,2].map(s=>e.jsx(A,{className:"h-32"},s))}):i!=null&&i.length?e.jsx("div",{className:"grid gap-4",children:i.map(s=>{var r;return e.jsxs(c,{children:[e.jsx(b,{className:"pb-2",children:e.jsxs("div",{className:"flex items-start justify-between gap-4 flex-wrap",children:[e.jsxs("div",{children:[e.jsxs(N,{className:"text-base flex items-center gap-2",children:[s.service_name,e.jsx(D,{variant:"destructive",children:"Em contestação"})]}),e.jsxs(C,{children:["Parceiro: ",((r=s.partners)==null?void 0:r.name)??"—"," · Cliente: ",s.buyer_name,s.buyer_email?` (${s.buyer_email})`:""]})]}),e.jsxs("div",{className:"text-right",children:[e.jsx("p",{className:"font-bold text-lg",children:x(Number(s.amount))}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["líquido do parceiro ",x(Number(s.net_amount))]})]})]})}),e.jsxs(_,{className:"space-y-3",children:[e.jsxs("div",{className:"rounded-md bg-muted p-3 text-sm",children:[e.jsxs("p",{className:"font-medium mb-1",children:["Motivo do cliente (",s.disputed_at?l(new Date(s.disputed_at),"dd/MM/yyyy HH:mm"):"—","):"]}),e.jsx("p",{className:"text-muted-foreground",children:s.dispute_reason||"—"})]}),e.jsxs("div",{className:"flex flex-wrap gap-2 text-xs text-muted-foreground",children:[s.service_date&&e.jsxs("span",{children:["Data do serviço: ",l(new Date(`${s.service_date}T12:00:00`),"dd/MM/yyyy")]}),e.jsxs("span",{children:["Pagamento: ",s.payment_method==="balance"?"saldo":s.payment_method]}),e.jsxs("span",{children:["Contratado em ",l(new Date(s.created_at),"dd/MM/yyyy")]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(m,{size:"sm",disabled:n.isPending,onClick:()=>o({orderId:s.id,resolution:"release"}),children:"Liberar ao parceiro"}),e.jsx(m,{size:"sm",variant:"destructive",disabled:n.isPending,onClick:()=>o({orderId:s.id,resolution:"refund"}),children:"Reembolsar cliente"}),n.isPending&&e.jsx(w,{className:"h-4 w-4 animate-spin mt-2"})]})]})]},s.id)})}):e.jsxs(c,{className:"p-10 text-center",children:[e.jsx(H,{className:"h-10 w-10 mx-auto text-muted-foreground mb-3"}),e.jsx("h3",{className:"font-semibold",children:"Nenhuma contestação pendente 🎉"})]}),e.jsx(M,{open:!!a,onOpenChange:s=>!s&&o(null),children:e.jsxs(E,{children:[e.jsxs(P,{children:[e.jsx(q,{children:(a==null?void 0:a.resolution)==="release"?"Liberar o valor ao parceiro?":"Reembolsar o cliente?"}),e.jsx(S,{children:(a==null?void 0:a.resolution)==="release"?"O líquido será creditado no saldo do parceiro imediatamente. Esta ação não pode ser desfeita.":"O valor será devolvido ao cliente (reembolso no Mercado Pago ou estorno de saldo). Esta ação não pode ser desfeita."})]}),e.jsxs(O,{children:[e.jsx(k,{children:"Cancelar"}),e.jsx(B,{onClick:()=>{a&&n.mutate(a),o(null)},children:"Confirmar"})]})]})})]})}export{X as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.