from fastapi import APIRouter, HTTPException from lightsync.models.device import DeviceConfig import lightsync.main as state # access registry via module-level ref router = APIRouter(tags=["devices"]) @router.get("") async def list_devices() -> list[DeviceConfig]: return state.registry.list_all() @router.post("", status_code=201) async def add_device(config: DeviceConfig) -> DeviceConfig: state.registry.add(config) await state.registry.save() return config @router.delete("/{device_id}", status_code=204) async def remove_device(device_id: str): if not state.registry.remove(device_id): raise HTTPException(404, "Device not found") await state.registry.save()