import { Injectable, Logger } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { AuditLog } from '../entities/audit-log.entity'; @Injectable() export class AuditLogService { private readonly logger = new Logger(AuditLogService.name); constructor( @InjectRepository(AuditLog) private auditLogRepository: Repository, ) {} async log(params: { userId: string; tenantId?: string; action: string; resourceType: string; resourceId?: string; details?: any; }): Promise { try { const entry = this.auditLogRepository.create({ userId: params.userId, tenantId: params.tenantId, action: params.action, resourceType: params.resourceType, resourceId: params.resourceId, details: params.details, }); await this.auditLogRepository.insert(entry); } catch (error) { this.logger.error(`Failed to write audit log: ${error.message}`); } } }