import logging from yuxi.repositories.channel_device_identity_repo import DeviceIdentityRepository logger = logging.getLogger(__name__) _repo = DeviceIdentityRepository() async def db_lookup_public_key(device_id: str) -> str | None: record = await _repo.get_by_device_id(device_id) if record is None or record.status != "active": return None await _repo.mark_used(device_id) return record.public_key_pem async def db_save_device(device_id: str, public_key_pem: str) -> None: existing = await _repo.get_by_device_id(device_id) if existing is not None: await _repo.update(device_id, {"public_key_pem": public_key_pem, "status": "active"}) else: await _repo.create( { "device_id": device_id, "public_key_pem": public_key_pem, "status": "active", } ) logger.debug("Device saved to DB: device_id=%s", device_id)