package com.aegis.emergency.dispatch.domain;

import com.aegis.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * 调度任务行动项实体类 dispatch_task_step
 * 
 * @author aegis
 */
@Getter
@Setter
@ToString(callSuper = true)
@TableName("dispatch_task_step")
public class DispatchTaskStep extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** 行动项ID */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /** 任务ID */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long taskId;

    /** 步骤顺序（可选，用于排序） */
    private Integer stepOrder;

    /** 标题（可选） */
    private String title;

    /** 行动项描述（文本内容） */
    private String description;

    /** 状态（枚举：{@link com.aegis.emergency.dispatch.constant.DispatchTaskStepStatus}）：pending-待执行，in_progress-执行中，completed-已完成，failed-未完成/失败 */
    private String status;

    /** 执行方参与记录ID（引用 dispatch_task_participant.id） */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long executorId;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;
}