package com.prolog.rdc.tms.model.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.framework.core.annotation.Column;
import com.prolog.framework.core.annotation.Id;
import com.prolog.framework.core.annotation.Table;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

@Data
@Table("tms_business_flow")
public class TmsBusinessFlowModel implements Serializable {
    private static final long serialVersionUID = 930914028809864645L;

    @Id
    @ApiModelProperty(value = "ID 主键")
    @Column(value = "id")
    private Long id;
    
    @ApiModelProperty(value = "流程名称")
    @Column(value = "flow_name")
    private String flowName;
    
    @ApiModelProperty(value = "流程类型 数据字典FLOW_TYPE：1承运商 2自有")
    @Column(value = "flow_type")
    private Integer flowType;

    @ApiModelProperty(value = "流程配置 数据字典FLOW_CONFIG：Add新增,AddCommit新增提交,Commit提交,CommitReview提交审核,Review审核," +
            "ReviewDispatch匹配唯一承运方自动调度,Dispatch调度,DispatchCheck调度后自动审核,Check调度审核,Appointment预约," +
            "ArrangeGoods理货,LoadUnLoad装卸,Scanning装车扫描,SendOff启运登记,ArriveConfirm送达确认")
    @Column(value = "flow_config")
    private String flowConfig;
    
    @ApiModelProperty(value = "企业ID")
    @Column(value = "enterprise_id")
    private Long enterpriseId;
    
    @ApiModelProperty(value = "企业名称")
    @Column(value = "enterprise_name")
    private String enterpriseName;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "创建时间")
    @Column(value = "createtime")
    private Date createtime;
    
    @ApiModelProperty(value = "创建人")
    @Column(value = "createperson")
    private String createperson;
    
    @ApiModelProperty(value = "修改时间")
    @Column(value = "updatetime")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updatetime;
    
    @ApiModelProperty(value = "修改人")
    @Column(value = "updateperson")
    private String updateperson;

    @ApiModelProperty(value = "流程优先级")
    @Column(value = "priority_level")
    private Integer priorityLevel;
}
