package com.fs.company.domain;

import java.time.LocalDateTime;
import java.time.LocalTime;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fs.common.annotation.Excel;
import lombok.Data;

/**
 * AI外呼工作流执行对象 company_ai_workflow_exec
 *
 * @author fs
 * @date 2026-01-28
 */
@Data
public class CompanyAiWorkflowExec {

    /** $column.columnComment */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 工作流执行实例id */
    @Excel(name = "工作流执行实例id")
    private String workflowInstanceId;

    /** 工作流id */
    @Excel(name = "工作流id")
    private Long workflowId;

    /** 工作流版本 */
    @Excel(name = "工作流版本")
    private Integer workflowVersion;

    /** 当前节点id */
//    @Excel(name = "当前节点id")
//    private Long currentNodeId;

    @Excel(name = "当前节点key")
    private String  currentNodeKey;

    /** 当前节点名称 */
    @Excel(name = "当前节点名称")
    private String currentNodeName;

    /** 当前节点类型 */
    @Excel(name = "当前节点类型")
    private Integer currentNodeType;

    /** 状态 ExecutionStatus */
    @Excel(name = "状态 ExecutionStatus")
    private Integer status;

    /** 参数 */
    @Excel(name = "参数")
    private String variables;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

    /** 最后更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastUpdateTime;

    /** 业务键值 */
    @Excel(name = "业务键值")
    private Long businessKey;

    /**
     * 开始节点key
     */
    private String startNodeKey;
    /**
     * 结束节点key
     */
    private String endNodeKey;
    /**
     * 运行时间可执行开始时间
     */
    private LocalTime runtimeRangeStart;

    /**
     * 运行时间可执行结束时间
     */
    private LocalTime runtimeRangeEnd;

    /**
     * 任务执行cid分组数
     */
    private Integer cidGroupNo;

    //是否生成数据（0否，1是）
    private Integer isGenerate;
}
