package com.bonus.canteen.core.kitchen.domain;

import java.time.LocalDateTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.bonus.common.core.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import com.bonus.common.core.web.domain.BaseEntity;

/**
 * 厨房员工违规报警对象 kitchen_staff_illegal_warning
 * 
 * @author xsheng
 * @date 2025-06-16
 */


@Data
@ToString
public class KitchenStaffIllegalWarning extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 违规记录id */
    private Long illegalWarningId;

    /** 被记录员工id */
    @Excel(name = "被记录员工id")
    @ApiModelProperty(value = "被记录员工id")
    private Long staffId;

    /** 设备id */
    @Excel(name = "设备id")
    @ApiModelProperty(value = "设备id")
    private Long deviceId;

    /** 记录照片地址 */
    @Excel(name = "记录照片地址")
    @ApiModelProperty(value = "记录照片地址")
    private String imgUrl;

    /** 记录内容 */
    @Excel(name = "记录内容")
    @ApiModelProperty(value = "记录内容")
    private String recordDesc;

    /** 记录时间 */
    @ApiModelProperty(value = "记录时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date recordTime;

    /** 违规报警类型（1-违规 2-报警） */
    @Excel(name = "违规报警类型", readConverterExp = "1=-违规,2=-报警")
    private Integer illegalWarningType;

    /** 处理状态（1-已处理 2-未处理 3-系统误报） */
    @Excel(name = "处理状态", readConverterExp = "1=-已处理,2=-未处理,3=-系统误报")
    private Integer handleState;

    /** 处理时间 */
    @ApiModelProperty(value = "处理时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date handleTime;

    /** 处理人 */
    @Excel(name = "处理人")
    @ApiModelProperty(value = "处理人")
    private String handlerPerson;

    /** 通知状态（1-已通知 2-未通知） */
    @Excel(name = "通知状态", readConverterExp = "1=-已通知,2=-未通知")
    private Integer notifyState;

    /** 通知内容 */
    @Excel(name = "通知内容")
    @ApiModelProperty(value = "通知内容")
    private String notifyDesc;

    /** 告警类型（1-未戴口罩 2-垃圾桶未盖报警 3-发现老鼠 4-未穿厨师服 5-未戴厨师帽 6-未戴手套 7-抽烟 8-打电话 9-地面巡检 10-设备归位 11-未授权人员进入 13-动火离人） */
    @Excel(name = "告警类型", readConverterExp = "1=-未戴口罩,2=-垃圾桶未盖报警,3=-发现老鼠,4=-未穿厨师服,5=-未戴厨师帽,6=-未戴手套,7=-抽烟,8=-打电话,9=-地面巡检,1=0-设备归位,1=1-未授权人员进入,1=3-动火离人")
    private Long alarmType;

    @ApiModelProperty("开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startDateTime;

    @ApiModelProperty("结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endDateTime;

    private String nickName;

    private Long userId;

    private String canteenName;

    @JsonIgnore
    private String encryptedSearchValue;
}
