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

12 statements  

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

1"""Schemas for a user invitation resource.""" 

2 

3from kwai_core.json_api import Meta 

4from pydantic import BaseModel, Field 

5 

6from kwai_api.schemas.resources import UserInvitationResourceIdentifier 

7 

8 

9class UserInvitationAttributes(BaseModel): 

10 """Attributes of a user invitation JSON:API resource.""" 

11 

12 email: str 

13 first_name: str 

14 last_name: str 

15 remark: str = "" 

16 mailed_at: str | None = None 

17 expired_at: str | None = None 

18 confirmed_at: str | None = None 

19 revoked: bool 

20 

21 

22class UserInvitationResource(UserInvitationResourceIdentifier): 

23 """A JSON:API resource of a user invitation.""" 

24 

25 attributes: UserInvitationAttributes 

26 

27 

28class UserInvitationDocument(BaseModel): 

29 """A JSON:API document for one or more user invitations.""" 

30 

31 data: UserInvitationResource 

32 

33 

34class UserInvitationsDocument(BaseModel): 

35 """A JSON:API document for multiple user invitations.""" 

36 

37 meta: Meta 

38 data: list[UserInvitationResource] = Field(default_factory=list)