package com.emotion.dto.request;

import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Min;
import javax.validation.constraints.Max;

/**
 * 消息搜索请求类
 * 
 * @author huazhongmin
 * @date 2025-07-25
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class MessageSearchRequest extends BaseRequest {
    
    /**
     * 搜索关键词
     */
    @NotBlank(message = "搜索关键词不能为空")
    private String keyword;
    
    /**
     * 限制返回数量
     */
    @Min(value = 1, message = "限制数量不能小于1")
    @Max(value = 100, message = "限制数量不能超过100")
    private Integer limit = 50;
    
    /**
     * 会话ID（可选，用于在特定会话中搜索）
     */
    private String conversationId;
    
    /**
     * 消息类型（可选）
     */
    private String type;
    
    /**
     * 发送者类型（可选）
     */
    private String sender;
    
    /**
     * 开始时间（可选，格式：yyyy-MM-dd HH:mm:ss）
     */
    private String startTime;
    
    /**
     * 结束时间（可选，格式：yyyy-MM-dd HH:mm:ss）
     */
    private String endTime;
}
