package dev.lions.unionflow.server.api.dto.admin;

import dev.lions.unionflow.server.api.dto.base.BaseDTO;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;

/**
 * DTO pour les logs d'audit
 * Représente une entrée dans le journal d'audit du système
 *
 * @author UnionFlow Team
 * @version 1.0
 * @since 2025-01-17
 */
@Getter
@Setter
public class AuditLogDTO extends BaseDTO implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /** Type d'action effectuée */
    private String typeAction;
    
    /** Sévérité de l'événement (SUCCESS, INFO, WARNING, ERROR, CRITICAL) */
    private String severite;
    
    /** Nom de l'utilisateur qui a effectué l'action */
    private String utilisateur;
    
    /** Rôle de l'utilisateur */
    private String role;
    
    /** Module concerné (AUTH, MEMBRES, COTISATIONS, EVENTS, etc.) */
    private String module;
    
    /** Description de l'action */
    private String description;
    
    /** Détails supplémentaires */
    private String details;
    
    /** Adresse IP de l'utilisateur */
    private String ipAddress;
    
    /** User-Agent du navigateur */
    private String userAgent;
    
    /** ID de session */
    private String sessionId;
    
    /** Date et heure de l'événement */
    private LocalDateTime dateHeure;
    
    /** Données avant modification (pour les actions de modification) */
    private String donneesAvant;
    
    /** Données après modification (pour les actions de modification) */
    private String donneesApres;
    
    /** ID de l'entité concernée (membre, cotisation, etc.) */
    private String entiteId;
    
    /** Type d'entité concernée */
    private String entiteType;
}

