import { apiClient } from '@/lib/api/client'; import { buildQuery, type PaginatedResult } from '@/lib/api/types'; export type FaturaStatus = 'pendente' | 'pago' | 'atrasado' | 'cancelado'; /** Espelha o model `tenant_faturas`. */ export interface Fatura { id: string; tenant_id: string; referencia: string; valor: string; vencimento: string; pago_em: string | null; status: FaturaStatus; alerta_enviado_em: string | null; criado_em: string; } /** `GET /master/faturas` inclui um resumo do tenant em cada item. */ export interface FaturaListItem extends Fatura { tenant: { id: string; razao_social: string }; } export interface ListFaturasParams { status?: FaturaStatus; tenant_id?: string; referencia?: string; page?: number; limit?: number; } export interface GerarFaturasMesResult { referencia: string; criadas: number; ignoradas: number; } export interface AtualizarAtrasadasResult { atualizadas: number; tenants_afetados: number; } export function listFaturas(params: ListFaturasParams) { return apiClient.get>(`/master/faturas${buildQuery(params)}`); } export function gerarFaturasMes(referencia?: string) { return apiClient.post('/master/faturas/gerar-mes', referencia ? { referencia } : {}); } export function marcarFaturaPaga(id: string) { return apiClient.patch(`/master/faturas/${id}/marcar-pago`); } export function atualizarFaturasAtrasadas() { return apiClient.post('/master/faturas/atualizar-atrasadas'); }