// SPDX-FileCopyrightText: 2024 Yury Gubich <blue@macaw.me>
// SPDX-License-Identifier: GPL-3.0-or-later

#pragma once

#include "shared/definitions.h"
#include "shared/result.h"
#include "module.h"

namespace Module {

class Actor : public Module {
public:
    Actor(const std::shared_ptr<Core>& core, const Config::Module& conf);
    ~Actor() noexcept;

    virtual Shared::Result message(const std::shared_ptr<::Actor>& actor, std::string_view view) override;

private:
    std::string list();
    std::string set(const std::string_view& jid, const std::string_view& group);
};

}