"""
Custom pagination classes for the Nexa platform.
"""
from rest_framework.pagination import PageNumberPagination


class FlexiblePageNumberPagination(PageNumberPagination):
    """
    Extends stock PageNumberPagination to support a ``page_size``
    query-parameter so clients can request larger pages when needed
    (e.g. dropdowns, permission matrices).

    Max page size is capped at 500 to prevent abuse.
    """
    page_size_query_param = 'page_size'
    max_page_size = 500
