#ifndef RANDOMMANAGER_H #define RANDOMMANAGER_H #include #include #include #include #include "udatabase.h" class RandomManager : public QObject { Q_OBJECT public: struct RandomStruct { QString name; int startValue; int endValue; RandomStruct() : startValue(0), endValue(0) {} RandomStruct(const QString &name, int start, int end) : name(name), startValue(start), endValue(end) {} bool operator==(const QString &otherName) const { return name == otherName; } }; explicit RandomManager(QObject *parent = nullptr); ~RandomManager(); // Основные методы bool initialize(uDataBase *database); // Работа с диапазонами bool addRange(const QString &name, int startValue, int endValue); bool removeRange(const QString &name); bool updateRange(const QString &oldName, const QString &newName, int startValue, int endValue); // Получение данных QList getAllRanges() const { return m_ranges; } bool contains(const QString &name) const; int getRandomValue(const QString &name) const; QPair getRange(const QString &name) const; // Сохранение/загрузка bool saveToDatabase(); bool loadFromDatabase(); // Валидация bool isValidRange(int start, int end) const; signals: void dataChanged(); void rangeAdded(const QString &name, int start, int end); void rangeRemoved(const QString &name); void rangeUpdated(const QString &oldName, const QString &newName); private: uDataBase *m_database; QList m_ranges; int findIndex(const QString &name) const; }; #endif // RANDOMMANAGER_H