#pragma once #include #include #include #include #include namespace lm { class Database; class SoundStore { public: SoundStore(Database& db); nlohmann::json list() const; std::optional find(const std::string& id) const; std::optional create(const nlohmann::json& payload, std::string& err); bool update(const std::string& id, const nlohmann::json& payload, std::string& err); bool remove(const std::string& id, std::string& err); std::optional filePath(const std::string& id) const; bool saveFile(const std::string& id, const std::string& filename, const std::string& bytes, std::string& err); private: Database& db_; mutable std::mutex mu_; }; } // namespace lm