package io.delphiplatform.api.v3.bigtable.processing;

import org.springframework.stereotype.Service;

import java.util.stream.Stream;

import io.delphiplatform.api.v3.constant.ApplicationConstants;
import io.delphiplatform.api.v3.view.util.Params;

@Service
public class PaginationService {

    public <T> Stream<T> getPage(Stream<T> models, Params params) {
        long limit = params.hasLimit() ?
            params.getLimit().longValue() : ApplicationConstants.DEFAULT_BIGTABLE_PAGE_SIZE;
        long offset = params.hasOffset() ? params.getOffset().longValue() : 0;
        return models.skip(offset)
            .limit(limit);
    }

}
