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
« 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."""
3from kwai_core.json_api import Meta, Relationship, ResourceMeta
4from pydantic import BaseModel, Field
6from kwai_api.v1.club.schemas.resources import (
7 ContactResourceIdentifier,
8)
9from kwai_api.v1.schemas import (
10 CountryResource,
11 CountryResourceIdentifier,
12)
15class ContactAttributes(BaseModel):
16 """Attributes for the contact JSON:API resource."""
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
28class ContactRelationships(BaseModel):
29 """Relationships for the contact JSON:API resource."""
31 country: Relationship[CountryResourceIdentifier]
34class ContactResource(ContactResourceIdentifier):
35 """A JSON:API resource for a contact."""
37 meta: ResourceMeta | None = None
38 attributes: ContactAttributes
39 relationships: ContactRelationships
42class ContactDocument(BaseModel):
43 """A JSON:API document for one contact resource."""
45 data: ContactResource
46 included: set[CountryResource] = Field(default_factory=set)
49class ContactsDocument(BaseModel):
50 """A JSON:API document for multiple contact resources."""
52 meta: Meta
53 data: list[ContactResource] = Field(default_factory=list)
54 included: set[CountryResource] = Field(default_factory=set)