package com.chinaweal.aiccs.aiccs.business.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 *
 * </p>
 *
 * @author quebh
 * @since 2023-05-04
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "xr_activity")
@ApiModel(value = "XrActivity对象", description = "")
public class XrActivity extends SuperEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 流程记录 activity_id
     */
    @ApiModelProperty(value = "流程记录 activity_id")
    @TableId(value = "activity_id", type = IdType.ASSIGN_UUID)
    private String activityId;

    /**
     * 业务待办主键 task_ID
     */
    @ApiModelProperty(value = "业务待办主键 task_ID")
    @TableField("task_id")
    private String taskId;

    /**
     * 环节类型link_Type
     * handle:经办、
     * examine:审核、
     * approve:审批、
     * end:正常结束流程、
     * nullify:经办结束流程
     * examineFinish:审核不同意，结束流程
     * approveFinish:审批不同意，结束流程
     * clueReturn: 回退流程
     */
    @ApiModelProperty(value = "环节类型link_Type")
    @TableField("link_type")
    private String linkType;

    /**
     * 环节名称
     */
    @ApiModelProperty(value = "环节名称")
    @TableField("link_name")
    private String linkName;

    /**
     * 环节状态 link_Status 0-环节完成，1-环节正在进行
     */
    @ApiModelProperty(value = "环节状态 link_Status 0-环节完成，1-环节正在进行")
    @TableField("link_status")
    private String linkStatus;

    /**
     * 环节状态名称 ”0“环节完成，”1“环节正在进行 link_Status_name
     */
    @ApiModelProperty(value = "环节状态名称 ”0“环节完成，”1“环节正在进行 link_Status_name")
    @TableField("link_status_name")
    private String linkStatusName;

    /**
     * 用户id user_id
     */
    @ApiModelProperty(value = "用户id user_id")
    @TableField("user_id")
    private String userId;

    /**
     * 部门id
     */
    @ApiModelProperty(value = "部门id ")
    @TableField("dep_id")
    private String depId;

    /**
     * 待办条件 格式：1.部门code:权限标识（例如440100:taskAuth） 2.userId
     */
    @ApiModelProperty(value = "待办条件 格式：1.部门code:权限标识（例如440100:taskAuth） 2.userId")
    @TableField("ident")
    private String ident;

    /**
     * 逻辑删除 ”0“ 正常 ”1“已删除
     */
    @ApiModelProperty(value = "逻辑删除 ”0“ 正常 ”1“已删除")
    @TableField("status")
    private String status;

    /**
     * 开始时间 begin_time
     */
    @ApiModelProperty(value = "开始时间 begin_time")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("begin_time")
    private LocalDateTime beginTime;

    /**
     * 结束时间 end_time
     */
    @ApiModelProperty(value = "结束时间 end_time")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("end_time")
    private LocalDateTime endTime;

    /**
     * 操作人 open_Name
     */
    @ApiModelProperty(value = "操作人 open_Name")
    @TableField("open_name")
    private String openName;

    /**
     * 是否可操作（0不可操作）
     */
    @ApiModelProperty(value = "是否可操作（0不可操作）")
    @TableField("is_sign")
    private String isSign;

    /**
     * 操作人id open_id
     */
    @ApiModelProperty(value = "操作人 open_id")
    @TableField("open_id")
    private String openId;
}
