Exercises Domain Filters¶
Provides filter schemas for exercise resources, enabling advanced scope management, categorization, and caching strategies.
- class ExerciseFilters[source]¶
Bases:
CommonFiltersSpecific filters for Exercise domain.
- field scope: Annotated[ExerciseScope, Field(description='Data ownership scope (system/user/all).')] = ExerciseScope.ALL¶
Data ownership scope (system/user/all).
- field primary_muscles: Annotated[list[int] | None, Field(description='Target muscle group IDs.')] = None (alias 'primaryMuscles')¶
Target muscle group IDs.
- field equipment: Annotated[list[int] | None, Field(description='Required equipment IDs.')] = None¶
Required equipment IDs.
- field tags: Annotated[list[int] | None, Field(description='Exercise tag IDs.')] = None¶
Exercise tag IDs.
- field category: Annotated[CategoryType | None, Field(description='Exercise categories.')] = None¶
Exercise categories.
- field difficulty_level: Annotated[DifficultyLevelType | None, Field(description='Experience levels.')] = None (alias 'difficultyLevel')¶
Experience levels.
- field search_string: Annotated[str | None, AfterValidator(lambda v: ...), Field(description='Search term.')] = None (alias 'searchString')¶
Search term.
- 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’).
Technical Methods¶
- ExerciseFilters.build_exercise_filters(user_id: UUID) list[StatementFilter][source]¶
Transform filter attributes into Advanced Alchemy statement criteria.
- Parameters:
user_id – The ID of the user requesting the exercises for scope filtering.
- Returns:
A list of filters.
- Return type:
list[StatementFilter]