package com.yuchen.saas.flow.api.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.nest.springwrap.core.mp.base.BaseEntity;

/**
 * <p>
 * 
 * </p>
 *
 * @author zhouhanwei
 * @since 2024-02-19
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("saas_flow_process")
@ApiModel(value="SaasFlowProcess对象", description="")
public class SaasFlowProcess extends BaseEntity {

    /**
     * 所属业务
     */
    @ApiModelProperty(name = "belongBusiness", value = "所属业务")
    private Long belongBusiness;
    /**
     * 客户id
     */
    @ApiModelProperty(name = "customerId", value = "客户id")
    private Long customerId;

    @ApiModelProperty(name = "projectId", value = "项目id")
    private Long projectId;
    /**
     * 表单流程标识
     */
    @ApiModelProperty(name = "formFlowCode", value = "表单流程标识")
    private String formFlowCode;

    //todo [{key:value},{key:value}]vl[]  后续看怎么定写个构建formFlowMark的方法,不管怎么定,创建的时候跟启动的时候调一样就行(不同的对象构建不同的formFlowMark,或者固定拼接)
    //创建时候园区id,停车场id,社区id这些应该是前端传进来的,启动的时候也是前端传进来的,审批只要启动跟创建匹配就行(如果创建归纳到审批流??那不得一个改变就得改审批流)
    @ApiModelProperty(name = "formFlowMark", value = "表单流程标识区分纬度(如园区id,停车场id,社区id,如组成树形结构取设置流程时节点的id)[{key:value},{key:value}]，" +
            "创建流程自己定义进来(如用来区分相同业务时不同园区或社区的审批流程),启动流程的对应着传进来,顺序跟创建的时候一致")
    private String formFlowMark;

   /* @ApiModelProperty(name = "formFlowMarkField", value = "表单流程标识区分纬度字段名称(记录下如parkId或parkingId)")
    private String formFlowMarkField;*/
    /**
     * 表单ID
     */
    @ApiModelProperty(name = "flowId", value = "表单ID")
    private String flowId;
    /**
     * 表单名称
     */
    @ApiModelProperty(name = "name", value = "表单名称")
    private String name;
    /**
     * 图标配置
     */
    @ApiModelProperty(name = "logo", value = "图标配置")
    private String logo;
    /**
     * 适用对象（1：所有用户，2：企业内部用户，3：管理端人员）
     */
    @ApiModelProperty(name = "applyObjectType", value = "适用对象（ 1：平台用户  2：组织管理员 3：组织员工）")
    private String applyObjectType;
    /**
     * 申请维度
     */
    @ApiModelProperty(name = "applyDimensionality", value = "申请维度")
    private String applyDimensionality;
    /**
     * 设置项
     */
    @ApiModelProperty(name = "settings", value = "设置项")
    private String settings;
    /**
     * 分组信息ID
     */
    @ApiModelProperty(name = "groupInfoId", value = "分组信息ID")
    private Long groupInfoId;
    /**
     * 表单设置内容
     */
    @ApiModelProperty(name = "formItems", value = "表单设置内容")
    private String formItems;
    /**
     * 流程设置内容
     */
    @ApiModelProperty(name = "process", value = "流程设置内容")
    private String process;

    @ApiModelProperty(name = "processCopy", value = "流程设置内容copy前端传进来不加工的")
    private String processCopy;
    /**
     * 备注
     */
    @ApiModelProperty(name = "remark", value = "备注")
    private String remark;
    private Integer sort;
    /**
     * 0 正常 1=隐藏
     */
    @ApiModelProperty(name = "hiddenFlag", value = "0 正常 1=隐藏")
    private Boolean hiddenFlag;
    /**
     * 0 开启审批流 1=停用审批流
     */
    @ApiModelProperty(name = "stopFlag", value = "0 开启审批流 1=停用审批流 ")
    private Boolean stopFlag;
    /**
     * 流程管理员
     */
    @ApiModelProperty(name = "adminId", value = "流程管理员")
    private String adminId;
    /**
     * 唯一性id
     */
    @ApiModelProperty(name = "uniqueId", value = "唯一性id")
    private String uniqueId;
    /**
     * 管理员
     */
    @ApiModelProperty(name = "admin", value = "管理员")
    private String admin;
    private String rangeShow;

    @ApiModelProperty(value = "更新人名字")
    private String updateOrgUserName;

}
