20#ifndef ORES_CONNECTIONS_REPOSITORY_ENVIRONMENT_TAG_REPOSITORY_HPP
21#define ORES_CONNECTIONS_REPOSITORY_ENVIRONMENT_TAG_REPOSITORY_HPP
24#include <boost/uuid/uuid.hpp>
25#include "ores.connections/domain/environment_tag.hpp"
26#include "ores.connections/repository/sqlite_context.hpp"
28namespace ores::connections::repository {
30class environment_tag_repository final {
32 explicit environment_tag_repository(sqlite_context& ctx);
34 void write(
const domain::environment_tag& et);
35 void write(
const std::vector<domain::environment_tag>& tags);
40 std::vector<domain::environment_tag> read_by_environment(
41 const boost::uuids::uuid& environment_id);
46 std::vector<domain::environment_tag> read_by_tag(
const boost::uuids::uuid& tag_id);
51 void remove(
const boost::uuids::uuid& environment_id,
const boost::uuids::uuid& tag_id);
56 void remove_by_environment(
const boost::uuids::uuid& environment_id);
61 void remove_by_tag(
const boost::uuids::uuid& tag_id);