package com.ruoyi.ems.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.util.Date;

/**
 * 策略执行日志
 */
@Data
public class OpEnergyStrategyExecLog {
    /** 主键ID */
    private Long id;

    /** 策略代码 */
    private String strategyCode;

    /** 策略名称（关联查询） */
    private String strategyName;

    /** 执行ID */
    private String execId;

    /** 触发类型 */
    private String triggerType;

    /** 触发源 */
    private String triggerSource;

    /** 执行状态：0-执行中，1-成功，2-失败，3-超时 */
    private Integer execStatus;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /** 执行时长（毫秒） */
    private Integer duration;

    /** 执行上下文（JSON） */
    private String contextData;

    /** 执行结果（JSON） */
    private String resultData;

    /** 错误信息 */
    private String errorMessage;

    /** 执行人 */
    private String execBy;

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

    // ========== 查询参数（非数据库字段） ==========
    /** 开始时间-起始 */
    @JsonIgnore
    private String startTimeBegin;

    /** 开始时间-结束 */
    @JsonIgnore
    private String startTimeEnd;
}