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

1"""Schemas for an application resource.""" 

2 

3from kwai_core.json_api import ( 

4 Meta, 

5 ResourceMeta, 

6) 

7from pydantic import BaseModel, Field 

8 

9from kwai_api.schemas.resources import ApplicationResourceIdentifier 

10 

11 

12class ApplicationBaseAttributes(BaseModel): 

13 """Common attributes of an application JSON:API resource.""" 

14 

15 name: str 

16 title: str 

17 

18 

19class ApplicationBaseResource(ApplicationResourceIdentifier): 

20 """A JSON:API resource for an application with only the basic attributes.""" 

21 

22 attributes: ApplicationBaseAttributes 

23 

24 

25class ApplicationAttributes(ApplicationBaseAttributes): 

26 """Attributes for an application JSON:API resource.""" 

27 

28 short_description: str 

29 description: str 

30 remark: str 

31 news: bool 

32 events: bool 

33 pages: bool 

34 weight: int 

35 

36 

37class ApplicationResource(ApplicationResourceIdentifier): 

38 """A JSON:API resource for an application.""" 

39 

40 meta: ResourceMeta | None = None 

41 attributes: ApplicationAttributes 

42 

43 

44class ApplicationDocument(BaseModel): 

45 """A JSON:API document for one or more applications.""" 

46 

47 data: ApplicationResource 

48 

49 

50class ApplicationsDocument(BaseModel): 

51 """A JSON:API document for multiple applications.""" 

52 

53 meta: Meta 

54 data: list[ApplicationResource] = Field(default_factory=list)