import Link from "next/link";import { PanelShell } from "@/components/panel-shell";import { requireTenantAdmin } from "@/lib/auth";import { db } from "@/lib/db";import { archiveCatalogItem,setCatalogItemStatus } from "@/lib/actions";import { CatalogImageUpload } from "@/components/catalog-image-upload";
const brl=(v:number|null)=>v==null?"A consultar":new Intl.NumberFormat("pt-BR",{style:"currency",currency:"BRL"}).format(v/100);
export default async function Services({searchParams}:{searchParams:Promise<{servico?:string}>}){const {tenant}=await requireTenantAdmin();const updated=(await searchParams).servico==="alterado";const rows=await db.service.findMany({where:{tenantId:tenant.id,deletedAt:null},include:{category:true,images:{where:{deletedAt:null},take:3,orderBy:{sortOrder:"asc"}}},orderBy:{createdAt:"desc"}});return <PanelShell eyebrow="CATÁLOGO" title="Serviços" activePath="/painel/servicos">{updated&&<div className="form-card"><strong>Serviço atualizado com sucesso.</strong></div>}<div className="module-toolbar"><p>{rows.length} serviço(s)</p><Link className="button" href="/painel/servicos/novo">Novo serviço <span>→</span></Link></div>{rows.length?<div className="catalog-table">{rows.map(service=><article className="form-card" key={service.id}><div className="card-head"><div>{service.images[0]&&<div className="catalog-thumb" style={{backgroundImage:`url(${service.images[0].url})`}}/>}<h2>{service.name}</h2><small>{service.category?.name??"Sem categoria"} · {brl(service.priceCents)} · {service.active?"Publicado":"Rascunho"}</small></div><Link className="button" href={`/painel/servicos/${service.id}/editar`}>Editar <span>→</span></Link></div><div className="row-actions"><CatalogImageUpload type="service" id={service.id} images={service.images.map(image=>({id:image.id,url:image.url,sortOrder:image.sortOrder}))}/><form action={setCatalogItemStatus}><input type="hidden" name="type" value="service"/><input type="hidden" name="id" value={service.id}/><input type="hidden" name="active" value={String(!service.active)}/><button className="link-button">{service.active?"Desativar":"Publicar"}</button></form><form action={archiveCatalogItem}><input type="hidden" name="type" value="service"/><input type="hidden" name="id" value={service.id}/><button className="link-button danger">Arquivar</button></form></div></article>)}</div>:<div className="module-empty"><h2>Apresente seus serviços</h2><Link className="button" href="/painel/servicos/novo">Cadastrar serviço <span>→</span></Link></div>}</PanelShell>}
