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;
import java.util.List;

/**
 * 配置关联查询对象
 *
 * @author ELSA
 * @since 2025-12-18
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class RConfigRelationQuery extends PageQuery {

    /**
     * 配置关联唯一标识
     */
    private String uuid;

    /**
     * 机器人分组唯一标识
     */
    private String robotGroupUuid;

    /**
     * 机器人分组名称
     */
    private String groupName;

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

    private String robotAccount;

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

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

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

    /**
     * 配置优先级（数值越小优先级越高）
     */
    private Integer configPriority;


    /**
     * 配置生效开始时间
     */
    private Integer startTime;

    /**
     * 配置生效结束时间
     */
    private Integer endTime;
    /**
     * 配置生效开始时间
     */
    private Integer startTime1;

    /**
     * 配置生效结束时间
     */
    private Integer endTime1;
    /**
     * 配置生效开始时间
     */
    private Integer startTime2;

    /**
     * 配置生效结束时间
     */
    private Integer endTime2;
    /**
     * 配置生效开始时间
     */
    private Integer startTime3;

    /**
     * 配置生效结束时间
     */
    private Integer endTime3;
    /**
     * 配置生效开始时间
     */
    private Integer startTime4;

    /**
     * 配置生效结束时间
     */
    private Integer endTime4;
    /**
     * 配置生效开始时间
     */
    private Integer startTime5;

    /**
     * 配置生效结束时间
     */
    private Integer endTime5;

    /**
     * 配置生效开始时间 - 开始
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTimeStart;

    /**
     * 配置生效开始时间 - 结束
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTimeEnd;

    /**
     * 配置生效结束时间 - 开始
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTimeStart;

    /**
     * 配置生效结束时间 - 结束
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTimeEnd;

    /**
     * 创建时间 - 开始
     */
    @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;

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

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


    /**
     * 备注说明
     */
    private String remark;


    /**
     * 配置UUID列表（用于批量查询）
     */
    private List<String> configUuids;

    /**
     * 机器人UUID列表（用于批量查询）
     */
    private List<String> robotUuids;
}