Catalogs Domain Schemas

Pydantic & msgspec.Struct Data Transfer Objects (DTOs) for the Catalogs sub-domain.

Base Definitions

class FieldsReadBase(id: int, name: str)[source]

Bases: CamelizedBaseStruct

Base schema for reading catalog items.

id: int
name: str
class FieldsCreateBase[source]

Bases: CamelizedBaseSchema

Base schema for creating new catalog items.

field name: Annotated[str, MinLen(min_length=3), MaxLen(max_length=100)] [Required]
class FieldsUpdateBase[source]

Bases: FieldsCreateBase

Base schema for updating catalog items.

field name: Annotated[str, MinLen(3), MaxLen(100)] [Required]

Muscle Group Models

class MuscleGroupRead(id: int, name: str)[source]

Bases: FieldsReadBase

Public representation of a muscle group.

id: int
name: str
class MuscleGroupCreate[source]

Bases: FieldsCreateBase

Schema for creating a new muscle group.

Example: ‘chest’, ‘biceps’.

field name: Annotated[str, MinLen(3), MaxLen(100)] [Required]
class MuscleGroupUpdate[source]

Bases: FieldsUpdateBase

Schema for updating a muscle group.

field name: Annotated[str, MinLen(3), MaxLen(100)] [Required]

Equipment Models

class EquipmentRead(id: int, name: str)[source]

Bases: FieldsReadBase

Public representation of a piece of equipment.

id: int
name: str
class EquipmentCreate[source]

Bases: FieldsCreateBase

Schema for creating a new piece of equipment.

Example: ‘barbell’, ‘kettlebells’.

field name: Annotated[str, MinLen(3), MaxLen(100)] [Required]
class EquipmentUpdate[source]

Bases: FieldsUpdateBase

Schema for updating a piece of equipment.

field name: Annotated[str, MinLen(3), MaxLen(100)] [Required]

Exercise Tag Models

class ExerciseTagRead(id: int, name: str)[source]

Bases: FieldsReadBase

Public representation of an exercise tag.

id: int
name: str
class ExerciseTagCreate[source]

Bases: FieldsCreateBase

Schema for creating a new exercise tag.

Example: ‘mobility’, ‘isometric’.

field name: Annotated[str, MinLen(3), MaxLen(100)] [Required]
class ExerciseTagUpdate[source]

Bases: FieldsUpdateBase

Schema for updating an exercise tag.

field name: Annotated[str, MinLen(3), MaxLen(100)] [Required]