import { NextResponse } from "next/server" import { prisma } from "@/lib/prisma" import { assertAdminSession } from "@/lib/auth-server" export const runtime = "nodejs" export async function GET() { const session = await assertAdminSession() if (!session) return NextResponse.json({ error: "Não autorizado" }, { status: 401 }) const companies = await prisma.company.findMany({ orderBy: { name: "asc" }, }) return NextResponse.json({ companies }) } export async function POST(request: Request) { const session = await assertAdminSession() if (!session) return NextResponse.json({ error: "Não autorizado" }, { status: 401 }) const body = (await request.json()) as Partial<{ name: string slug: string cnpj: string | null domain: string | null phone: string | null description: string | null address: string | null }> const { name, slug, cnpj, domain, phone, description, address } = body ?? {} if (!name || !slug) { return NextResponse.json({ error: "Nome e slug são obrigatórios" }, { status: 400 }) } try { const company = await prisma.company.create({ data: { tenantId: session.user.tenantId ?? "tenant-atlas", name: String(name), slug: String(slug), // Campos opcionais (isAvulso, contractedHoursPerMonth) podem ser definidos via PATCH posteriormente. cnpj: cnpj ? String(cnpj) : null, domain: domain ? String(domain) : null, phone: phone ? String(phone) : null, description: description ? String(description) : null, address: address ? String(address) : null, }, }) return NextResponse.json({ company }) } catch (error) { console.error("Failed to create company", error) return NextResponse.json({ error: "Falha ao criar empresa" }, { status: 500 }) } }