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 schema for standard API query parameters.

Provides foundational support for pagination, ordering, and keyword-based searching across different domains.

field search_string: Annotated[str | None, AfterValidator(lambda v: v.strip() if v else v), 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.

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

Number of items per page.

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’).