package org.jeecg.modules.adweb.workflow.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.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * @Description: adweb_execute_node @Author: chenpeiqing @Date: 2025-03-21 @Version: V1.0
 */
@Data
@TableName("adweb_execute_node")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(description = "adweb_execute_node")
public class ExecuteNode implements Serializable {
  private static final long serialVersionUID = 1L;

  /** id */
  @TableId(type = IdType.AUTO)
  @Schema(description = "id")
  private Integer id;

  /** 1代表模板，2代表流程 */
  @Excel(name = "1代表模板，2代表流程", width = 15)
  @Schema(description = "1代表模板，2代表流程")
  private Integer type;

  /** 营销方案id或站点id */
  @Excel(name = "营销方案id或站点id", width = 15)
  @Schema(description = "营销方案id或站点id")
  private String hostId;

  /** 节点类型，1站点流程节点、2SEO流程节点 */
  @Excel(name = "节点类型，1站点流程节点、2SEO流程节点", width = 15)
  @Schema(description = "节点类型，1站点流程节点、2SEO流程节点")
  private Integer nodeType;

  /** 节点名称 */
  @Excel(name = "节点名称", width = 15)
  @Schema(description = "节点名称")
  private String name;

  /** 时间描述 */
  @Excel(name = "时间描述", width = 15)
  @Schema(description = "时间描述")
  private String timeDesc;

  /** 节点描述 */
  @Excel(name = "节点描述", width = 15)
  @Schema(description = "节点描述")
  private String description;

  /** 比重，总和为100 */
  @Excel(name = "比重，总和为1", width = 15)
  @Schema(description = "比重，总和为100")
  private Integer proportion;

  /** 排序 */
  @Excel(name = "排序", width = 15)
  @Schema(description = "排序")
  private Double sort;

  /** 1表示完成，0表示未完成，模板的节点此列可以为null */
  @Excel(name = "1表示完成，0表示未完成，模板的节点此列可以为null", width = 15)
  @Schema(description = "1表示完成，0表示未完成，模板的节点此列可以为null")
  private Integer status;

  /** 完成时间 */
  @Excel(name = "完成时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
  @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  @Schema(description = "完成时间")
  private Date finTime;

  /** 完成人 */
  @Excel(name = "完成人", width = 15)
  @Schema(description = "完成人")
  private String finUid;

  /** 0未删除，1已删除 */
  @Excel(name = "0未删除，1已删除", width = 15)
  @Schema(description = "0未删除，1已删除")
  private Integer delFlag;

  /** 创建时间 */
  @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  @Schema(description = "创建时间")
  private Date createTime;

  private String historyId;

  // 步骤数量
  @TableField(exist = false)
  private Integer stepCount;

  // 审核人名称
  @TableField(exist = false)
  private String finName;
}
