package com.haha.common.dto;

import lombok.Data;

/**
 * 分页查询基础DTO
 * 统一分页参数定义，所有分页查询DTO应继承此类
 */
@Data
public class BasePageQueryDTO {

    /**
     * 当前页码，默认第1页
     */
    private Integer page = 1;

    /**
     * 每页条数，默认10条
     */
    private Integer pageSize = 10;

    /**
     * 获取偏移量
     */
    public int getOffset() {
        return (page - 1) * pageSize;
    }

    /**
     * 校验并修正分页参数
     */
    public void validate() {
        if (page == null || page < 1) {
            page = 1;
        }
        if (pageSize == null || pageSize < 1) {
            pageSize = 10;
        }
        if (pageSize > 100) {
            pageSize = 100;  // 限制最大每页条数
        }
    }
}
