package com.ktg.iscs.domain.vo.hardwareApi;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ktg.common.core.domain.model.BaseBean;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * 作业票对象 is_job_ticket
 *
 * @author cgj
 * @date 2024-10-18
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class JobTicketVO extends BaseBean
{
    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "作业票ID")
    private Long ticketId;

    @ApiModelProperty(value = "作业票编号")
    private String ticketCode;

    @ApiModelProperty(value = "作业票名称")
    private String ticketName;

    @ApiModelProperty(value = "所属车间ID")
    private Long workshopId;

    @ApiModelProperty(value = "所属区域ID")
    private Long workareaId;

    @ApiModelProperty(value = "所属SOPID")
    private Long sopId;

    @ApiModelProperty(value = "作业票类型")
    private String ticketType;

    @ApiModelProperty(value = "作业票详情")
    private String ticketContent;

    @ApiModelProperty(value = "作业票状态(0未开始 1待上锁 2进行中 3待解锁 4已结束)")
    private String ticketStatus;

    @ApiModelProperty(value = "作业票开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date ticketStartTime;

    @ApiModelProperty(value = "作业票结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date ticketEndTime;

    @ApiModelProperty(value = "删除标志（0代表存在 2代表删除）")
    private String delFlag;

    @ApiModelProperty(value = "作业票钥匙对象")
    private List<JobTicketKeyVO> ticketKeyVOList;

    @ApiModelProperty(value = "作业票关联锁对象")
    private List<JobTicketLockVO> ticketLockVOList;

    @ApiModelProperty(value = "作业票锁具对象")
    private List<JobTicketLocksetVO> ticketLocksetVOList;

    @ApiModelProperty(value = "作业票关联用户")
    private List<JobTicketUserVO> ticketUserVOList;

    @ApiModelProperty(value = "作业票关联隔离点")
    private List<JobTicketPointsVO> ticketPointsVOList;

    @ApiModelProperty(value = "解锁时禁止解除的点位")
    private Set<JobTicketPointsVO> noUnlockTicketPointsVOSet;

}
