from __future__ import annotations from datetime import datetime from typing import Optional from pydantic import BaseModel class ManagerRegisterRequest(BaseModel): email: str password: str full_name: Optional[str] = None site_ids: list[int] = [] class ManagerLoginRequest(BaseModel): email: str password: str class ManagerTokenOut(BaseModel): access_token: str token_type: str = "bearer" class ManagerSiteOut(BaseModel): id: int site_id: str name: str model_config = {"from_attributes": True} class ManagerOut(BaseModel): id: int email: str full_name: Optional[str] = None is_active: int created_at: datetime sites: list[ManagerSiteOut] = [] model_config = {"from_attributes": True} class StatsSnapshotOut(BaseModel): site_id: int snapshot_json: str updated_at: datetime model_config = {"from_attributes": True} class StatsSnapshotRequest(BaseModel): site_id: int snapshot_json: str