#ifndef GENERIC_SOUND_COLUMN_H
#define GENERIC_SOUND_COLUMN_H
#include "sound_column.h"
#include "sound_column_properties.h"

namespace zsy
{
    struct PlaySoundColumnResult
    {
        int code;
        std::string message;
    };

    inline void from_json(const nlohmann::json &j, PlaySoundColumnResult &o)
    {
        PARSE_JSON(code, o.code);
        PARSE_JSON(message, o.message);
    }

    class GenericSoundColumn final : public SoundColumn
    {
        SoundColumnProperties config;

    public:
        explicit GenericSoundColumn(const SoundColumnProperties &config);

        void play(const std::string &content) override;

        std::string getSn() override;
    };
} // zsy

#endif //GENERIC_SOUND_COLUMN_H
