#ifndef TEST_APPLICATIONS_SETTINGS_H
#define TEST_APPLICATIONS_SETTINGS_H

#include <QObject>

#include "popup-notification.h"

namespace UkuiNotification {

class SingleApplicationSettings : public QObject
{
    Q_OBJECT
public:
    explicit SingleApplicationSettings(QObject *parent = nullptr);

    bool allowNotify() const;
    bool allowSound() const;
    bool showNotificationOnLockScreen() const;
    bool showContentOnLockScreen() const;

    void setAllowNotify(bool value);
    void setAllowSound(bool value);
    void setShowNotificationOnLockScreen(bool value);
    void setShowContentOnLockScreen(bool value);

private:
    bool m_allowNotify {true};
    bool m_allowSound {false};
    bool m_showOnLockScreen {true};
    bool m_showContentOnLockScreen {true};
};

class ApplicationsSettings
{
public:
    static ApplicationsSettings *self();
    bool isInAllowList(const QString &) const;
    SingleApplicationSettings *creatSettings(const PopupNotification &notification);
    static SingleApplicationSettings *settings();
};

} // namespace UkuiNotification

#endif
