Coverage for apps/kwai-api/src/kwai_api/v1/auth/schemas/user_account.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"""Schemas for a user account resource."""
3from kwai_core.json_api import (
4 Meta,
5 Relationship,
6)
7from pydantic import BaseModel, Field
9from kwai_api.schemas.resources import UserInvitationResourceIdentifier
10from kwai_api.v1.auth.schemas.resources import UserAccountResourceIdentifier
13class BaseUserAccountAttributes(BaseModel):
14 """Base attributes for a user account JSON:API resource."""
16 first_name: str
17 last_name: str
18 remark: str
21class UserAccountAttributes(BaseUserAccountAttributes):
22 """Attributes of a user account JSON:API resource."""
24 email: str
25 last_login: str | None
26 last_unsuccessful_login: str | None
27 revoked: bool
28 admin: bool
31class CreateUserAccountAttributes(BaseUserAccountAttributes):
32 """Attributes for creating a user account."""
34 password: str
37class UserAccountResource(UserAccountResourceIdentifier):
38 """A JSON:API resource for a user account."""
40 attributes: UserAccountAttributes
43class UserAccountDocument(BaseModel):
44 """A JSON:API document for one user account."""
46 data: UserAccountResource
49class UserAccountsDocument(BaseModel):
50 """A JSON:API document for multiple user accounts."""
52 meta: Meta
53 data: list[UserAccountResource] = Field(default_factory=list)
56class CreateUserAccountRelationships(BaseModel):
57 """Relationships needed for creating a user account."""
59 user_invitation: Relationship[UserInvitationResourceIdentifier]
62class CreateUserAccountResource(UserAccountResourceIdentifier):
63 """A JSON:API resource for creating a user account."""
65 attributes: CreateUserAccountAttributes
66 relationships: CreateUserAccountRelationships
69class CreateUserAccountDocument(BaseModel):
70 """A specific JSON:API document for creating a user account."""
72 data: CreateUserAccountResource