package com.muyu.common.core.web.page;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 分页查询模型
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageQueryModel<T> {

    /**
     * 总记录数
     */
    private long total;

    /**
     * 列表数据
     */
    private List<T> dataList;

    /**
     * 构建分页查询模型对象
     * @param page 分页对象
     * @return 分页模型对象
     * @param <T> 入参
     */
    public static <T> PageQueryModel<T> of(Page<T> page) {
        return new PageQueryModel<>(page.getTotal(), page.getRecords());
    }
}
