package tech.easyflow.chatlog.domain.query;

import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigInteger;
import java.util.Date;

/**
 * 管理端聊天会话筛选条件。
 */
public class ChatSessionFilterQuery extends ChatPageQuery {

    private BigInteger assistantId;
    private String assistantCode;
    private BigInteger userId;
    private String userAccount;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 获取助手 ID。
     *
     * @return 助手 ID
     */
    public BigInteger getAssistantId() {
        return assistantId;
    }

    /**
     * 设置助手 ID。
     *
     * @param assistantId 助手 ID
     */
    public void setAssistantId(BigInteger assistantId) {
        this.assistantId = assistantId;
    }

    /**
     * 获取助手类型编码。
     *
     * @return 助手类型编码
     */
    public String getAssistantCode() {
        return assistantCode;
    }

    /**
     * 设置助手类型编码。
     *
     * @param assistantCode 助手类型编码
     */
    public void setAssistantCode(String assistantCode) {
        this.assistantCode = assistantCode;
    }

    /**
     * 获取用户 ID。
     *
     * @return 用户 ID
     */
    public BigInteger getUserId() {
        return userId;
    }

    /**
     * 设置用户 ID。
     *
     * @param userId 用户 ID
     */
    public void setUserId(BigInteger userId) {
        this.userId = userId;
    }

    /**
     * 获取用户账号筛选值。
     *
     * @return 用户账号筛选值
     */
    public String getUserAccount() {
        return userAccount;
    }

    /**
     * 设置用户账号筛选值。
     *
     * @param userAccount 用户账号筛选值
     */
    public void setUserAccount(String userAccount) {
        this.userAccount = userAccount;
    }

    /**
     * 获取开始时间。
     *
     * @return 开始时间
     */
    public Date getStartTime() {
        return startTime;
    }

    /**
     * 设置开始时间。
     *
     * @param startTime 开始时间
     */
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    /**
     * 获取结束时间。
     *
     * @return 结束时间
     */
    public Date getEndTime() {
        return endTime;
    }

    /**
     * 设置结束时间。
     *
     * @param endTime 结束时间
     */
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
}
