#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 (5555 для legacy tcpip) QString code; // одноразовый pairing-код (пусто для legacy tcpip) QString mac; // нормализованный MAC wlan0 — для поиска нового IP по ARP при смене DHCP QString updatedAt; // ISO-время последнего обновления }; // DAO таблицы wifi_connections. Задел под будущий авто-реконнект по Wi-Fi: // хранит ip/port/code per-device, чтобы переподключать устройство без повторного // поиска. В текущей итерации — только хранилище (воркер реконнекта отложен). class WifiConnectionDAO { public: // Вставка/обновление по android_id (PRIMARY KEY). static bool upsert(const QString &androidId, const QString &ip, int port, const QString &code = {}, const QString &mac = {}); // Запись по android_id (пустой androidId в результате → не найдено). [[nodiscard]] static WifiConnection getByAndroidId(const QString &androidId); // Все сохранённые реквизиты. [[nodiscard]] static QList getAll(); static bool remove(const QString &androidId); };