package com.lukouguoji.module_base.bean

import java.util.ArrayList

/**
 * 分页响应容器 (适配MyBatis-Plus的PageInfo结构)
 * 用于适配接口返回的PageInfo<T>结构
 */
class PageInfo<T> {
    // 当前页号
    var pageNum: Int = 1

    // 每页显示条数
    var pageSize: Int = 10

    // 数据总量
    var total: Long = 0

    // 页面总量
    var pages: Int = 1

    // 数据列表
    var list: ArrayList<T>? = null

    // 是否有下一页
    var hasNextPage: Boolean = false

    // 是否有上一页
    var hasPreviousPage: Boolean = false

    // 是否是第一页
    var isFirstPage: Boolean = true

    // 是否是最后一页
    var isLastPage: Boolean = false

    /**
     * 转换为项目使用的BaseListBean
     * 这是核心方法，用于适配项目中的PageModel
     */
    fun toBaseListBean(): BaseListBean<T> {
        return BaseListBean<T>().apply {
            this.pages = this@PageInfo.pages
            this.total = this@PageInfo.total.toInt()
            this.list = this@PageInfo.list
        }
    }
}
