import { apiClient } from '@/lib/api/client'; /** Espelha o model `planos` (`prisma/schema.prisma`). */ export interface Plano { id: string; nome: string; descricao: string | null; valor_mensal: string; limite_customers: number | null; limite_usuarios: number | null; limite_instancias_whatsapp: number; ativo: boolean; criado_em: string; } /** Espelha `CreatePlanoDto`/`UpdatePlanoDto` (`src/modules/planos/dto/`). */ export interface PlanoInput { nome: string; descricao?: string; valor_mensal: number; limite_customers?: number | null; limite_usuarios?: number | null; limite_instancias_whatsapp?: number; } /** `DELETE /master/planos/:id` — o backend converte em desativação se o plano estiver em uso. */ export interface DeletePlanoResult { deletado: boolean; desativado: boolean; plano: Plano | null; } export function listPlanos(params?: { ativo?: boolean }) { const qs = new URLSearchParams(); if (params?.ativo !== undefined) qs.set('ativo', String(params.ativo)); const query = qs.toString(); return apiClient.get(`/master/planos${query ? `?${query}` : ''}`); } export function createPlano(input: PlanoInput) { return apiClient.post('/master/planos', input); } export function updatePlano(id: string, input: Partial & { ativo?: boolean }) { return apiClient.put(`/master/planos/${id}`, input); } export function deletePlano(id: string) { return apiClient.delete(`/master/planos/${id}`); }