#pragma once

#include <db/DeviceInfo.h>

class DeviceDAO {
public:
    [[nodiscard]] static DeviceInfo getDeviceById(const QString &deviceId);

    [[nodiscard]] static bool upsertDevice(const DeviceInfo &device);

    [[nodiscard]] static bool markDevicesOfflineExcept(const QStringList &onlineDeviceIds);

    [[nodiscard]] static bool updateImage(const QString &deviceId, const QByteArray &imageData);

    [[nodiscard]] static QList<DeviceInfo> getAllDevices(bool online);

    [[nodiscard]] static QList<QString> getOnlineDeviceCodes();
};
