cloud-api/src/user/schemas.py
luxferre 7809df4c5a
All checks were successful
ci / lint_and_test (push) Successful in 15s
feat: get self db user_id
2026-06-09 16:33:42 +01:00

79 lines
1.5 KiB
Python

"""
Pydantic models for the user module
"""
from typing import Optional
from pydantic import EmailStr
from src.organisation.constants import Status
from src.organisation.schemas import Questionnaire
from src.schemas import CustomBaseModel, OrgIDMixin
class ContactModel(CustomBaseModel):
id: int
email: Optional[EmailStr] = None
class OrgSchema(OrgIDMixin):
name: str
status: Status
root_user_email: EmailStr
intake_questionnaire: Optional[Questionnaire] = None
billing_contact: ContactModel
owner_contact: ContactModel
security_contact: ContactModel
class OIDCClaims(CustomBaseModel):
exp: int
iat: int
auth_time: int
jti: str
iss: str
aud: str
sub: str
typ: str
azp: str
sid: str
acr: str
allowed_origins: list[str]
realm_access: dict[str, list[str]]
resource_access: dict[str, dict[str, list[str]]]
scope: str
email_verified: bool
name: str
preferred_username: str
given_name: str
family_name: str
email: str
db_id: int
class OIDCUser(CustomBaseModel):
first_name: str
last_name: str
email: str
oidc_id: str
class UserResponse(CustomBaseModel):
id: int
first_name: str
last_name: str
email: str
organisations: list[Optional[dict[str, str | int]]]
groups: Optional[dict[str, list[dict[str, str | int]]]] = None
class UserPostInvitationRequest(OrgIDMixin):
user_email: EmailStr
class UserPostInvitationAcceptRequest(CustomBaseModel):
jwt: str
class UserGetSelfOrgsResponse(CustomBaseModel):
organisations: list[OrgSchema]