package com.aegis.emergency.dispatch.domain;

import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
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_log
 *
 * 对应调度任务模块的操作日志记录
 *
 * @author aegis
 */
@Getter
@Setter
@ToString
@TableName("dispatch_task_log")
public class DispatchTaskLog {

    /** 日志ID */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

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

    /** 操作类型（枚举：{@link com.aegis.emergency.dispatch.constant.DispatchTaskAction}）：task_created/task_updated/task_published/task_closed等 */
    private String action;

    /** 操作详情（JSON格式，包含操作描述和扩展信息） */
    private String payload;

    /** 操作人ID */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long operatorId;

    /** 操作人姓名（优先显示昵称） */
    private String operatorName;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}