#pragma once #include #include "db/MaterialInfo.h" class MaterialDAO { public: [[nodiscard]] static bool upsertAccount(const MaterialInfo &info); [[nodiscard]] static bool updateAccountById( int id, const QString &status, const QString &description, const QString ¤cy ); [[nodiscard]] static bool deleteAccount(int id); [[nodiscard]] static bool updateCardNumber(int accountId, const QString &cardNumber); [[nodiscard]] static bool updateMaterialId(int accountId, const QString &materialId); [[nodiscard]] static QList getAccounts(const QString &deviceId, const QString &appName); [[nodiscard]] static MaterialInfo getAccountById(int accountId); [[nodiscard]] static QList getAccountsByAppCode(const QString &appCode); [[nodiscard]] static MaterialInfo findAppAccount( const QString &deviceId, const QString &appName, const QString &lastNumber ); [[nodiscard]] static MaterialInfo findByMaterialId(const QString &materialId); [[nodiscard]] static QStringList getActiveMaterialIds(); [[nodiscard]] static QStringList getActiveMaterialIdsExcludingDevices(const QSet &excludeDevices); [[nodiscard]] static bool migrateDeviceId(const QString &oldDeviceId, const QString &newDeviceId); };