docs(todo): add TODOs for Prisma client/type sync and desktop TS notes; remove unused vars in companies create route

This commit is contained in:
Esdras Renan 2025-10-09 23:05:11 -03:00
parent b801ebd44f
commit c0228c0dad
2 changed files with 15 additions and 3 deletions

View file

@ -86,3 +86,17 @@
- Fixar versão do `convex-backend` (ao invés de `latest`) para releases mais controladas. - Fixar versão do `convex-backend` (ao invés de `latest`) para releases mais controladas.
- Substituir bindmount por imagens construídas no CI (tempo de deploy menor, reprodutibilidade). - Substituir bindmount por imagens construídas no CI (tempo de deploy menor, reprodutibilidade).
- Adicionar cache de dependências pnpm no container de build. - Adicionar cache de dependências pnpm no container de build.
## TODOs (próximos técnicos)
- Prisma Client desatualizado x schema (Company.isAvulso/contractedHoursPerMonth)
- Sintoma: Tipos gerados do Prisma não exibem os campos `isAvulso` e `contractedHoursPerMonth` em `CompanyCreateInput`/`CompanyUpdateInput`.
- Temporário: rotas `src/app/api/admin/companies/[id]/route.ts` e mapeamento em `src/app/admin/companies/page.tsx` possuem guardas/casts para compilar.
- Ação:
1. Rodar `pnpm prisma:generate` no mesmo ambiente de build/execução (VPS e local) para regenerar o client.
2. Confirmar que os campos aparecem nos tipos gerados.
3. Remover casts e `eslint-disable` do update; reintroduzir campos no `create` se desejado (com tipagem estrita).
4. Se ainda não existirem fisicamente na base, aplicar migração que adicione os campos ao modelo `Company`.
- Next TS x Desktop (plugin Keyring)
- Mantido `apps/desktop/**` no `tsconfig.exclude` para o typecheck do Next. Avaliar, em outro momento, ambient d.ts no desktop para editor.

View file

@ -22,15 +22,13 @@ export async function POST(request: Request) {
const body = (await request.json()) as Partial<{ const body = (await request.json()) as Partial<{
name: string name: string
slug: string slug: string
isAvulso: boolean
cnpj: string | null cnpj: string | null
domain: string | null domain: string | null
phone: string | null phone: string | null
description: string | null description: string | null
address: string | null address: string | null
contractedHoursPerMonth: number | string | null
}> }>
const { name, slug, isAvulso, cnpj, domain, phone, description, address, contractedHoursPerMonth } = body ?? {} const { name, slug, cnpj, domain, phone, description, address } = body ?? {}
if (!name || !slug) { if (!name || !slug) {
return NextResponse.json({ error: "Nome e slug são obrigatórios" }, { status: 400 }) return NextResponse.json({ error: "Nome e slug são obrigatórios" }, { status: 400 })
} }