PageSourceSearch

https://k9prohub-5u7ruody.manus.space/assets/AdminAgenda-BHU2S8F2.js

js k9prohub-5u7ruody.manus.space collected 2026-10-03 05:03:46 UTC 15,594 bytes, 1 lines download raw bytes

1import{r as p,j as a}from"./vendor-ui-CHrmpeEa.js";import{t as u,f as y,B as c,P as oa}from"./index-DDXAxf3_.js";import{u as ga}from"./useAdminAuth-B5eRIsZ5.js";import{C as I,d as $,a as xa,b as Aa}from"./card-ZrSkWK4s.js";import{B}from"./badge-DfKVZkmM.js";import{I as j}from"./input-DMKGRMx7.js";import{L as i}from"./label-CUoU16xo.js";import{S as P,a as F,b as L,c as z,d as m}from"./select-DNvSuJKa.js";import{D as O,a as R,b as E,c as H,d as pa}from"./useComposition-C645H9Z4.js";import{C as ha}from"./chevron-left-DYXSTeUB.js";import{C as ua}from"./chevron-right-BvO5FWGv.js";import{C as _}from"./calendar-B-Dk-7zO.js";import{C as J}from"./circle-x-z3Lnnvvv.js";import{C as U}from"./circle-check-K_2IP-3Q.js";import{C as G}from"./circle-alert-nbqoFt1B.js";import{C as ja}from"./clock-9Q6P_5BP.js";import{L as V}from"./loader-circle-DAbE7FtF.js";import"./vendor-react-COd4auuD.js";import"./vendor-trpc-BBLHDmMG.js";import"./vendor-charts-DLOf8RNh.js";import"./check-CDCkI0ij.js";import"./chevron-up-CjTk-k3L.js";const Q={pending:"bg-amber-100 text-amber-700",confirmed:"bg-emerald-100 text-emerald-700",completed:"bg-sky-100 text-sky-700",cancelled:"bg-gray-100 text-gray-500",no_show:"bg-red-100 text-red-700"},va={pending:G,confirmed:U,completed:U,cancelled:J,no_show:J};function w(d,h){return d?typeof d=="string"?d:d[h]||d.pt||d.en||Object.values(d)[0]||"":""}function _a(){const{isAuthenticated:d}=ga(),h="pt",[k,D]=p.useState(()=>new Date),[N,X]=p.useState("all"),[Y,v]=p.useState(!1),[n,C]=p.useState(null),[t,o]=p.useState({serviceId:"",date:"",startTime:"08:00",endTime:"18:00",intervalMinutes:"60",maxCapacity:"1"}),g=k.getFullYear(),x=k.getMonth()+1,q=`${g}-${String(x).padStart(2,"0")}-01`,K=`${g}-${String(x).padStart(2,"0")}-${new Date(g,x,0).getDate()}`,{data:T,refetch:W}=u.agenda.adminListBookings.useQuery({startDate:q,endDate:K,status:N==="all"?void 0:N},{enabled:d}),{data:f}=u.admin.listServices.useQuery(void 0,{enabled:d}),l=u.agenda.adminUpdateBooking.useMutation({onSuccess:()=>{W(),C(null),y.success("Agendamento atualizado")}}),S=u.agenda.adminCreateSlots.useMutation({onSuccess:s=>{v(!1),y.success(`${s.created} slots criados`)}});u.agenda.adminDeleteSlot.useMutation({onSuccess:()=>{y.success("Slot removido")}});const Z=()=>D(new Date(g,x-2,1)),aa=()=>D(new Date(g,x,1)),ea=["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],b=p.useMemo(()=>{const s={};return(T||[]).forEach(e=>{const r=e.bookingDate?.split("T")[0]||"";s[r]||(s[r]=[]),s[r].push(e)}),s},[T]),M=Object.keys(b).sort(),sa=()=>{if(!t.serviceId||!t.date)return;const s=[],e=Number(t.intervalMinutes),[r,ta]=t.startTime.split(":").map(Number),[na,da]=t.endTime.split(":").map(Number);let A=r*60+ta;const ia=na*60+da;for(;A+e<=ia;){const ca=String(Math.floor(A/60)).padStart(2,"0"),la=String(A%60).padStart(2,"0"),ra=String(Math.floor((A+e)/60)).padStart(2,"0"),ma=String((A+e)%60).padStart(2,"0");s.push({date:t.date,timeSlotStart:`${t.date}T${ca}:${la}:00`,timeSlotEnd:`${t.date}T${ra}:${ma}:00`,capacity:Number(t.maxCapacity)}),A+=e}S.mutate({serviceId:Number(t.serviceId),slots:s})};return a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:136",className:"space-y-6",children:[a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:138",className:"flex items-center justify-between",children:[a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:139",children:[a.jsx("h1",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:140",className:"text-xl font-semibold text-[#003b60]",children:"Gestão da Agenda"}),a.jsx("p",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:141",className:"text-sm text-gray-500",children:"Agendamentos, disponibilidade e slots"})]}),a.jsxs(c,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:143",onClick:()=>
1v(!0),className:"bg-[#003b60] hover:bg-[#004d7a]",children:[a.jsx(oa,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:144",className:"w-4 h-4 mr-1"})," Criar Slots"]})]}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:149",className:"flex items-center justify-between",children:[a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:150",className:"flex items-center gap-3",children:[a.jsx(c,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:151",variant:"ghost",size:"icon",onClick:Z,className:"h-8 w-8",children:a.jsx(ha,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:152",className:"w-4 h-4"})}),a.jsxs("h2",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:154",className:"text-lg font-semibold text-[#003b60]",children:[ea[x-1]," ",g]}),a.jsx(c,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:157",variant:"ghost",size:"icon",onClick:aa,className:"h-8 w-8",children:a.jsx(ua,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:158",className:"w-4 h-4"})})]}),a.jsxs(P,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:161",value:N,onValueChange:s=>X(s),children:[a.jsx(F,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:162",className:"w-40 h-9",children:a.jsx(L,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:162"})}),a.jsxs(z,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:163",children:[a.jsx(m,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:164",value:"all",children:"Todos"}),a.jsx(m,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:165",value:"pending",children:"Pendentes"}),a.jsx(m,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:166",value:"confirmed",children:"Confirmados"}),a.jsx(m,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:167",value:"completed",children:"Concluídos"}),a.jsx(m,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:168",value:"cancelled",children:"Cancelados"}),a.jsx(m,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:169",value:"no_show",children:"Não compareceu"})]})]})]}),M.length===0?a.jsx(I,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:176",className:"shadow-sm border-gray-100",children:a.jsxs($,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:177",className:"py-12 text-center",children:[a.jsx(_,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:178",className:"w-12 h-12 text-gray-300 mx-auto mb-3"}),a.jsx("p",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:179",className:"text-gray-400",children:"Nenhum agendamento neste mês"})]})}):a.jsx("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:183",className:"space-y-4",children:M.map(s=>a.jsxs(I,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:185",className:"shadow-sm border-gray-100",children:[a.jsx(xa,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:186",className:"pb-2",children:a.jsxs(Aa,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:187",className:"text-sm font-semibold text-[#003b60] flex items-center gap-2",children:[a.jsx(_,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:188",className:"w-4 h-4"}),new Date(s+"T12:00:00").toLocaleDateString("pt-BR",{weekday:"long",day:"numeric",month:"long"}),a.jsx(B,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:190",variant:"outline",className:"ml-2 text-xs",children:b[s].length})]})}),a.jsx($,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:193",children:a.jsx("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:194",className:"space-y-2",children:b[s].map(e=>{const r=va[e.status]||G;return a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:198",className:"flex items-center justify-between p-3 rounded-lg bg-gray-50 border border-gray-100 hover:bg-gray-100 cursor-pointer transition-colors",onClick:()=>C(e),children:[a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:203",className:"flex items-center gap-3",children:[a.jsx("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:204",className:`p-1.5 rounded ${Q[e.status]||""}`,children:a.jsx(r,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:205",className:"w-3.5 h-3.5"})}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:207",children:[a.jsx("p",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:208",className:"text-sm font-medium text-gray-800",children:w(e.serviceName,h)}),a.jsxs("p",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:211",className:"text-xs text-gray-500",children:[a.jsx(ja,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:212",className:"w-3 h-3 inline mr-1"}),e.timeSlotStart?new Date(e.timeSlotStart).toLocaleTimeString("pt-BR",{hour:"2-digit",minute:"2-digit"}):"—",e.userName&&` • ${e.userName}`]})]})]}),a.jsx(B,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:218",className:`text-xs ${Q[e.status]||""}`,children:e.status==="pending"?"Pendente":e.status==="confirmed"?"Confirmado":e.status==="completed"?"Concluído":e.status==="cancelled"?"Cancelado":e.status==="no_show"?"Não compareceu":e.status})]},e.id)})})})]},s))}),a.jsx(O,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:236",open:!!n,onOpenChange:()=>C(null),children:a.jsxs(R,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:237",className:"max-w-md",children:[a.jsx(E,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:238",children:a.jsx(H,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:239",className:"text-[#003b60]",children:"Atualizar Agendamento"})}),n&&a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:242",className:"space-y-3",children:[a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:243",children:[a.jsx(i,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:244",className:"text-xs text-gray-500",children:"Serviço"}),a.jsx("p",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:245",className:"text-sm font-medium",children:w(n.serviceName,h)})]}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:247",children:[a.jsx(i,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:248",className:"text-xs text-gray-500",children:"Data"}),a.jsx("p",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:249",className:"text-sm",children:n.bookingDate?new Date(n.bookingDate).toLocaleDateString("pt-BR"):"—"})]}),n.userName&&a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:252",children:[a.jsx(i,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:253",className:"text-xs text-gray-500",children:"Cliente"}),a.jsx("p",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:254",className:"text-sm",children:n.userName})]}),n.notes&&a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:258",children:[a.jsx(i,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:259",className:"text-xs text-gray-500",children:"Observações"}),a.jsx("p",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:260",className:"text-sm text-gray-600",children:n.notes})]}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:263",className:"flex gap-2 pt-2",children:[n.status==="pending"&&a.jsx(c,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:265",size:"sm",className:"bg-emerald-600 hover:bg-emerald-700",onClick:()=>l.mutate({bookingId:n.id,status:"confirmed"}),disabled:l.isPending,children:l.isPending?a.jsx(V,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:271",className:"w-3 h-3 animate-spin"}):"Confirmar"}),(n.status==="pending"||n.status==="confirmed")&&a.jsxs(a.Fragment,{children:[a.jsx(c,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:276",size:"sm",className:"bg-sky-600 hover:bg-sky-700",onClick:()=>l.mutate({bookingId:n.id,status:"completed"}),disabled:l.isPending,children:"Concluir"}),a.jsx(c,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:284",size:"sm",variant:"outline",className:"text-red-600 border-red-200 hover:bg-red-50",onClick:()=>l.mutate({bookingId:n.id,status:"cancelled"}),disabled:l.isPending,children:"Cancelar"})]})]})]})]})}),a.jsx(O,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:303",open:Y,onOpenChange:v,children:a.jsxs(R,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:304",className:"max-w-md",children:[a.jsx(E,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:305",children:a.jsx(H,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:306",className:"text-[#003b60]",children:"Criar Slots de Disponibilidade"})}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:308",className:"space-y-3",children:[a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:309",children:[a.jsx(i,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:310",className:"text-xs",children:"Serviço"}),a.jsxs(P,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:311",value:t.serviceId,onValueChange:s=>o(e=>({...e,serviceId:s})),children:[a.jsx(F,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:312",className:"h-9",children:a.jsx(L,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:312",placeholder:"Selecione..."})}),a.jsx(z,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:313",children:(Array.isArray(f)?f:f?.services||[]).map(s=>a.jsx(m,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:315",value:s.id.toString(),children:w(s.titleTranslations,h)},s.id))})]})]}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:322",children:[a.jsx(i,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:323",className:"text-xs",children:"Data"}),a.jsx(j,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:324",type:"date",className:"h-9",value:t.date,onChange:s=>o(e=>({...e,date:s.target.value})),min:new Date().toISOString().split("T")[0]})]}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:332",className:"grid grid-cols-2 gap-3",children:[a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:333",children:[a.jsx(i,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:334",className:"text-xs",children:"Início"}),a.jsx(j,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:335",type:"time",className:"h-9",value:t.startTime,onChange:s=>o(e=>({...e,startTime:s.target.value}))})]}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:342",children:[a.jsx(i,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:343",className:"text-xs",children:"Fim"}),a.jsx(j,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:344",type:"time",className:"h-9",value:t.endTime,onChange:s=>o(e=>({...e,endTime:s.target.value}))})]})]}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:352",className:"grid grid-cols-2 gap-3",children:[a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:353",children:[a.jsx(i,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:354",className:"text-xs",children:"Intervalo (min)"}),a.jsx(j,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:355",type:"number",className:"h-9",value:t.intervalMinutes,onChange:s=>o(e=>({...e,intervalMinutes:s.target.value}))})]}),a.jsxs("div",{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:362",children:[a.jsx(i,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:363",className:"text-xs",children:"Capacidade máx."}),a.jsx(j,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:364",type:"number",className:"h-9",value:t.maxCapacity,onChange:s=>o(e=>({...e,maxCapacity:s.target.value}))})]})]})]}),a.jsxs(pa,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:373",children:[a.jsx(c,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:374",variant:"outline",onClick:()=>v(!1),children:"Cancelar"}),a.jsx(c,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:375",onClick:sa,disabled:!t.serviceId||!t.date||S.isPending,className:"bg-[#003b60] hover:bg-[#004d7
1a]",children:S.isPending?a.jsx(V,{"data-loc":"client/src/pages/admin/AdminAgenda.tsx:380",className:"w-4 h-4 animate-spin"}):"Criar Slots"})]})]})})]})}export{_a 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.