#pragma once #include #include // Реквизиты подключения устройства по Wi-Fi. Связь с устройством — по android_id // (= devices.id), т.е. одна запись на физический аппарат, независимо от транспорта. struct WifiConnection { QString androidId; // = devices.id QString ip; // последний известный IP телефона в Wi-Fi int port = 0; // порт для adb connect QString updatedAt; // ISO-время последнего обновления }; // DAO таблицы wifi_connections. Задел под будущий авто-реконнект по Wi-Fi: // хранит ip/port/code per-device, чтобы переподключать устройство без повторного // поиска. В текущей итерации — только хранилище (воркер реконнекта отложен). class WifiConnectionDAO { public: // Вставка/обновление по android_id (PRIMARY KEY). Pairing-код НЕ храним: он // одноразовый и для реконнекта не нужен (pairing сохраняется на устройстве). static bool upsert(const QString &androidId, const QString &ip, int port); // Обновить ТОЛЬКО ip (и updated_at) существующей записи, не трогая port/code. // Если записи нет — ничего не делает (порт/код задаёт онбординг, не фоновый IP-апдейт). static bool updateIp(const QString &androidId, const QString &ip); // Запись по android_id (пустой androidId в результате → не найдено). [[nodiscard]] static WifiConnection getByAndroidId(const QString &androidId); // Все сохранённые реквизиты. [[nodiscard]] static QList getAll(); static bool remove(const QString &androidId); };