Coverage for apps/kwai-api/src/kwai_api/v1/portal/applications/schemas.py: 100%
11 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"""Schemas for an application resource."""
3from kwai_core.json_api import (
4 Meta,
5 ResourceMeta,
6)
7from pydantic import BaseModel, Field
9from kwai_api.schemas.resources import ApplicationResourceIdentifier
12class ApplicationBaseAttributes(BaseModel):
13 """Common attributes of an application JSON:API resource."""
15 name: str
16 title: str
19class ApplicationBaseResource(ApplicationResourceIdentifier):
20 """A JSON:API resource for an application with only the basic attributes."""
22 attributes: ApplicationBaseAttributes
25class ApplicationAttributes(ApplicationBaseAttributes):
26 """Attributes for an application JSON:API resource."""
28 short_description: str
29 description: str
30 remark: str
31 news: bool
32 events: bool
33 pages: bool
34 weight: int
37class ApplicationResource(ApplicationResourceIdentifier):
38 """A JSON:API resource for an application."""
40 meta: ResourceMeta | None = None
41 attributes: ApplicationAttributes
44class ApplicationDocument(BaseModel):
45 """A JSON:API document for one or more applications."""
47 data: ApplicationResource
50class ApplicationsDocument(BaseModel):
51 """A JSON:API document for multiple applications."""
53 meta: Meta
54 data: list[ApplicationResource] = Field(default_factory=list)