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

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

/**
 * 机器人运行记录视图对象
 *
 * @author ELSA
 * @since 2025-12-18
 */
@Data
@Accessors(chain = true)
public class RRobotRunRecordVo {

    /**
     * 主键ID
     */
    private Long id;
    private String robotGroupUuid;

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

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

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


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

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

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

    /**
     * 备注信息
     */
    private String notes;
    /**
     * 当前所在直播间ID
     */
    private String liveRoomId;

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

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

    /**
     * 主播头像
     */
    private String anchorAvatar;
    /**
     * 执行状态（0=未开始，1=执行中，2=失败，3=异常，4=成功）
     */
    private String executeStatusStr;
    /**
     * 执行开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime executeStartTime;

    /**
     * 执行结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime executeEndTime;

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

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

    /**
     * 执行日志详情
     */
    private String executeLog;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

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

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

    public void setExecuteStatusStr() {
        if(executeStatus == null){
            executeStatusStr = "";
            return;
        }
        switch (executeStatus){
            case 0:
                executeStatusStr = "未开始";
                break;
            case 1:
                executeStatusStr = "执行中";
                break;
            case 2:
                executeStatusStr = "失败";
                break;
            case 3:
                executeStatusStr = "异常";
                break;
            case 4:
                executeStatusStr = "成功";
                break;
            default:
                executeStatusStr = "";
                break;
        }
    }
}