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 io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import com.bonus.common.core.web.domain.BaseEntity;

import javax.validation.constraints.NotNull;

/**
 * 留样机留样清单对象 kitchen_sample_dishes_record
 * 
 * @author xsheng
 * @date 2025-06-16
 */


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

    /** 留样清单id */
    private Long recordId;

    /** 餐次id */
    @Excel(name = "餐次id")
    @ApiModelProperty(value = "餐次id")
    private Long mealtimeType;

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

    /** 店铺档口id */
    @Excel(name = "店铺档口id")
    @ApiModelProperty(value = "店铺档口id")
    private Long stallId;

    /** 食堂编号 */
    @Excel(name = "食堂编号")
    @ApiModelProperty(value = "食堂编号")
    private Long canteenId;

    /** 菜品id */
    @Excel(name = "菜品id")
    @ApiModelProperty(value = "菜品id")
    private Long dishesId;

    /** 留样菜品图片url(仅一张) */
    @Excel(name = "留样菜品图片url(仅一张)")
    @ApiModelProperty(value = "留样菜品图片url(仅一张)")
    private String imageUrl;

    /** 设备编号 */
    @Excel(name = "设备编号")
    @ApiModelProperty(value = "设备编号")
    private String machineNo;

    /** 设备sn */
    @Excel(name = "设备sn")
    @ApiModelProperty(value = "设备sn")
    private String machineSn;

    /** 留样重量 */
    @Excel(name = "留样重量")
    @ApiModelProperty(value = "留样重量")
    private Long sampleWeight;

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

    /** 厨师id */
    @Excel(name = "厨师id")
    @ApiModelProperty(value = "厨师id")
    private Long chefId;

    /** 留样员工id */
    @Excel(name = "留样员工id")
    @ApiModelProperty(value = "留样员工id")
    private String sampleSaveStaffId;

    /** 取样员工id */
    @Excel(name = "取样员工id")
    @ApiModelProperty(value = "取样员工id")
    private Long sampleTakeStaffId;

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

    /** 进入留样柜时间 */
    @ApiModelProperty(value = "进入留样柜时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "进入留样柜时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date enterCabinetTime;

    /** 离开留样柜时间 */
    @ApiModelProperty(value = "离开留样柜时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "离开留样柜时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date leaveCabinetTime;

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

    /** 重量是否达到标准 1是2否 */
    @Excel(name = "重量是否达到标准 1是2否")
    @ApiModelProperty(value = "重量是否达到标准 1是2否")
    private Integer weightStandard;

    /** 有效时长 */
    @Excel(name = "有效时长")
    @ApiModelProperty(value = "有效时长")
    private Long validDuration;

    /** 留样时长是否达到标准 1是2否 */
    @Excel(name = "留样时长是否达到标准 1是2否")
    @ApiModelProperty(value = "留样时长是否达到标准 1是2否")
    private Integer durationStandard;

    /** 样品状态 */
    @Excel(name = "样品状态")
    @ApiModelProperty(value = "样品状态")
    private Long status;

    /** 柜门编号 */
    @Excel(name = "柜门编号")
    @ApiModelProperty(value = "柜门编号")
    private Long cabinetNo;

    /** 存放状态 1未入柜 2在柜 3离柜 4超时自动离柜 */
    @Excel(name = "存放状态 1未入柜 2在柜 3离柜 4超时自动离柜")
    @ApiModelProperty(value = "存放状态 1未入柜 2在柜 3离柜 4超时自动离柜")
    private Integer saveStatus;

    @Excel(name = "存放状态 1未入柜 2在柜 3离柜 4超时自动离柜")
    @ApiModelProperty(value = "存放状态 1未入柜 2在柜 3离柜 4超时自动离柜")
    private String saveStatusName;

    @ApiModelProperty(value = "查询类型 1 今日 2 昨日 3 历史")
    @NotNull(message = "查询类型不能为空")
    private Integer searchType;

    @ApiModelProperty(value = "违规状态  重量未达标  时长未达标  正常")
    private String illegalStatusName;

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

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

    @ApiModelProperty("食堂名称")
    private String canteenName;

    @ApiModelProperty("档口名称")
    private String stallName;

    @ApiModelProperty("菜品名称")
    private String dishesName;

    @ApiModelProperty("设备名称")
    private String deviceName;

    @ApiModelProperty("留样人")
    private String userName;
}
