Query Filters

This module provides standardized logic for pagination, sorting, and keyword search, bridging frontend request parameters with Advanced Alchemy statement filters.

Common Request Filters

class CommonFilters[source]

Bases: CamelizedBaseSchema

Base requirements for pagination, ordering, and keyword search.

Fields:
field search_string: Annotated[str | None, Field(description='Search term.')] = None (alias 'searchString')

Search term.

search_fields: ClassVar[str | set[str]] = 'name'
field current_page: Annotated[int, Field(ge=1, description='Page number for pagination.')] = 1 (alias 'currentPage')

Page number for pagination.

Constraints:
  • ge = 1

field page_size: Annotated[int, Field(ge=1, description='Number of items per page.')] = 20 (alias 'pageSize')

Number of items per page.

Constraints:
  • ge = 1

field order_by: Annotated[str, Field(description='Field to order by.')] = 'name' (alias 'orderBy')

Field to order by.

field sort_order: Annotated[Literal['asc', 'desc'], Field(description="Sort order ('asc' or 'desc').")] = 'asc' (alias 'sortOrder')

Sort order (‘asc’ or ‘desc’).

property aa_technical_filters: list[StatementFilter]

Technical filters including pagination, ordering, and search.