1import{r as t,b5 as u,H as e,aO as a,a6 as q,a0 as z,aP as n,aQ as g,a$ as Q,b0 as y,aT as G,a8 as R,b1 as J,b2 as K,b6 as P,a9 as A,b3 as V,b4 as X,a1 as c,aR as Z,b7 as ee,a7 as se}from"./vendor-DuAiEDbE.js";import{d as D,e as ae,R as ne,f as M,g as E,E as F,h as _,i as re}from"./vendor-mui-icons-lTdDhYAN.js";import{C as oe,a as L}from"./index-DXK9TXc8.js";const B={pending:"Pendiente",confirmed:"Confirmada",in_progress:"En curso",cancelled:"Cancelada",completed:"Completada",no_show:"No asistió"},O={pending:"warning",confirmed:"success",in_progress:"primary",cancelled:"error",completed:"info",no_show:"default"};function te({r:o,onClick:p}){var j,m;return e.jsx(Z,{variant:"outlined",sx:{cursor:"pointer",borderRadius:2,transition:"box-shadow 0.15s","&:hover":{boxShadow:3,borderColor:"primary.main"}},onClick:p,children:e.jsxs(ee,{sx:{p:"14px 16px !important"},children:[e.jsxs(a,{display:"flex",justifyContent:"space-between",alignItems:"center",mb:1,children:[e.jsxs(a,{display:"flex",alignItems:"center",gap:1,children:[e.jsx(P,{sx:{width:36,height:36,bgcolor:"primary.main",fontSize:15,fontWeight:700},children:(j=o.customer_name[0])==null?void 0:j.toUpperCase()}),e.jsxs(a,{children:[e.jsx(n,{fontWeight:600,fontSize:15,lineHeight:1.2,children:o.customer_name}),e.jsx(n,{variant:"caption",color:"text.secondary",children:o.confirmation_code})]})]}),e.jsx(A,{label:B[o.status],color:O[o.status],size:"small",sx:{fontWeight:600,fontSize:11}})]}),e.jsx(se,{sx:{my:1}}),e.jsxs(g,{direction:"row",spacing:2,flexWrap:"wrap",rowGap:.5,children:[e.jsxs(a,{display:"flex",alignItems:"center",gap:.5,children:[e.jsx(re,{sx:{fontSize:15,color:"text.secondary"}}),e.jsxs(n,{variant:"body2",color:"text.secondary",children:[(m=o.reservation_time)==null?void 0:m.slice(0,5),o.duration?` · ${o.duration}min`:""]})]}),e.jsxs(a,{display:"flex",alignItems:"center",gap:.5,children:[e.jsx(E,{sx:{fontSize:15,color:"text.secondary"}}),e.jsxs(n,{variant:"body2",color:"text.secondary",children:[o.party_size," personas"]})]}),e.jsxs(a,{display:"flex",alignItems:"center",gap:.5,children:[e.jsx(F,{sx:{fontSize:15,color:"text.secondary"}}),e.jsx(n,{variant:"body2",color:"text.secondary",children:o.item_name})]}),o.personnel_name&&e.jsxs(a,{display:"flex",alignItems:"center",gap:.5,children:[e.jsx(_,{sx:{fontSize:15,color:"text.secondary"}}),e.jsx(n,{variant:"body2",color:"text.secondary",children:o.personnel_name})]})]}),o.notes&&e.jsxs(n,{variant:"caption",color:"text.secondary",mt:.75,display:"block",sx:{fontStyle:"italic"},children:['"',o.notes,'"']})]})})}function de(){var T,Y;const{user:o}=oe(),[p,j]=t.useState([]),[m,w]=t.useState(!0),[I,b]=t.useState(""),[x,H]=t.useState("today"),[N,v]=t.useState(!1),[h,S]=t.useState(""),[s,f]=t.useState(null),[i,k]=t.useState(!1),U=u().format("YYYY-MM-DD"),$=u().add(1,"day").format("YYYY-MM-DD"),C=async()=>{if(o!=null&&o.place_id){w(!0),b("");try{const r={place_id:String(o.place_id),limit:"200"};x==="today"?r.date_from=r.date_to=U:x==="upcoming"?(r.date_from=$,r.statuses="pending,confirmed,in_progress",r.order="asc"):x==="pending"?(r.status="pending",r.order="asc"):x==="history"&&(r.date_to=u().subtract(1,"day").format("YYYY-MM-DD"),r.order="desc");const{data:l}=await L.get("reservations",{params:r});j(l.reservations||[])}catch{b("Error al cargar reservas")}finally{w(!1)}}};t.useEffect(()=>{C(),S(""),v(!1)},[x]);const W=t.useMemo(()=>{if(!h.trim())return p;const r=h.toLowerCase();return p.filter(l=>l.customer_name.toLowerCase().includes(r)||l.confirmation_code.toLowerCase().includes(r)||l.item_name.toLowerCase().includes(r))},[p,h]),d=async(r,l)=>{k(!0);try{await L.put(`reservations?id=${r}`,{status:l}),f(null),C()}catch{b("Error al actualizar estado")}finally{k(!1)}};return e.jsxs(a,{maxWidth:700,mx:"auto",children:[e.jsx(a,{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1,sx:{minHeight:48},children:N?e.jsxs(a,{display:"flex",alignItems:"center",flex:1,sx:{bgcolor:"white",borderRadius:2,border:"1px solid",borderColor:"divider",px:1.5,py:.5},children:[e.jsx(D,{sx:{color:"text.secondary",mr:1,fontSize:20}}),e.jsx(q,{autoFocus:!0,fullWidth:!0,placeholder:"Buscar por nombre o código...",value:h,onChange:r=>S(r.target.value),sx:{fontSize:14}}),e.jsx(z,{size:"small",onClick:()=>{v(!1),S("")},children:e.jsx(ae,{fontSize:"small"})})]}):e.jsxs(e.Fragment,{children:[e.jsxs(a,{children:[e.jsx(n,{variant:"h6",fontWeight:700,lineHeight:1.2,children:"Reservas"}),e.jsx(n,{variant:"caption",color:"text.secondary",children:o==null?void 0:o.place_name})]}),e.jsxs(g,{direction:"row",spacing:.5,children:[e.jsx(z,{size:"small",onClick:()=>v(!0),children:e.jsx(D,{fontSize:"small"})}),e.jsx(z,{size:"small",onClick:C,disabled:m,children:e.jsx(ne,{fontSize:"small"})})]})]})}),e.jsxs(Q,{value:x,onChange:(r,l)=>H(l),variant:"scrollable",scrollButtons:"auto",sx:{mb:2,bgcolor:"white",borderRadius:2,border:"1px solid",borderColor:"divider","& .MuiTab-root":{minWidth:90,fontSize:13,textTransform:"none",fontWeight:500},"& .Mui-selected":{fontWeight:700,color:"primary.main"},"& .MuiTabs-indicator":{bgcolor:"primary.main"}},children:[e.jsx(y,{label:"Hoy",value:"today"}),e.jsx(y,{label:"Próximos",value:"upcoming"}),e.jsx(y,{label:"Pendientes",value:"pending"}),e.jsx(y,{label:"Historial",value:"history"})]}),I&&e.jsx(G,{severity:"error",sx:{mb:2},children:I}),m?e.jsx(a,{display:"flex",justifyContent:"center",py:8,children:e.jsx(R,{color:"primary"})}):W.length===0?e.jsxs(a,{textAlign:"center",py:8,children:[e.jsx(M,{sx:{fontSize:52,color:"text.disabled",mb:1.5}}),e.jsx(n,{color:"text.secondary",fontWeight:500,children:h?"Sin resultados":"No hay reservas aquÃ"}),e.jsx(n,{variant:"caption",color:"text.disabled",children:h?"Intenta con otra búsqueda":"Prueba con otra pestaña"})]}):e.jsx(g,{spacing:1.5,children:W.map(r=>e.jsx(te,{r,onClick:()=>f(r)},r.id))}),e.jsx(J,{open:!!s,onClose:()=>f(null),maxWidth:"sm",fullWidth:!0,children:s&&e.jsxs(e.Fragment,{children:[e.jsx(K,{sx:{pb:1},children:e.jsxs(a,{display:"flex",alignItems:"center",gap:1.5,children:[e.jsx(P,{sx:{bgcolor:"primary.main",width:40,height:40,fontWeight:700},children:(T=s.customer_name[0])==null?void 0:T.toUpperCase()}),e.jsxs(a,{children:[e.jsx(n,{fontWeight:700,fontSize:16,children:s.customer_name}),e.jsx(n,{variant:"caption",color:"text.secondary",children:s.confirmation_code})]}),e.jsx(a,{flex:1}),e.jsx(A,{label:B[s.status],color:O[s.status],size:"small",sx:{fontWeight:600}})]})}),e.jsx(V,{dividers:!0,children:e.jsxs(g,{spacing:1.5,children:[e.jsxs(a,{display:"flex",alignItems:"center",gap:1,children:[e.jsx(M,{sx:{fontSize:18,color:"text.secondary"}}),e.jsxs(a,{children:[e.jsx(n,{variant:"caption",color:"text.secondary",display:"block",children:"Fecha y hora"}),e.jsxs(n,{fontSize:14,children:[u(s.reservation_date).format("DD/MM/YYYY")," â"," ",(Y=s.reservation_time)==null?void 0:Y.slice(0,5),s.duration?` (${s.duration} min)`:""]})]})]}),e.jsxs(a,{display:"flex",alignItems:"center",gap:1,children:[e.jsx(E,{sx:{fontSize:18,color:"text.secondary"}}),e.jsxs(a,{children:[e.jsx(n,{variant:"caption",color:"text.secondary",display:"block",children:"Personas"}),e.jsx(n,{fontSize:14,children:s.party_size})]})]}),e.jsxs(a,{display:"flex",alignItems:"center",gap:1,children:[e.jsx(F,{sx:{fontSize:18,color:"text.secondary"}}),e.jsxs(a,{children:[e.jsx(n,{variant:"caption",color:"text.secondary",display:"block",children:"Servicio"}),e.jsx(n,{fontSize:14,children:s.item_name})]})]}),s.customer_phone&&e.jsxs(a,{display:"flex",alignItems:"center",gap:1,children:[e.jsx(_,{sx:{fontSize:18,color:"text.secondary"}}),e.jsxs(a,{children:[e.jsx(n,{variant:"caption",color:"text.secondary",display:"block",children:"Teléfono"}),e.jsx(n,{fontSize:14,children:s.customer_phone})]})]}),s.personnel_name&&e.jsxs(a,{display:"flex",alignItems:"center",gap:1,children:[e.jsx(_,{sx:{fontSize:18,color:"text.secondary"}}),e.jsxs(a,{children:[e.jsx(n,{variant:"caption",color:"text.secondary",display:"block",children:"Personal asignado"}),e.jsx(n,{fontSize:14,children:s.personnel_name})]})]}),s.notes&&e.jsxs(a,{sx:{bgcolor:"grey.50",borderRadius:1.5,p:1.5,borderLeft:"3px solid",borderColor:"primary.main"},children:[e.jsx(n,{variant:"caption",color:"text.secondary",display:"block",mb:.5,children:"Notas"}),e.jsx(n,{fontSize:14,sx:{fontStyle:"italic"},children:s.notes})]})]})}),e.jsxs(X,{sx:{p:2,gap:1,flexWrap:"wrap"},children:[e.jsx(c,{onClick:()=>f(null),size:"small",color:"inherit",children:"Cerrar"}),e.jsx(a,{flex:1}),s.status==="pending"&&e.jsxs(e.Fragment,{children:[e.jsx(c,{variant:"contained",color:"success",size:"small",disabled:i,onClick:()=>d(s.id,"confirmed"),children:"Confirmar"}),e.jsx(c,{variant:"outlined",color:"error",size:"small",disabled:i,onClick:()=>d(s.id,"cancelled"),children:"Cancelar"})]}),s.status==="confirmed"&&e.jsxs(e.Fragment,{children:[e.jsx(c,{variant:"contained",color:"primary",size:"small",disabled:i,onClick:()=>d(s.id,"in_progress"),children:"Marcar llegada"}),e.jsx(c,{variant:"outlined",color:"primary",size:"small",disabled:i,onClick:()=>d(s.id,"completed"),children:"Completar"}),e.jsx(c,{variant:"outlined",size:"small",disabled:i,onClick:()=>d(s.id,"no_show"),children:"No asistió"}),e.jsx(c,{variant:"outlined",color:"error",size:"small",disabled:i,onClick:()=>d(s.id,"cancelled"),children:"Cancelar"})]}),s.status==="in_progress"&&e.jsxs(e.Fragment,{children:[e.jsx(c,{variant:"contained",color:"primary",size:"small",disabled:i,onClick:()=>d(s.id,"completed"),children:"Finalizar"}),e.jsx(c,{variant:"outlined",color:"error",size:"small",disabled:i,onClick:()=>d(s.id,"cancelled"),children:"Cancelar"})]}),i&&e.jsx(R,{size:20})]})]})})]})}export{de 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.