import { Prisma, PrismaClient } from '@prisma/client'; type AuditableClient = PrismaClient | Prisma.TransactionClient; export interface AuditLogParams { usuario_tipo: 'master' | 'tenant_user'; usuario_id?: string | null; tenant_id?: string | null; acao: string; entidade?: string; entidade_id?: string | null; detalhes?: Prisma.InputJsonValue; ip_origem?: string; } /** Grava uma linha em `audit_logs`. Passe o `tx` da transação em andamento para que a auditoria só valha se o resto da operação for confirmado junto. */ export function writeAuditLog(client: AuditableClient, params: AuditLogParams) { return client.audit_logs.create({ data: params }); }