update: Major Overhaul to all subsystems
This commit is contained in:
@@ -1,15 +1,24 @@
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional, List
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class UpdateType(str, Enum):
|
||||
optional = "optional" # user-initiated only
|
||||
mandatory = "mandatory" # auto-installs on next reboot
|
||||
emergency = "emergency" # auto-installs on reboot + daily check + MQTT push
|
||||
|
||||
|
||||
class FirmwareVersion(BaseModel):
|
||||
id: str
|
||||
hw_type: str # "vs", "vp", "vx"
|
||||
channel: str # "stable", "beta", "alpha", "testing"
|
||||
version: str # semver e.g. "1.4.2"
|
||||
hw_type: str # e.g. "vesper", "vesper_plus", "vesper_pro"
|
||||
channel: str # "stable", "beta", "alpha", "testing"
|
||||
version: str # semver e.g. "1.5"
|
||||
filename: str
|
||||
size_bytes: int
|
||||
sha256: str
|
||||
update_type: UpdateType = UpdateType.mandatory
|
||||
min_fw_version: Optional[str] = None # minimum fw version required to install this
|
||||
uploaded_at: str
|
||||
notes: Optional[str] = None
|
||||
is_latest: bool = False
|
||||
@@ -20,12 +29,19 @@ class FirmwareListResponse(BaseModel):
|
||||
total: int
|
||||
|
||||
|
||||
class FirmwareLatestResponse(BaseModel):
|
||||
class FirmwareMetadataResponse(BaseModel):
|
||||
"""Returned by both /latest and /{version}/info endpoints."""
|
||||
hw_type: str
|
||||
channel: str
|
||||
version: str
|
||||
size_bytes: int
|
||||
sha256: str
|
||||
update_type: UpdateType
|
||||
min_fw_version: Optional[str] = None
|
||||
download_url: str
|
||||
uploaded_at: str
|
||||
notes: Optional[str] = None
|
||||
|
||||
|
||||
# Keep backwards-compatible alias
|
||||
FirmwareLatestResponse = FirmwareMetadataResponse
|
||||
|
||||
Reference in New Issue
Block a user