20#ifndef ORES_DQ_CORE_REPOSITORY_FSM_TRANSITION_REPOSITORY_HPP
21#define ORES_DQ_CORE_REPOSITORY_FSM_TRANSITION_REPOSITORY_HPP
26#include <boost/uuid/uuid.hpp>
27#include <sqlgen/postgres.hpp>
28#include "ores.logging/make_logger.hpp"
29#include "ores.database/domain/context.hpp"
30#include "ores.dq.api/domain/fsm_transition.hpp"
32namespace ores::dq::repository {
39 inline static std::string_view logger_name =
40 "ores.dq.repository.fsm_transition_repository";
42 [[nodiscard]]
static auto& lg() {
44 static auto instance = make_logger(logger_name);
54 void write(
context ctx,
const std::vector<domain::fsm_transition>& v);
56 std::vector<domain::fsm_transition> read_latest(
context ctx);
57 std::vector<domain::fsm_transition>
58 read_latest_by_machine(
context ctx,
const boost::uuids::uuid& machine_id);
60 std::optional<domain::fsm_transition>
61 find_by_id(
context ctx,
const boost::uuids::uuid&
id);
63 void remove(
context ctx,
const boost::uuids::uuid&
id);
Implements logging infrastructure for ORE Studio.
Definition boost_severity.hpp:28
Context for the operations on a postgres database.
Definition context.hpp:47
A valid state-to-state transition within a finite state machine.
Definition fsm_transition.hpp:36
Reads and writes FSM transitions to data storage.
Definition fsm_transition_repository.hpp:37