from datetime import datetime from pydantic import BaseModel class ClientUserCreate(BaseModel): client_account_id: int full_name: str email: str role: str = "viewer" status: str = "invited" is_new_user: bool = True class ClientUserUpdate(BaseModel): full_name: str | None = None email: str | None = None role: str | None = None status: str | None = None is_new_user: bool | None = None class ClientFeatureUpdate(BaseModel): enabled: bool class ClientUserRead(BaseModel): id: int client_account_id: int full_name: str email: str role: str status: str is_new_user: bool last_login_at: datetime | None created_at: datetime class ClientFeatureRead(BaseModel): id: int client_account_id: int feature_key: str feature_name: str feature_group: str description: str | None enabled: bool updated_at: datetime created_at: datetime class ClientAccessRead(BaseModel): id: int tenant_id: str name: str client_code: str status: str powerbi_workspace: str | None notes: str | None created_at: datetime users: list[ClientUserRead] features: list[ClientFeatureRead] active_user_count: int new_user_count: int enabled_feature_count: int total_feature_count: int