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.io.Serializable;
import java.time.LocalDateTime;

/**
 * 聊天配置查询对象
 *
 * @author ELSA
 * @since 2026-01-31
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class ChatConfigQuery extends PageQuery implements Serializable {

    private static final long serialVersionUID = 1L;

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

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

    /**
     * 配置备注说明
     */
    private String notes;

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

    /**
     * 机器人组名称
     */
    private String robotGroupName;

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

    /**
     * 机器人名称
     */
    private String robotName;

    /**
     * 最小间隔时间（建议单位：秒）
     */
    private Integer minIntervalTime;

    /**
     * 最大间隔时间（建议单位：秒）
     */
    private Integer maxIntervalTime;

    /**
     * 执行次数
     */
    private Integer count;

    /**
     * 状态：0=禁用，1=开启
     */
    private Integer status;

    /**
     * AI开关：0=关闭，1=开启（默认开启）
     */
    private Integer aiSwitch;

    /**
     * 开场白/欢迎语
     */
    private String openingRemarks;

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