""" Pydantic models for organisation module Models: - List: Description - Models: Description """ from typing import Optional from pydantic import EmailStr, ConfigDict from src.schemas import CustomBaseModel from src.organisation.constants import Status, ContactType from src.contact.schemas import ContactAddress class OrgQuestionnaire(CustomBaseModel): question_one: str question_two: str question_three: str class OrgOrgPostRequest(CustomBaseModel): name: str intake_questionnaire: Optional[OrgQuestionnaire] = None class OrgQuestionnairePatchRequest(CustomBaseModel): intake_questionnaire: OrgQuestionnaire partial: bool class OrgStatusPatchRequest(CustomBaseModel): status: Status class OrgContactPatchRequest(CustomBaseModel): email: Optional[EmailStr] = None first_name: Optional[str] = None last_name: Optional[str] = None phonenumber: Optional[str] = None vat_number: Optional[str] = None post_office_box_number: Optional[str] = None street_address: Optional[str] = None street_address_line_2: Optional[str] = None locality: Optional[str] = None address_region: Optional[str] = None country_code: Optional[str] = None postal_code: Optional[str] = None class OrgUserPostRequest(CustomBaseModel): user_id: int class OrgUserGetResponse(CustomBaseModel): user_id: int class OrgContactGetResponse(CustomBaseModel): model_config = ConfigDict(from_attributes=True, extra="ignore") email: Optional[str] = None first_name: Optional[str] = None last_name: Optional[str] = None phonenumber: Optional[str] = None vat_number: Optional[str] = None address: ContactAddress class OrgOrgGetResponse(CustomBaseModel): name: str status: Status root_user: Optional[str] = None owner_contact: Optional[str] = None billing_contact: Optional[str] = None security_contact: Optional[str] = None