1import{_ as D}from"./BOZfNeu2.js";import{r as c,q as C,g as N,c as n,h as P,i as $,y as q,o as i,s as z,j as h,b as e,t as o,w as V,v as F,F as S,f as R,n as I,e as v}from"./B3-1_YVi.js";import{T as H}from"./Cz7P02cF.js";import"./CZ1lPaEW.js";import"./x_rD_Ya3.js";const Q={key:1,class:"flex justify-center items-center py-12"},U={key:2,class:"bg-red-100 dark:bg-red-900 border border-red-400 text-red-700 dark:text-red-200 px-4 py-3 rounded relative",role:"alert"},G={class:"block sm:inline"},J={key:3},K={class:"flex justify-between items-center mb-6"},O={class:"flex items-center"},W={class:"bg-white dark:bg-gray-800 shadow-md rounded-lg overflow-hidden"},X={class:"min-w-full divide-y divide-gray-200 dark:divide-gray-700 text-xs"},Y={class:"bg-white dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700 text-xs"},Z={key:0},ee={class:"px-3 py-2 whitespace-nowrap max-w-[220px]"},te={class:"flex items-center"},se={class:"h-8 w-8 flex-shrink-0"},re=["src","alt"],ae={class:"ml-2 min-w-0"},oe={class:"truncate font-medium text-gray-900 dark:text-white text-xs"},ie={class:"truncate text-gray-500 dark:text-gray-400 text-[11px]"},ne={class:"px-3 py-2 whitespace-nowrap"},le={class:"text-xs text-gray-900 dark:text-white"},de={key:0,class:"text-[10px] text-gray-500 dark:text-gray-400"},ce={class:"line-through"},ue={class:"ml-1 text-green-600 dark:text-green-400"},ge={class:"px-3 py-2 whitespace-nowrap"},pe={key:0,class:"px-1 inline-flex text-[10px] leading-5 font-semibold rounded-full bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200"},xe={key:1,class:"px-1 inline-flex text-[10px] leading-5 font-semibold rounded-full bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-300"},me=["title"],ye={key:0},he={class:"px-3 py-2 whitespace-nowrap text-xs font-medium"},ve=["onClick"],fe=["onClick"],ke={class:"flex justify-between items-center mt-6"},we={class:"text-sm text-gray-700 dark:text-gray-300"},be={class:"font-medium"},_e={class:"font-medium"},Ce={class:"flex space-x-2 items-center"},Ee=["disabled"],$e={class:"text-xs"},je=["disabled"],E=10,Ne={__name:"index",setup(Le){const g=q(),u=c([]),f=c(!0),k=c(null),p=c(""),d=c({message:"",type:"success"}),l=c(1),x=C(()=>Math.ceil(w.value.length/E)),j=async()=>{var r;try{f.value=!0;const t=localStorage.getItem("auth_token");if(!t){g.push("/admin/login");return}const a=await fetch("/api/admin/courses",{headers:{Authorization:`Bearer ${t}`}}),s=await a.json();if(!a.ok||s.statusCode!==200)throw new Error(((r=s.body)==null?void 0:r.error)||"Failed to fetch courses");u.value=s.body.courses||[]}catch(t){console.error("Error fetching courses:",t),k.value=t.message}finally{f.value=!1}},w=C(()=>{if(!p.value)return u.value;const r=p.value.toLowerCase();return u.value.filter(t=>t.title.toLowerCase().includes(r)||t.slug.toLowerCase().includes(r)||t.city&&t.city.toLowerCase().includes(r)||t.cidade&&t.cidade.toLowerCase().includes(r)||Array.isArray(t.categories)&&t.categories.some(a=>a.name&&a.name.toLowerCase().includes(r)))}),b=C(()=>{const r=(l.value-1)*E;return w.value.slice(r,r+E)});function L(){l.value<x.value&&l.value++}function B(){l.value>1&&l.value--}const A=()=>{g.push("/admin/courses/create")},M=r=>{g.push(`/admin/courses/edit/${r.slug}`)},T=async r=>{var t;if(confirm(`Tem certeza que deseja excluir "${r.title}"?`))try{const a=localStorage.getItem("auth_token");if(!a){g.push("/admin/login");return}const s=await fetch(`/api/admin/courses/${r.slug}`,{method:"DELETE",headers:{Authorization:`Bearer ${a}`}}),m=await s.json();if(!s.ok||m.statusCode!==200)throw new Error(((t=m.body)==null?void 0:t.error)||"Failed to delete course");u.value=u.value.filter(y=>y.id!==r.id),d.value={message:"Curso excluÃdo com sucesso!",type:"success"}}catch(a){console.error("Error deleting course:",a),d.value={message:`Erro: ${a.message}`,type:"error"},alert(`Error: ${a.message}`)}};function _(r){return r?r.replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim():""}return N(()=>{j()}),(r,t)=>{const a=D;return i(),n("div",null,[P(a,null,{header:$(()=>t[3]||(t[3]=[e("h1",{class:"text-lg font-semibold text-gray-800 dark:text-white leading-tight"},"Cursos",-1)])),default:$(()=>[d.value.message?(i(),z(H,{key:0,message:d.value.message,type:d.value.type,onClose:t[0]||(t[0]=s=>d.value.message="")},null,8,["message","type"])):h("",!0),f.value?(i(),n("div",Q,t[4]||(t[4]=[e("div",{class:"animate-spin rounded-full h-12 w-12 border-t-2 border-b-2 border-primary-600"},null,-1)]))):k.value?(i(),n("div",U,[t[5]||(t[5]=e("strong",{class:"font-bold"},"Error!",-1)),e("span",G,o(k.value),1)])):(i(),n("div",J,[e("div",K,[e("div",O,[V(e("input",{type:"text","onUpdate:modelValue":t[1]||(t[1]=s=>p.value=s),placeholder:"Buscar cursos...",class:"px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-md focus:outline-none focus:ring-2 focus:ring-primary-500 dark:bg-gray-700 dark:text-white focus-visible high-contrast"},null,512),[[F,p.value]])]),e("button",{onClick:A,class:"bg-primary-600 hover:bg-primary-700 text-white font-medium py-2 px-4 roun
1ded-md transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2"}," Adicionar Novo Curso ")]),e("div",W,[e("table",X,[t[9]||(t[9]=e("thead",{class:"bg-gray-50 dark:bg-gray-700"},[e("tr",null,[e("th",{scope:"col",class:"px-3 py-2 text-left font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider w-1/4 min-w-[120px]"},"TÃtulo"),e("th",{scope:"col",class:"px-3 py-2 text-left font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider w-1/6 min-w-[80px]"},"Preço"),e("th",{scope:"col",class:"px-3 py-2 text-left font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider w-1/8 min-w-[60px]"},"Destaque"),e("th",{scope:"col",class:"px-3 py-2 text-left font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider w-1/5 min-w-[120px]"},"Descrição"),e("th",{scope:"col",class:"px-3 py-2 text-left font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider w-1/6 min-w-[80px]"},"Ações")])],-1)),e("tbody",Y,[b.value.length===0?(i(),n("tr",Z,t[6]||(t[6]=[e("td",{colspan:"5",class:"px-3 py-2 text-center text-gray-500 dark:text-gray-400"}," Nenhum curso encontrado ",-1)]))):h("",!0),(i(!0),n(S,null,R(b.value,(s,m)=>(i(),n("tr",{key:s.id,class:I([m%2===0?"bg-gray-50 dark:bg-gray-900":"bg-white dark:bg-gray-800","hover:bg-primary-50 dark:hover:bg-primary-900 transition-colors duration-150"])},[e("td",ee,[e("div",te,[e("div",se,[e("img",{src:s.main_image||"/public/logo.webp",alt:s.title,class:"h-8 w-8 rounded-full object-cover",onError:t[2]||(t[2]=y=>r.event.target.src="/logo.webp")},null,40,re)]),e("div",ae,[e("div",oe,o(s.title),1),e("div",ie,o(s.slug),1)])])]),e("td",ne,[e("div",le,"R$ "+o(s.price),1),s.original_price?(i(),n("div",de,[e("span",ce,"R$ "+o(s.original_price),1),e("span",ue,o(s.discount)+"% off",1)])):h("",!0)]),e("td",ge,[s.featured?(i(),n("span",pe," Destaque ")):(i(),n("span",xe," Comum "))]),e("td",{class:"px-3 py-2 whitespace-nowrap max-w-[180px] truncate",title:_(s.description)},[v(o(_(s.description).slice(0,60)),1),_(s.description).length>60?(i(),n("span",ye,"...")):h("",!0)],8,me),e("td",he,[e("button",{onClick:y=>M(s),class:"text-primary-600 dark:text-primary-400 hover:text-primary-900 dark:hover:text-primary-300 mr-2 flex items-center group focus-visible high-contrast","aria-label":"Editar curso",title:"Editar curso"},t[7]||(t[7]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4 mr-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15.232 5.232l3.536 3.536M9 13l6-6m2 2l-6 6m2-2l-6 6"})],-1),e("span",{class:"hidden sm:inline"},"Editar",-1)]),8,ve),e("button",{onClick:y=>T(s),class:"text-red-600 dark:text-red-400 hover:text-red-900 dark:hover:text-red-300 flex items-center group focus-visible high-contrast","aria-label":"Excluir curso",title:"Excluir curso"},t[8]||(t[8]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4 mr-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),e("span",{class:"hidden sm:inline"},"Excluir",-1)]),8,fe)])],2))),128))])])]),e("div",ke,[e("div",we,[t[10]||(t[10]=v(" Exibindo ")),e("span",be,o(b.value.length),1),t[11]||(t[11]=v(" de ")),e("span",_e,o(w.value.length),1),v(" cursos (Página "+o(l.value)+" de "+o(x.value)+") ",1)]),e("div",Ce,[e("button",{onClick:B,disabled:l.value===1,class:"px-3 py-1 border border-gray-300 dark:border-gray-600 rounded-md text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-50"},"Anterior",8,Ee),e("span",$e,o(l.value)+" / "+o(x.value),1),e("button",{onClick:L,disabled:l.value===x.value,class:"px-3 py-1 border border-gray-300 dark:border-gray-600 rounded-md text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-50"},"Próximo",8,je)])])]))]),_:1})])}}};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.