mirror of
https://github.com/rommapp/romm.git
synced 2026-02-19 07:50:57 +01:00
Implement device registration and save sync tracking to enable multi-device save management with conflict detection. - Device CRUD endpoints (POST/GET/PUT/DELETE /api/devices) - Save sync state tracking per device - Conflict detection on upload (409 when device has stale sync) - Download sync tracking (optimistic and confirmed modes) - Track/untrack saves per device - DEVICES_READ/WRITE scopes for authorization
43 lines
828 B
Python
43 lines
828 B
Python
from datetime import datetime
|
|
|
|
from models.device import SyncMode
|
|
|
|
from .base import BaseModel
|
|
|
|
|
|
class DeviceSyncSchema(BaseModel):
|
|
device_id: str
|
|
device_name: str | None
|
|
last_synced_at: datetime
|
|
is_untracked: bool
|
|
is_current: bool
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class DeviceSchema(BaseModel):
|
|
id: str
|
|
user_id: int
|
|
name: str | None
|
|
platform: str | None
|
|
client: str | None
|
|
client_version: str | None
|
|
ip_address: str | None
|
|
mac_address: str | None
|
|
hostname: str | None
|
|
sync_mode: SyncMode
|
|
sync_enabled: bool
|
|
last_seen: datetime | None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class DeviceCreateResponse(BaseModel):
|
|
device_id: str
|
|
name: str | None
|
|
created_at: datetime
|