package com.erp.audit.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.Builder;
import java.time.LocalDateTime;

/**
 * 合规审计报告
 */
@Data
@Builder
@TableName("compliance_report")
public class ComplianceReport {

    @TableId(type = IdType.AUTO)
    private Long id;

    /** 报告编号 */
    private String reportNo;

    /** 报告类型：DAILY/WEEKLY/MONTHLY/QUARTERLY/ANNUAL/CUSTOM */
    private String reportType;

    /** 报告名称 */
    private String reportName;

    /** 租户ID */
    private Long tenantId;

    /** 审计开始时间 */
    private LocalDateTime startTime;

    /** 审计结束时间 */
    private LocalDateTime endTime;

    /** 审计范围(JSON) */
    private String auditScope;

    /** 审计结论：PASS/FAIL/WARNING */
    private String auditConclusion;

    /** 问题数量 */
    private Integer issueCount;

    /** 高风险问题数 */
    private Integer highRiskCount;

    /** 中风险问题数 */
    private Integer mediumRiskCount;

    /** 低风险问题数 */
    private Integer lowRiskCount;

    /** 报告状态：DRAFT/GENERATED/DISTRIBUTED/ARCHIVED */
    private String reportStatus;

    /** 报告文件路径 */
    private String filePath;

    /** 报告内容(JSON) */
    private String contentJson;

    /** 生成人 */
    private String generatedBy;

    /** 审核人 */
    private String reviewedBy;

    /** 审核时间 */
    private LocalDateTime reviewedAt;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdAt;

    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;
}
