Coverage for apps/kwai-api/src/kwai_api/v1/trainings/coaches/schemas.py: 100%
19 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"""Module that defines the JSON:API schemas for coaches."""
3from typing import Literal
5from kwai_core.json_api import Meta, ResourceIdentifier
6from pydantic import BaseModel, Field
8from kwai_api.schemas.resources import CoachResourceIdentifier
11class CoachAttributes(BaseModel):
12 """Attributes for a coach JSON:API resource."""
14 name: str
17class CoachResource(CoachResourceIdentifier):
18 """A JSON:API resource for a coach."""
20 attributes: CoachAttributes
23class CoachDocument(BaseModel):
24 """A JSON:API document for one coaches."""
26 data: CoachResource
29class CoachesDocument(BaseModel):
30 """A JSON:API document for multiple coaches."""
32 meta: Meta
33 data: list[CoachResource] = Field(default_factory=list)
36class TrainingCoachResourceIdentifier(ResourceIdentifier):
37 """A JSON:API resource identifier for a training coach."""
39 type: Literal["training_coaches"] = "training_coaches"
42class BaseTrainingCoachAttributes(BaseModel):
43 """Base attributes for a training coach JSON:API resource."""
45 payed: bool
46 head: bool
47 present: bool
48 remark: str
51class CreateTrainingCoachResource(TrainingCoachResourceIdentifier):
52 """A resource for creating a training coach."""
54 attributes: BaseTrainingCoachAttributes
57class CreateTrainingCoachDocument(BaseModel):
58 """A document for creating a training coach."""
60 data: CreateTrainingCoachResource
63class TrainingCoachAttributes(BaseTrainingCoachAttributes, CoachAttributes):
64 """Attributes for a training coach JSON:API resource."""
67class TrainingCoachResource(TrainingCoachResourceIdentifier):
68 """Resource for a training coach JSON:API resource."""
70 attributes: TrainingCoachAttributes
73class TrainingCoachDocument(BaseModel):
74 """Document for a coach of a training."""
76 data: TrainingCoachResource
79class TrainingCoachesDocument(BaseModel):
80 """Document for multiple training coaches."""
82 meta: Meta
83 data: list[TrainingCoachResource] = Field(default_factory=list)