package com.purui.prims.dscheduler.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.purui.prims.dscheduler.enums.Flag;
import com.purui.prims.dscheduler.enums.ProcessExecutionTypeEnum;
import com.purui.prims.dscheduler.enums.ReleaseState;
import lombok.Data;

import java.util.Date;
import java.util.List;
import java.util.Map;

/** process definition */
@Data
public class ProcessDefinition {

    // id
    private Integer id;

    // 编号
    private Long code;

    // 名称
    private String name;

    // 版本号
    private Integer version;

    // 发布状态 online/offline
    private ReleaseState releaseState;

    // 项目编号
    private Long projectCode;

    // 描述
    private String description;

    // 用户自定义参数
    private String globalParams;

    // 用户自定义参数列表
    private List<Property> globalParamList;

    // 用户自定义参数映射
    private Map<String, String> globalParamMap;

    // 创建时间
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    // 更新时间
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    // 是否生效 yes/no
    private Flag flag;

    // 创建人id
    private Integer userId;

    // 创建人名称
    private String userName;

    // 项目名称
    private String projectName;

    // 位置
    private String locations;

    // 计划发布状态 online/offline
    private ReleaseState scheduleReleaseState;

    // 超时告警(分钟)
    private Integer timeout;

    // 租户id
    private Integer tenantId;

    // 租户编号
    private String tenantCode;

    // 修改用户名
    private String modifyBy;

    // 告警分组id
    private Integer warningGroupId;

    // 执行类型
    private ProcessExecutionTypeEnum executionType;
}
