package com.ssyf.module.robot.domain.query;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ssyf.common.core.domain.query.PageQuery;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

/**
 * 机器人运行记录查询对象
 *
 * @author ELSA
 * @since 2025-12-18
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class RRobotRunRecordQuery extends PageQuery {

    /**
     * 运行记录唯一标识
     */
    private String uuid;
    private String robotGroupUuid;

    private String robotGroupName;
    /**
     * 机器人唯一标识
     */
    private String robotUuid;

    /**
     * 机器人账号
     */
    private String robotAccount;
    /**
     * 机器人昵称
     */
    private String robotNickName;


    /**
     * 配置类型（如运行配置、送礼配置）
     */
    private String configType;

    /**
     * 配置名称
     */
    private String configName;

    /**
     * 配置唯一标识
     */
    private String configUuid;

    /**
     * 备注信息
     */
    private String notes;

    /**
     * 执行状态（0=未开始，1=执行中，2=失败，3=异常，4=成功）
     */
    private Integer executeStatus;

    /**
     * 执行说明
     */
    private String executeDesc;

    /**
     * 执行开始时间 - 开始
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime executeStartTimeStart;

    /**
     * 执行开始时间 - 结束
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime executeStartTimeEnd;

    /**
     * 执行结束时间 - 开始
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime executeEndTimeStart;

    /**
     * 执行结束时间 - 结束
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime executeEndTimeEnd;

    /**
     * 创建时间 - 开始
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTimeStart;

    /**
     * 创建时间 - 结束
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTimeEnd;
    /**
     * 当前所在直播间ID
     */
    private String liveRoomId;

    /**
     * 当前直播间主播ID
     */
    private String anchorId;
    /**
     * 直播间名称
     */
    private String liveRoomName;

    /**
     * 主播名称
     */
    private String anchorName;

    /**
     * 主播头像
     */
    private String anchorAvatar;

    /**
     * 创建人
     */
    private String creator;

    /**
     * 创建人唯一编码
     */
    private String creatorUuid;
}