20#ifndef ORES_REFDATA_CORE_REPOSITORY_PARTY_REPOSITORY_HPP
21#define ORES_REFDATA_CORE_REPOSITORY_PARTY_REPOSITORY_HPP
26#include <sqlgen/postgres.hpp>
27#include <boost/uuid/uuid.hpp>
28#include "ores.logging/make_logger.hpp"
29#include "ores.database/domain/context.hpp"
30#include "ores.refdata.api/domain/party.hpp"
39 inline static std::string_view logger_name =
40 "ores.refdata.repository.party_repository";
42 [[nodiscard]]
static auto& lg() {
44 static auto instance = make_logger(logger_name);
56 void write(
const std::vector<domain::party>& parties);
58 std::vector<domain::party> read_latest();
59 std::vector<domain::party> read_latest(
const boost::uuids::uuid&
id);
60 std::vector<domain::party> read_latest_by_code(
const std::string& code);
71 std::vector<domain::party>
80 std::vector<domain::party> read_latest(std::uint32_t offset,
98 std::vector<boost::uuids::uuid>
101 std::vector<domain::party> read_all(
const boost::uuids::uuid&
id);
102 void remove(
const boost::uuids::uuid&
id);
Implements logging infrastructure for ORE Studio.
Definition boost_severity.hpp:28
Database persistence layer for risk domain types.
Definition book_entity.hpp:28
Context for the operations on a postgres database.
Definition context.hpp:47
An internal legal entity participating in financial transactions.
Definition party.hpp:37
Reads and writes parties to data storage.
Definition party_repository.hpp:37
std::vector< boost::uuids::uuid > read_descendants(const boost::uuids::uuid &root_id)
Reads all parties in the subtree rooted at the given party.
Definition party_repository.cpp:194
std::uint32_t get_total_party_count()
Gets the total count of active parties.
Definition party_repository.cpp:171
std::vector< domain::party > read_system_party(const std::string &tenant_id)
Reads the system party for a given tenant.
Definition party_repository.cpp:106