package com.emotion.common;

import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.Data;

import java.util.List;

/**
 * 分页结果封装
 * 
 * @author huazhongmin
 * @date 2025-07-23
 */
@Data
public class PageResult<T> {
    
    /**
     * 当前页码
     */
    private Long current;
    
    /**
     * 每页大小
     */
    private Long size;
    
    /**
     * 总记录数
     */
    private Long total;
    
    /**
     * 总页数
     */
    private Long pages;
    
    /**
     * 数据列表
     */
    private List<T> records;
    
    public PageResult() {}
    
    public PageResult(IPage<T> page) {
        this.current = page.getCurrent();
        this.size = page.getSize();
        this.total = page.getTotal();
        this.pages = page.getPages();
        this.records = page.getRecords();
    }
    
    public static <T> PageResult<T> of(IPage<T> page) {
        return new PageResult<>(page);
    }
    
    /**
     * 设置数据列表
     */
    public PageResult<T> setRecords(List<T> records) {
        this.records = records;
        return this;
    }
}