from pydantic import BaseModel class InternalSystemItem(BaseModel): id: str system_key: str name: str status: str class InternalSystemListResponse(BaseModel): items: list[InternalSystemItem] total: int limit: int offset: int class InternalRoleItem(BaseModel): id: str role_key: str role_code: str system_key: str system_name: str name: str description: str | None = None status: str class InternalRoleListResponse(BaseModel): items: list[InternalRoleItem] total: int limit: int offset: int class InternalCompanyItem(BaseModel): id: str company_key: str name: str status: str class InternalCompanyListResponse(BaseModel): items: list[InternalCompanyItem] total: int limit: int offset: int class InternalSiteItem(BaseModel): id: str site_key: str company_key: str company_display_name: str display_name: str domain: str | None = None status: str class InternalSiteListResponse(BaseModel): items: list[InternalSiteItem] total: int limit: int offset: int class InternalMemberItem(BaseModel): id: str user_sub: str username: str | None = None email: str | None = None display_name: str | None = None is_active: bool status: str class InternalMemberListResponse(BaseModel): items: list[InternalMemberItem] total: int limit: int offset: int class InternalUpsertUserBySubResponse(BaseModel): id: str user_sub: str provider_user_id: str | None = None username: str | None = None email: str | None = None display_name: str | None = None is_active: bool status: str class InternalUserRoleItem(BaseModel): site_key: str site_display_name: str company_key: str company_display_name: str system_key: str system_name: str role_key: str role_code: str role_name: str class InternalUserRoleResponse(BaseModel): user_sub: str roles: list[InternalUserRoleItem]