package com.bonus.material.codeCollection.domain;

import com.bonus.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 机具信息实体类，对应数据库表 ws_ma_info。
 * 用于记录每台机具的基础信息、检修信息、检验情况等。
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WsMaInfo {

    /**
     * 主键，自增ID
     */
    private Integer id;
    /**
     * 父类id
     */
    private Integer parentId;

    /**
     * 机具名称，如“电焊机”、“搅拌机”
     */
    @Excel(name = "设备类型")
    private String maName;

    /**
     * 机具型号，例如“WX-3000”
     */
    @Excel(name = "规格型号")
    private String maModel;

    /**
     * 机具编号，企业内部唯一标识编号
     */
    @Excel(name = "设备编号")
    private String maCode;

    /**
     * 供应商/生产厂家名称
     */
    private String supplier;

    /**
     * 本次检验时间，格式建议为 yyyy-MM-dd
     */
    @Excel(name = "本次检验时间")
    private String thisCheckTime;

    /**
     * 下次检验时间，格式建议为 yyyy-MM-dd
     */
    @Excel(name = "下次检验时间")
    private String nextCheckTime;

    /**
     * 检修员姓名，表示最近一次负责检修的人员
     */
    @Excel(name = "检修员")
    private String repairMan;

    /**
     * 检验员姓名，表示本次设备检验的执行人员
     */
    @Excel(name = "检验员")
    private String checkMan;

    /**
     * 联系方式（通常为检修员或检验员电话）
     */
    private String phone;

    /**
     * 检验结论，例如“合格”、“不合格”、“需维修”
     */
    private String result;

    /**
     * 类型标识，默认 "1"，可扩展为不同类型标识（如 "1": 自有设备，"2": 租赁设备）
     */
    private String type;

    /**
     * 机具的关联ID，可用于关联其它系统或模型表
     */
    private String modelId;

    /**
     * 是否有效标志，默认 "1" 表示有效；"0" 表示已作废/逻辑删除
     */
    private String isActive;

    /**
     * 最后操作用户（更新人），记录最后修改记录的用户标识或姓名
     */
    private String optUser;

    /**
     * 最后更新时间，建议格式 yyyy-MM-dd HH:mm:ss
     */
    private String optTime;

    /**
     * 编码集合
     */
    private List<String> maCodeList;

    /**
     * 二维码
     */
    private String qrCode;

    /**
     * 关键字
     */
    private String keyWord;

    @ApiModelProperty(value = "开始时间")
    private String startTime;

    @ApiModelProperty(value = "结束时间")
    private String endTime;

    private Long deviceTypeId;
    private Long deviceModelId;
}
