Files
HospitalAssistantBackend/src/clients/esia/schema.py
2025-10-16 16:43:18 +03:00

61 lines
1.3 KiB
Python

from typing import Literal
from pydantic import BaseModel, Field, PositiveInt
class AccessTokenModel(BaseModel):
access_token: str
refresh_token: str
state: str
id_token: str
token_type: Literal['Bearer']
expires_in: PositiveInt
class IDTokenACRModel(BaseModel):
twoAF: str = Field(alias='2fa')
class IDTokenSBJModel(BaseModel):
lvl: str = Field(alias='urn:esia:sbj:lvl')
typ: str = Field(alias='urn:esia:sbj:typ')
is_tru: bool = Field(alias='urn:esia:sbj:is_tru')
oid: int = Field(alias='urn:esia:sbj:oid')
name: str = Field(alias='urn:esia:sbj:nam')
class IDTokenModel(BaseModel):
aud: str
sub: int
nbf: int
amr: str
auth_time: int
exp: int
iat: int
iss: str
# acr: IDTokenACRModel
urn_esia_amd: str = Field(alias='urn:esia:amd')
urn_esia_sid: str = Field(alias='urn:esia:sid')
urn_esia_sbj: IDTokenSBJModel = Field(alias='urn:esia:sbj')
class UserInfoModel(BaseModel):
stateFacts: list[str]
firstName: str
lastName: str
middleName: str
# birthDate: str
# gender: str
trusted: bool
# citizenship: str
snils: str
inn: int
updatedOn: int
rfgUOperatorCheck: bool
status: str
verifying: bool
rIdDoc: int
containsUpCfmCode: bool
kidAccCreatedByParent: bool
eTag: str