20 lines
680 B
TypeScript
20 lines
680 B
TypeScript
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 });
|
|
}
|