TTW_Bot/randomresponses.h

55 lines
1.7 KiB
C++

#ifndef RANDOMRESPONSES_H
#define RANDOMRESPONSES_H
#include <QObject>
#include <QString>
#include <QStringList>
#include <QMap>
#include <QList>
#include <QVector>
#include <QRandomGenerator>
// Структура для хранения группы ответов
struct ResponseGroup {
QString name; // Имя группы
QStringList responses; // Список возможных ответов
};
class RandomResponses : public QObject
{
Q_OBJECT
public:
explicit RandomResponses(QObject *parent = nullptr);
// Получить случайный ответ из группы
QString getResponse(const QString &groupName);
// Добавить группу или дополнить существующую
bool addResponse(const QString &groupName, const QString &response);
// Удалить конкретный ответ из группы
bool removeResponse(const QString &groupName, const QString &response);
// Удалить всю группу
bool removeGroup(const QString &groupName);
// Получить список всех групп
QStringList getGroupNames() const;
// Получить все ответы группы
QStringList getGroupResponses(const QString &groupName) const;
// Проверить существование группы
bool hasGroup(const QString &groupName) const;
// Очистить все данные
void clear();
private:
QMap<QString, ResponseGroup> m_groups; // Хранение групп по имени
QRandomGenerator m_randomGenerator; // Генератор случайных чисел
};
#endif // RANDOMRESPONSES_H