Coverage for apps/kwai-api/src/kwai_api/v1/trainings/training_sessions/jsonapi/schemas.py: 100%
13 statements
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""JSON:API schemas for training sessions."""
3from typing import Literal
5from kwai_core.json_api import Meta, Relationship, ResourceIdentifier, ResourceMeta
6from pydantic import BaseModel, Field
8from kwai_api.schemas.resources import (
9 CoachResourceIdentifier,
10 TrainingResourceIdentifier,
11)
14class TrainingSessionResourceIdentifier(ResourceIdentifier):
15 """A JSON:API resource identifier for a training session."""
17 type: Literal["training_sessions"] = "training_sessions"
20class TrainingSessionAttributes(BaseModel):
21 """Attributes for a JSON:API resource of a training session."""
23 start_date: str
24 end_date: str
25 hours: int
26 minutes: int
27 head: bool
30class TrainingSessionRelationships(BaseModel):
31 """Relationships for a JSON:API resource of training session."""
33 training: Relationship[TrainingResourceIdentifier]
34 coach: Relationship[CoachResourceIdentifier]
37class TrainingSessionResource(TrainingSessionResourceIdentifier):
38 """A JSON:API resource for a training session."""
40 meta: ResourceMeta | None = None
41 attributes: TrainingSessionAttributes
42 relationships: TrainingSessionRelationships
45class TrainingSessionsDocument(BaseModel):
46 """A JSON:API document for training sessions."""
48 meta: Meta = Field(default_factory=Meta)
49 data: list[TrainingSessionResource] = Field(default_factory=list)