38 lines
910 B
Python
38 lines
910 B
Python
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 |