from datetime import datetime from typing import Optional from pydantic import BaseModel class AccountBase(BaseModel): tenant_id: int sso_account: str notification_email: str legal_name: Optional[str] = None english_name: Optional[str] = None quota_limit: int = 20 is_active: bool = True default_password: Optional[str] = None class AccountCreate(AccountBase): pass class AccountUpdate(BaseModel): sso_account: Optional[str] = None notification_email: Optional[str] = None legal_name: Optional[str] = None english_name: Optional[str] = None quota_limit: Optional[int] = None is_active: Optional[bool] = None default_password: Optional[str] = None class AccountStatusLight(BaseModel): sso_result: Optional[bool] = None mailbox_result: Optional[bool] = None nc_result: Optional[bool] = None quota_usage: Optional[float] = None class AccountResponse(AccountBase): id: int account_code: str email: Optional[str] = None sso_uuid: Optional[str] = None seq_no: int created_at: datetime updated_at: datetime tenant_name: Optional[str] = None lights: Optional[AccountStatusLight] = None class Config: from_attributes = True