package com.bonus.material.devchange.domain;

import lombok.Data;

import java.util.Date;

/**
 * 设备文件实体类
 * 对应数据库表：ma_dev_file
 * 功能描述：存储设备相关的图片及附件信息，如装备主图、详情图、合格证等文件的元数据
 */
@Data
public class MaDevFile {
    /**
     * 主键ID
     * 数据库字段：id
     * 特性：自增唯一，无业务含义，仅用于数据唯一标识
     */
    private Integer id;

    /**
     * 设备ID
     * 数据库字段：ma_id
     * 关联关系：外键关联设备表的主键，标识当前文件属于哪个设备
     * 可为null：允许存在未关联设备的文件（特殊业务场景）
     */
    private Integer maId;

    /**
     * 文件类型编码
     * 数据库字段：file_type
     * 取值范围：1-装备主图、2-装备详情图、3-合格证、4-发票、5-检验报告
     * 建议使用DevFileType枚举进行类型管理，避免硬编码
     */
    private Integer fileType;

    /**
     * 文件名称
     * 数据库字段：file_name
     * 长度限制：最大120字符
     * 用途：存储文件的原始名称，用于前端展示
     */
    private String fileName;

    /**
     * 文件存储路径
     * 数据库字段：file_url
     * 长度限制：最大255字符
     * 格式：通常为相对路径或完整URL，用于访问实际文件资源
     */
    private String fileUrl;

    /**
     * 创建人ID
     * 数据库字段：creator
     * 关联关系：关联用户表的主键，记录文件的上传者
     */
    private Integer creator;

    /**
     * 创建时间
     * 数据库字段：create_time
     * 特性：通常为文件上传成功时的系统时间，不可手动修改
     */
    private Date createTime;

    /**
     * 数据状态标识
     * 数据库字段：is_active
     * 取值说明：1-启用（正常显示）、0-删除（逻辑删除，不显示）
     * 默认值：1（新创建的文件默认为启用状态）
     */
    private Integer isActive = 1;
}