package com.devjob.common.dto;

import java.util.List;
import org.springframework.data.domain.Page;

/**
 * EP10: 시즌1 EP11의 PageResponse를 공통 모듈로 이동.
 * Page<T>를 그대로 응답하면 불필요한 필드가 많이 노출되므로, 필요한 필드만 담는다.
 */
public record PageResponse<T>(
        List<T> content,
        int page,
        int size,
        long totalElements,
        int totalPages,
        boolean last
) {
    public static <T> PageResponse<T> of(Page<T> page) {
        return new PageResponse<>(
                page.getContent(),
                page.getNumber(),
                page.getSize(),
                page.getTotalElements(),
                page.getTotalPages(),
                page.isLast()
        );
    }
}
