1import{_ as U,a as H,r as p,o as Q,e as l,f as s,i as u,n as f,j as d,t as a,x as P,A as q,m as Z,y as R,F as A,l as E,p as C,a2 as J,q as n}from"./app-JGHtIhlz.js";import{l as K}from"./lodash-CEISPk8X.js";const X={class:"container-fluid"},ss={class:"row"},es={class:"col-12"},ts={class:"frame rounded p-4"},os={class:"navbar mb-3 rounded p-2"},as={class:"actions d-flex"},ls={class:"btn-group"},ns={key:0,class:"badge bg-dark ms-2"},is={key:0,class:"badge bg-dark ms-2"},rs={class:"row mb-4"},ds={class:"col-md-6"},cs={class:"input-group"},us={class:"col-md-3"},ps=["value"],vs={class:"col-md-3"},ms={class:"row mb-4"},gs={class:"col-md-3 col-6 mb-3"},bs={class:"text-center p-3"},_s={class:"mt-2 mb-0"},ys={class:"col-md-3 col-6 mb-3"},xs={class:"text-center p-3"},hs={class:"mt-2 mb-0"},ks={class:"col-md-3 col-6 mb-3"},fs={class:"text-center p-3"},Cs={class:"mt-2 mb-0"},Ms={class:"col-md-3 col-6 mb-3"},ws={class:"text-center p-3"},Is={class:"mt-2 mb-0"},As={key:0,class:"text-center py-5"},Es={key:1},Ds={key:0,class:"text-center py-5"},Ns={class:"text-muted mt-4"},js={key:1,class:"comments-list"},zs={class:"card-body"},Ps={class:"row"},Ts={class:"col-md-8"},$s={class:"comment-header mb-3"},Bs={class:"d-flex align-items-center"},Ss=["src","alt"],Zs={class:"mb-0"},Rs={class:"text-muted"},Gs={class:"comment-content mb-3"},Ls={class:"mb-2"},Os={key:0,class:"text-danger"},Vs={class:"comment-meta mb-3"},Ws={class:"badge bg-light text-dark me-2"},Ys={class:"badge bg-light text-dark me-2"},Fs={key:0,class:"badge bg-info me-2"},Us={key:0,class:"replies mt-3"},Hs={class:"card-body py-2"},Qs={class:"d-flex align-items-center"},qs=["src","alt"],Js={class:"flex-grow-1"},Ks={class:"text-muted ms-2"},Xs={class:"mb-0 small"},se={class:"badge bg-secondary ms-2"},ee={class:"col-md-4"},te={class:"comment-actions"},oe={class:"mb-3"},ae={key:0,class:"mb-3"},le={class:"d-grid gap-2"},ne=["onClick","disabled"],ie=["onClick","disabled"],re=["onClick"],de=["onClick","disabled"],ce={key:2,class:"mt-4"},ue={class:"pagination justify-content-center"},pe=["onClick"],ve={key:0,class:"modal fade show",style:{display:"block",background:"rgba(0,0,0,0.5)"}},me={class:"modal-dialog modal-dialog-centered"},ge={class:"modal-content"},be={class:"modal-header"},_e={class:"modal-body"},ye={class:"text-muted"},xe={class:"modal-footer"},he=["disabled"],ke={key:0,class:"spinner-border spinner-border-sm me-2"},fe={__name:"AdminCommentsPage",setup(Ce){const v=H();J();const h=p([]),w=p([]),D=p(!1),m=p(!1),M=p(!1),x=p(null),k=p("pending"),g=p({search:"",course:"",sort:"newest"}),r=p({current_page:1,last_page:1,per_page:10,total:0}),b=p({total:0,pending:0,approved:0,total_likes:0}),_=async()=>{var o;D.value=!0;try{const e={page:r.value.current_page,search:g.value.search,course_id:g.value.course,sort:g.value.sort,status:k.value==="all"?"":k.value};console.log("ð¥ Carregando comentários com params:",e);const t=await C.get("/api/admin/comments",{params:e});console.log("â
Resposta da API:",t.data),t.data&&t.data.data?(h.value=t.data.data||[],r.value={current_page:t.data.current_page||1,last_page:t.data.last_page||1,per_page:t.data.per_page||10,total:t.data.total||0}):Array.isArray(t.data)?(h.value=t.data,r.value={current_page:1,last_page:1,per_page:t.data.length,total:t.data.length}):(h.value=[],r.value={current_page:1,last_page:1,per_page:10,total:0}),console.log(`ð ${h.value.length} comentários carregados`),await Promise.all([I(),G()])}catch(e){console.error("â Erro ao carregar comentários:",e),console.error("ð Detalhes:",((o=e.response)==null?void 0:o.data)||e.message),v.show("Erro ao carregar comentários","danger"),h.value=[]}finally{D.value=!1}},I=async()=>{try{const o=await C.get("/api/admin/comments/stats");b.value=o.data}catch(o){console.error("Erro ao carregar estatÃsticas:",o)}},G=async()=>{try{console.log("ð¥ Carregando cursos...");const o=await C.get("/api/admin/courses?simple=true");w.value=Array.isArray(o.data)?o.data:[],console.log(`â
${w.value.length} cursos carregados`)}catch(o){console.error("â Erro ao carregar cursos:",o),w.value=[]}},L=async o=>{var e,t,y;m.value=!0;try{console.log("â
Aprovando comentário:",{id:o.id,user:(e=o.user)==null?void 0:e.name,content:o.content.substring(0,50)+"..."});const c=await C.put(`/api/admin/comments/${o.id}/approve`);console.log("â
Resposta da API:",c.data),v.show("Comentário aprovado com sucesso!","success"),await _(),await I()}catch(c){console.error("â Erro ao aprovar comentário:",c),console.error("ð¢ Status:",(t=c.response)==null?void 0:t.status),console.error("ð Mensagem:",(y=c.response)==null?void 0:y.data),v.show("Erro ao aprovar comentário","danger")}finally{m.value=!1}},O=async o=>{var e,t,y,c;m.value=!0;try{console.log("ð Reprovando comentário:",{id:o.id,user:(e=o.user)==null?void 0:e.name,content:o.content.substring(0,50)+"..."});const i=await C.put(`/api/admin/comments/${o.id}/disapprove`);console.log("â
Resposta da API:",i.data),v.show("Comentário reprovado com sucesso!","success"),await _(),await I()}catch(i){console.error("â Erro ao reprovar comentário:",i),console.error("ð¢ Status:",(t=i.response)==null?void 0:t.status),console.error("ð Mensagem:",(y=i.response)==null?void 0:y.data),((c=i.response)==null?void 0:c.status)===404?v.show("Rota de reprovação não encontrada","danger"):v.show("Erro ao reprovar comentário","danger")}finally{m.value=!1}},V=o=>{x.value=o},W=async()=>{M.value=!0;try{await C.delete(`/api/admin/comments/${x.value.id}`),v.show("Comentário excluÃdo com sucesso!","success"),x.value=null,await _(),await I()}catch(o){console.error("Erro ao excluir comentário:",o),v.show("Erro ao excluir comentário","danger")}finally{M.value=!1}},Y=o=>{o.lesson&&o.course?window.open(`/course/${o.course.slug}/lesson/${o.lesson.slug}`,"_blank"):v.show("Não é possÃvel visualizar o contexto deste comentário","warning")},T=o=>o&&o.profile_image?o.profile_image.startsWith("http")?o.profile_image:`/storage/${o.profile_image}`:N(),$=o=>{o.target.src=N()},N=()=>"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMjAiIGN5PSIyMCIgcj0iMjAiIGZpbGw9IiNGMEYwRjAiLz4KPHBhdGggZD0iTTIwIDRDMjEuNjU2OSA0IDIzIDE5LjE3MTYgMjMgMjBDMjMgMjAuODI4NCAyMS42NTY5IDIyIDIwIDIyQzE4LjM0MzEgMjIgMTcgMjAuODI4NCAxNyAyMEMxNyAxOS4xNzE2IDE4LjM0MzEgNCAyMCA0WiIgZmlsbD0iI0M4QzhDOCIvPgo8cGF0aCBkPSJNMzIgMzJIOFYxNkgxNEwxNiAxMkgyNEwyNiAxNEgzMlYzMlpNMTAgMzBIMzBWMTZIMjhMMjYgMTRIMTZMMTQgMTZIMTBWMzBaIiBmaWxsPSIjQzhDOEM4Ii8+Cjwvc3ZnPg==",B=o=>new Date(o).toLocaleDateString("pt-BR",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"}),F=o=>o?"bg-success":"bg-warning text-dark",j=o=>{k.value=o,r.value.current_page=1,_()},z=o=>{o>=1&&o<=r.value.last_page&&(r.value.current_page=o,_())},S=K.debounce(_,500);return Q(()=>{_()}),(o,e)=>(n(),l("div",X,[s("div",ss,[s("div",es,[s("div",ts,[s("nav",os,[e[16]||(e[16]=s("div",{class:"d-flex"},[s("div",{class:"title"},"Gerenciar Comentários")],-1)),s("div",as,[s("div",ls,[s("button",{onClick:e[0]||(e[0]=t=>j("pending")),class:f(["btn",k.value==="pending"?"btn-warning":"btn-outline-warning"])},[e[11]||(e[11]=s("i",{class:"bi bi-clock-history me-2"},null,-1)),e[12]||(e[12]=d(" Pendentes ",-1)),b.value.pending>0?(n(),l("span",ns,a(b.value.pending),1)):u("",!0)],2),s("button",{onClick:e[1]||(e[1]=t=>j("approved")),class:f(["btn",k.value==="approved"?"btn-success":"btn-outline-success"])},[e[13]||(e[13]=s("i",{class:"bi bi-check-circle me-2"}
1,null,-1)),e[14]||(e[14]=d(" Aprovados ",-1)),b.value.approved>0?(n(),l("span",is,a(b.value.approved),1)):u("",!0)],2),s("button",{onClick:e[2]||(e[2]=t=>j("all")),class:f(["btn",k.value==="all"?"btn-primary":"btn-outline-primary"])},[...e[15]||(e[15]=[s("i",{class:"bi bi-collection me-2"},null,-1),d(" Todos ",-1)])],2)])])]),s("div",rs,[s("div",ds,[s("div",cs,[e[17]||(e[17]=s("span",{class:"input-group-text"},[s("i",{class:"bi bi-search"})],-1)),P(s("input",{"onUpdate:modelValue":e[3]||(e[3]=t=>g.value.search=t),type:"text",class:"form-control",placeholder:"Buscar comentários...",onInput:e[4]||(e[4]=(...t)=>Z(S)&&Z(S)(...t))},null,544),[[q,g.value.search]])])]),s("div",us,[P(s("select",{"onUpdate:modelValue":e[5]||(e[5]=t=>g.value.course=t),class:"form-select",onChange:_},[e[18]||(e[18]=s("option",{value:""},"Todos os cursos",-1)),(n(!0),l(A,null,E(w.value,t=>(n(),l("option",{key:t.id,value:t.id},a(t.title),9,ps))),128))],544),[[R,g.value.course]])]),s("div",vs,[P(s("select",{"onUpdate:modelValue":e[6]||(e[6]=t=>g.value.sort=t),class:"form-select",onChange:_},[...e[19]||(e[19]=[s("option",{value:"newest"},"Mais recentes",-1),s("option",{value:"oldest"},"Mais antigos",-1),s("option",{value:"most_liked"},"Mais curtidos",-1)])],544),[[R,g.value.sort]])])]),s("div",ms,[s("div",gs,[s("div",bs,[e[20]||(e[20]=s("i",{class:"bi bi-chat-dots text-primary",style:{"font-size":"2rem"}},null,-1)),s("h3",_s,a(b.value.total),1),e[21]||(e[21]=s("small",{class:"text-muted"},"Total",-1))])]),s("div",ys,[s("div",xs,[e[22]||(e[22]=s("i",{class:"bi bi-clock-history text-warning",style:{"font-size":"2rem"}},null,-1)),s("h3",hs,a(b.value.pending),1),e[23]||(e[23]=s("small",{class:"text-muted"},"Pendentes",-1))])]),s("div",ks,[s("div",fs,[e[24]||(e[24]=s("i",{class:"bi bi-check-circle text-success",style:{"font-size":"2rem"}},null,-1)),s("h3",Cs,a(b.value.approved),1),e[25]||(e[25]=s("small",{class:"text-muted"},"Aprovados",-1))])]),s("div",Ms,[s("div",ws,[e[26]||(e[26]=s("i",{class:"bi bi-hand-thumbs-up text-info",style:{"font-size":"2rem"}},null,-1)),s("h3",Is,a(b.value.total_likes),1),e[27]||(e[27]=s("small",{class:"text-muted"},"Curtidas",-1))])])]),D.value?(n(),l("div",As,[...e[28]||(e[28]=[s("div",{class:"spinner-border text-primary",role:"status"},[s("span",{class:"visually-hidden"},"Carregando...")],-1),s("p",{class:"text-muted mt-2"},"Carregando comentários...",-1),s("small",{class:"text-muted"},"Isso pode levar alguns segundos",-1)])])):(n(),l("div",Es,[h.value.length===0?(n(),l("div",Ds,[e[29]||(e[29]=s("i",{class:"bi bi-chat-square-text text-muted",style:{"font-size":"4rem"}},null,-1)),s("h4",Ns,a(k.value==="pending"?"Nenhum comentário pendente":"Nenhum comentário encontrado"),1),e[30]||(e[30]=s("p",{class:"text-muted"},"Todos os comentários estão em dia!",-1))])):(n(),l("div",js,[(n(!0),l(A,null,E(h.value,t=>{var y,c;return n(),l("div",{key:t.id,class:"comment-card card mb-4"},[s("div",zs,[s("div",Ps,[s("div",Ts,[s("div",$s,[s("div",Bs,[s("img",{src:T(t.user),class:"rounded-circle me-3",style:{width:"40px",height:"40px","object-fit":"cover"},alt:t.user.name,onError:$},null,40,Ss),s("div",null,[s("h6",Zs,a(t.user.name),1),s("small",Rs,a(B(t.created_at)),1)])]),s("span",{class:f(["badge",F(t.is_approved)])},a(t.is_approved?"Aprovado":"Pendente"),3)]),s("div",Gs,[s("p",Ls,a(t.content),1),t.deleted_at?(n(),l("small",Os,[...e[31]||(e[31]=[s("i",{class:"bi bi-trash"},null,-1),d(" Comentário removido pelo usuário ",-1)])])):u("",!0)]),s("div",Vs,[s("span",Ws,[e[32]||(e[32]=s("i",{class:"bi bi-hand-thumbs-up me-1"},null,-1)),d(" "+a(t.likes_count)+" curtidas ",1)]),s("span",Ys,[e[33]||(e[33]=s("i",{class:"bi bi-chat me-1"},null,-1)),d(" "+a(t.replies_count)+" respostas ",1)]),t.lesson?(n(),l("span",Fs,[e[34]||(e[34]=s("i",{class:"bi bi-play-btn me-1"},null,-1)),d(" Aula: "+a(((y=t.lesson)==null?void 0:y.title)||"Aula não encontrada"),1)])):u("",!0)]),t.replies&&t.replies.length?(n(),l("div",Us,[e[35]||(e[35]=s("h6",{class:"mb-2"},"Respostas:",-1)),(n(!0),l(A,null,E(t.replies,i=>(n(),l("div",{key:i.id,class:"reply-card card mb-2"},[s("div",Hs,[s("div",Qs,[s("img",{src:T(i.user),class:"rounded-circle me-2",style:{width:"30px",height:"30px","object-fit":"cover"}
1,alt:i.user.name,onError:$},null,40,qs),s("div",Js,[s("strong",null,a(i.user.name),1),s("small",Ks,a(B(i.created_at)),1),s("p",Xs,a(i.content),1)]),s("span",se,a(i.is_approved?"Aprovado":"Pendente"),1)])])]))),128))])):u("",!0)]),s("div",ee,[s("div",te,[e[42]||(e[42]=s("h6",{class:"mb-3"},"Ações:",-1)),s("div",oe,[e[36]||(e[36]=s("small",{class:"text-muted d-block"},"Curso:",-1)),s("strong",null,a(((c=t.course)==null?void 0:c.title)||"Curso não encontrado"),1)]),t.lesson?(n(),l("div",ae,[e[37]||(e[37]=s("small",{class:"text-muted d-block"},"Aula:",-1)),s("strong",null,a(t.lesson.title),1)])):u("",!0),s("div",le,[t.is_approved?u("",!0):(n(),l("button",{key:0,onClick:i=>L(t),class:"btn btn-success btn-sm",disabled:m.value},[e[38]||(e[38]=s("i",{class:"bi bi-check-circle me-1"},null,-1)),d(" "+a(m.value?"Processando...":"Aprovar"),1)],8,ne)),t.is_approved?(n(),l("button",{key:1,onClick:i=>O(t),class:"btn btn-warning btn-sm",disabled:m.value},[e[39]||(e[39]=s("i",{class:"bi bi-x-circle me-1"},null,-1)),d(" "+a(m.value?"Processando...":"Reprovar"),1)],8,ie)):u("",!0),s("button",{onClick:i=>Y(t),class:"btn btn-outline-primary btn-sm"},[...e[40]||(e[40]=[s("i",{class:"bi bi-eye me-1"},null,-1),d(" Ver no Contexto ",-1)])],8,re),s("button",{onClick:i=>V(t),class:"btn btn-outline-danger btn-sm",disabled:m.value},[...e[41]||(e[41]=[s("i",{class:"bi bi-trash me-1"},null,-1),d(" Excluir ",-1)])],8,de)])])])])])])}),128))])),r.value.last_page>1?(n(),l("nav",ce,[s("ul",ue,[s("li",{class:f(["page-item",{disabled:r.value.current_page===1}])},[s("button",{class:"page-link",onClick:e[7]||(e[7]=t=>z(r.value.current_page-1))},[...e[43]||(e[43]=[s("i",{class:"bi bi-chevron-left"},null,-1)])])],2),(n(!0),l(A,null,E(r.value.last_page,t=>(n(),l("li",{key:t,class:f(["page-item",{active:t===r.value.current_page}])},[s("button",{class:"page-link",onClick:y=>z(t)},a(t),9,pe)],2))),128)),s("li",{class:f(["page-item",{disabled:r.value.current_page===r.value.last_page}])},[s("button",{class:"page-link",onClick:e[8]||(e[8]=t=>z(r.value.current_page+1))},[...e[44]||(e[44]=[s("i",{class:"bi bi-chevron-right"},null,-1)])])],2)])])):u("",!0)]))])])]),x.value?(n(),l("div",ve,[s("div",me,[s("div",ge,[s("div",be,[e[45]||(e[45]=s("h5",{class:"modal-title"},"Confirmar Exclusão",-1)),s("button",{type:"button",class:"btn-close",onClick:e[9]||(e[9]=t=>x.value=null)})]),s("div",_e,[s("p",null,[e[46]||(e[46]=d("Tem certeza que deseja excluir o comentário de ",-1)),s("strong",null,a(x.value.user.name),1),e[47]||(e[47]=d("?",-1))]),s("p",ye,a(x.value.content),1),e[48]||(e[48]=s("p",{class:"text-danger"},[s("i",{class:"bi bi-exclamation-triangle"}),d(" Esta ação não pode ser desfeita. Todas as respostas também serão excluÃdas. ")],-1))]),s("div",xe,[s("button",{type:"button",class:"btn btn-secondary",onClick:e[10]||(e[10]=t=>x.value=null)}," Cancelar "),s("button",{type:"button",class:"btn btn-danger",onClick:W,disabled:M.value},[M.value?(n(),l("span",ke)):u("",!0),d(" "+a(M.value?"Excluindo...":"Excluir Comentário"),1)],8,he)])])])])):u("",!0)]))}},Ie=U(fe,[["__scopeId","data-v-0cffcdfa"]]);export{Ie 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.