Coverage for apps/kwai-api/src/kwai_api/v1/club/schemas/contact.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2024-01-01 00:00 +0000

1"""Module for defining the JSON:API resource for a contact.""" 

2 

3from kwai_core.json_api import Meta, Relationship, ResourceMeta 

4from pydantic import BaseModel, Field 

5 

6from kwai_api.v1.club.schemas.resources import ( 

7 ContactResourceIdentifier, 

8) 

9from kwai_api.v1.schemas import ( 

10 CountryResource, 

11 CountryResourceIdentifier, 

12) 

13 

14 

15class ContactAttributes(BaseModel): 

16 """Attributes for the contact JSON:API resource.""" 

17 

18 emails: list[str] = Field(default_factory=list) 

19 tel: str 

20 mobile: str 

21 address: str 

22 postal_code: str 

23 city: str 

24 county: str 

25 remark: str 

26 

27 

28class ContactRelationships(BaseModel): 

29 """Relationships for the contact JSON:API resource.""" 

30 

31 country: Relationship[CountryResourceIdentifier] 

32 

33 

34class ContactResource(ContactResourceIdentifier): 

35 """A JSON:API resource for a contact.""" 

36 

37 meta: ResourceMeta | None = None 

38 attributes: ContactAttributes 

39 relationships: ContactRelationships 

40 

41 

42class ContactDocument(BaseModel): 

43 """A JSON:API document for one contact resource.""" 

44 

45 data: ContactResource 

46 included: set[CountryResource] = Field(default_factory=set) 

47 

48 

49class ContactsDocument(BaseModel): 

50 """A JSON:API document for multiple contact resources.""" 

51 

52 meta: Meta 

53 data: list[ContactResource] = Field(default_factory=list) 

54 included: set[CountryResource] = Field(default_factory=set)