package tech.easyflow.chatlog.domain.query;

import java.io.Serializable;

public class ChatPageQuery implements Serializable {

    private long pageNumber = 1;
    private long pageSize = 20;
    private String keyword;

    public long getPageNumber() {
        return pageNumber;
    }

    public void setPageNumber(long pageNumber) {
        this.pageNumber = Math.max(pageNumber, 1);
    }

    public long getPageSize() {
        return pageSize;
    }

    public void setPageSize(long pageSize) {
        this.pageSize = pageSize <= 0 ? 20 : Math.min(pageSize, 200);
    }

    public long getOffset() {
        return (pageNumber - 1) * pageSize;
    }

    /**
     * 获取会话搜索关键字。
     *
     * @return 会话标题、最近消息或助手名称关键字
     */
    public String getKeyword() {
        return keyword;
    }

    /**
     * 设置会话搜索关键字。
     *
     * @param keyword 会话标题、最近消息或助手名称关键字
     */
    public void setKeyword(String keyword) {
        this.keyword = keyword == null ? null : keyword.trim();
    }
}
