from pydantic import BaseModel from typing import Optional, List class AppMetadata(BaseModel): """Represents a single app in the repository.""" id: str package_name: str version_name: str version_code: str name: str description: str = "" icon: Optional[str] = None size: int = 0 screenshots: List[str] = [] min_sdk: Optional[str] = None target_sdk: Optional[str] = None permissions: List[str] = [] class AppListResponse(BaseModel): """Response for listing apps.""" apps: List[AppMetadata] total: int class UpdateCheckRequest(BaseModel): """Request to check for updates.""" package_name: str current_version_code: str class UpdateCheckResponse(BaseModel): """Response for update check.""" has_update: bool app: Optional[AppMetadata] = None current_version_code: str latest_version_code: Optional[str] = None