1
0
forked from BRT/arc
arc/database/dao/WifiConnectionDAO.h
2026-06-17 19:30:24 +07:00

36 lines
2.0 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <QString>
#include <QList>
// Реквизиты подключения устройства по 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<WifiConnection> getAll();
static bool remove(const QString &androidId);
};