1import{r as u,s as Q,b as v,t as f,j as e,L as N}from"./vendor-react-core-_0sZDOLQ.js";import{c as _,B as i,b as o}from"./index-j07E1qHv.js";import{I as n}from"./input-rti45mgP.js";import{C,a as w}from"./card-DHmBnTdH.js";import{D as z,a as K,b as P,c as B,d as O}from"./dialog-C9ty4md6.js";import{B as D}from"./badge-BXqwvh8U.js";import{h as Y}from"./vendor-utils-BRu4i-LD.js";import{t as j}from"./index-CDqomOa1.js";import{_ as I,a0 as G,a2 as R,O as p,ad as $,a1 as H}from"./vendor-lucide-Ddz0eB7N.js";import{m as S}from"./vendor-framer-motion-C1oRD-X5.js";import"./vendor-radix-CFmJ1img.js";import"./vendor-supabase-Ca6cp8v2.js";function ne(){const[d,k]=u.useState(""),[q,c]=u.useState(!1),[s,m]=u.useState(null),[r,x]=u.useState(null),h=Q(),{data:L=[],isLoading:F}=v({queryKey:["transfers"],queryFn:()=>o.entities.Transfer.list("-transfer_date")}),{data:b=[]}=v({queryKey:["players"],queryFn:()=>o.entities.Player.list("name",500)}),E=f({mutationFn:a=>o.entities.Transfer.create(a),onSuccess:()=>{h.invalidateQueries({queryKey:["transfers"]}),c(!1),m(null),x(null),j.success("Transferência criada com sucesso")}}),A=f({mutationFn:({id:a,data:t})=>o.entities.Transfer.update(a,t),onSuccess:()=>{h.invalidateQueries({queryKey:["transfers"]}),c(!1),m(null),x(null),j.success("Transferência atualizada")}}),M=f({mutationFn:a=>o.entities.Transfer.delete(a),onSuccess:()=>{h.invalidateQueries({queryKey:["transfers"]}),j.success("Transferência eliminada")}}),T=a=>{a.preventDefault();const t=new FormData(a.target),l={player_id:(r==null?void 0:r.id)||(s==null?void 0:s.player_id),player_name:(r==null?void 0:r.name)||(s==null?void 0:s.player_name),from_club:t.get("from_club"),to_club:t.get("to_club"),transfer_date:t.get("transfer_date"),transfer_fee:t.get("transfer_fee")?parseFloat(t.get("transfer_fee")):null,transfer_type:t.get("transfer_type"),season:t.get("season")};s?A.mutate({id:s.id,data:l}):E.mutate(l)},g=L.filter(a=>{var t,l,y;return((t=a.player_name)==null?void 0:t.toLowerCase().includes(d.toLowerCase()))||((l=a.from_club)==null?void 0:l.toLowerCase().includes(d.toLowerCase()))||((y=a.to_club)==null?void 0:y.toLowerCase().includes(d.toLowerCase()))}),V={transferência:"bg-blue-100 text-blue-800",empréstimo:"bg-yellow-100 text-yellow-800",livre:"bg-green-100 text-green-800",fim_contrato:"bg-gray-100 text-gray-800"};return e.jsxs("main",{className:"min-h-screen bg-gray-50",children:[e.jsx("section",{className:"bg-gradient-to-br from-gray-900 via-gray-800 to-black py-12",children:e.jsxs("div",{className:"container mx-auto px-4",children:[e.jsx(N,{to:_("Admin"),children:e.jsxs(i,{variant:"ghost",className:"text-white hover:bg-white/10 mb-6",children:[e.jsx(I,{className:"w-4 h-4 mr-2"}),"Voltar ao Admin"]})}),e.jsxs(S.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-4xl font-bold text-white mb-2",children:"Gestão de Transferências"}),e.jsx("p",{className:"text-gray-400",children:"Gerir histórico de transferências dos jogadores"})]}),e.jsxs(z,{open:q,onOpenChange:c,children:[e.jsx(K,{asChild:!0,children:e.jsxs(i,{className:"bg-red-600 hover:bg-red-700",onClick:()=>{m(null),x(null)},children:[e.jsx(G,{className:"w-4 h-4 mr-2"}),"Nova Transferência"]})}),e.jsxs(P,{className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[e.jsx(B,{children:e.jsx(O,{children:s?"Editar Transferência":"Nova Transferência"})}),e.jsxs("form",{onSubmit:T,className:"space-y-4",children:[!s&&e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium mb-2",children:"Jogador *"}),e.jsxs("select",{value:(r==null?void 0:r.id)||"",onChange:a=>{const t=b.find(l=>l.id===a.target.value);x(t)},className:"w-full p-2 border rounded-lg",required:!0,children:[e.jsx("option",{value:"",children:"Selecione um jogador"}),b.map(a=>e.jsxs("option",{value:a.id,children:[a.name," - ",a.current_club||"Sem clube"]},a.id))]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium mb-2",children:"Clube Anterior"}),e.jsx(n,{name:"from_club",defaultValue:s==null?void 0:s.from_club,placeholder:"Ex: Petro de Luanda"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium mb-2",children:"Clube Novo *"}),e.jsx(n,{name:"to_club",defaultValue:s==null?void 0:s.to_club,placeholder:"Ex: FC Porto",required:!0})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium mb-2",children:"Data da Transferência *"}),e.jsx(n,{type:"date",name:"transfer_date",defaultValue:s==null?void 0:s.transfer_date,required:!0})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium mb-2",children:"Ãpoca"}),e.jsx(n,{name:"season",defaultValue:s==null?void 0:s.season,placeholder:"Ex: 2024/25"})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium mb-2",children:"Tipo de Transferência"}),e.jsxs("select",{name:"transfer_type",defaultValue:(s==null?void 0:s.transfer_type)||"transferência",className:"w-full p-2 border rounded-lg",children:[e.jsx("option",{value:"transferência",children:"Transferência"}),e.jsx("option",{value:"empréstimo",children:"Empréstimo"}),e.jsx("option",{value:"livre",children:"Livre"}),e.jsx("option",{value:"fim_contrato",children:"Fim de Contrato"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium mb-2",children:"Valor (Milhões â¬)"}),e.jsx(n,{type:"number",step:"0.1",name:"transfer_fee",defaultValue:s==null?void 0:s.transfer_fee,placeholder:"Ex: 5.5"})]})]}),e.jsxs("div",{className:"flex gap-2 justify-end pt-4",children:[e.jsx(i,{type:"button",variant:"outline",onClick:()=>c(!1),children:"Cancelar"}),e.jsx(i,{type:"submit",className:"bg-red-600 hover:bg-red-700",children:s?"Atualizar":"Criar"})]})]})]})]})]})]})}),e.jsx("section",{className:"py-8",children:e.jsxs("div",{className:"container mx-auto px-4",children:[e.jsx("div",{className:"mb-6",children:e.jsxs("div",{className:"relative",children:[e.jsx(R,{className:"absolute left-4 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),e.jsx(n,{placeholder:"Pesquisar por jogador ou clube...",value:d,onChange:a=>k(a.target.value),className:"pl-12"})]})}),F?e.jsx("p",{className:"text-center py-12",children:"A carregar..."}):g.length>0?e.jsx("div",{className:"grid gap-4",children:g.map((a,t)=>e.jsx(S.div,{initial:{opacity:0,y:20}
1,animate:{opacity:1,y:0},transition:{delay:t*.05},children:e.jsx(C,{children:e.jsx(w,{className:"p-6",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-6 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(p,{className:"w-5 h-5 text-gray-400"}),e.jsxs("div",{children:[e.jsx(N,{to:_(`PlayerDetail?id=${a.player_id}`),children:e.jsx("h3",{className:"font-bold text-lg hover:text-red-600 transition-colors",children:a.player_name})}),e.jsxs("p",{className:"text-sm text-gray-500",children:[Y(a.transfer_date).format("DD/MM/YYYY"),a.season&&` ⢠${a.season}`]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 flex-1",children:[a.from_club&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"text-right",children:[e.jsx("p",{className:"font-medium text-gray-900",children:a.from_club}),e.jsx("p",{className:"text-xs text-gray-500",children:"De"})]}),e.jsx(p,{className:"w-4 h-4 text-red-600"})]}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-gray-900",children:a.to_club}),e.jsx("p",{className:"text-xs text-gray-500",children:"Para"})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(D,{className:V[a.transfer_type],children:a.transfer_type}),a.transfer_fee&&e.jsxs(D,{variant:"outline",children:["â¬",a.transfer_fee,"M"]})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(i,{size:"icon",variant:"ghost",onClick:()=>{m(a),c(!0)},children:e.jsx($,{className:"w-4 h-4"})}),e.jsx(i,{size:"icon",variant:"ghost",onClick:()=>{confirm("Tem certeza que deseja eliminar esta transferência?")&&M.mutate(a.id)},children:e.jsx(H,{className:"w-4 h-4 text-red-600"})})]})]})})})},a.id))}):e.jsx(C,{children:e.jsxs(w,{className:"p-12 text-center",children:[e.jsx(p,{className:"w-12 h-12 text-gray-300 mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Nenhuma transferência encontrada"}),e.jsx("p",{className:"text-gray-500 mb-4",children:"Comece por adicionar a primeira transferência"})]})})]})})]})}export{ne 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.