package com.devjob.dto;

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

/**
 * EP11: 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()
        );
    }
}
