Exercises Domain Filters

Provides filter schemas for exercise resources, enabling advanced scope management, categorization, and caching strategies.

class ExerciseFilters[source]

Bases: CommonFilters

Specific 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]