20#ifndef ORES_RISK_MESSAGING_CURRENCY_PROTOCOL_HPP
21#define ORES_RISK_MESSAGING_CURRENCY_PROTOCOL_HPP
29#include <rfl/json.hpp>
30#include "ores.comms/messaging/message_types.hpp"
31#include "ores.risk/domain/currency.hpp"
33namespace ores::risk::messaging {
58 static std::expected<get_currencies_request, comms::messaging::error_code>
68 std::vector<domain::currency> currencies;
102 std::vector<std::byte>
serialize()
const;
107 static std::expected<get_currencies_response, comms::messaging::error_code>
126 std::vector<std::byte>
serialize()
const;
131 static std::expected<save_currency_request, comms::messaging::error_code>
147 std::vector<std::byte>
serialize()
const;
152 static std::expected<save_currency_response, comms::messaging::error_code>
165 std::vector<std::string> iso_codes;
176 std::vector<std::byte>
serialize()
const;
181 static std::expected<delete_currency_request, comms::messaging::error_code>
191 std::string iso_code;
205 std::vector<delete_currency_result> results;
219 std::vector<std::byte>
serialize()
const;
224 static std::expected<delete_currency_response, comms::messaging::error_code>
Represents a currency with its metadata and formatting rules.
Definition currency.hpp:30
Request to retrieve currencies with pagination support.
Definition currency_protocol.hpp:40
std::uint32_t limit
Maximum number of records to return.
Definition currency_protocol.hpp:44
static std::expected< get_currencies_request, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize request from bytes.
Definition currency_protocol.cpp:230
std::vector< std::byte > serialize() const
Serialize request to bytes.
Definition currency_protocol.cpp:222
std::uint32_t offset
Number of records to skip (0-based)
Definition currency_protocol.hpp:42
Response containing currencies with pagination metadata.
Definition currency_protocol.hpp:67
std::uint32_t total_available_count
Total number of currencies available (not just in this page)
Definition currency_protocol.hpp:70
static std::expected< get_currencies_response, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize response from bytes.
Definition currency_protocol.cpp:280
std::vector< std::byte > serialize() const
Serialize response to bytes.
Definition currency_protocol.cpp:250
Request to save a currency (create or update).
Definition currency_protocol.hpp:120
std::vector< std::byte > serialize() const
Serialize request to bytes.
Definition currency_protocol.cpp:366
static std::expected< save_currency_request, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize request from bytes.
Definition currency_protocol.cpp:373
Response confirming currency save operation.
Definition currency_protocol.hpp:140
static std::expected< save_currency_response, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize response from bytes.
Definition currency_protocol.cpp:394
std::vector< std::byte > serialize() const
Serialize response to bytes.
Definition currency_protocol.cpp:386
Request to delete one or more currencies.
Definition currency_protocol.hpp:164
std::vector< std::byte > serialize() const
Serialize request to bytes.
Definition currency_protocol.cpp:113
static std::expected< delete_currency_request, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize request from bytes.
Definition currency_protocol.cpp:128
Result for a single currency deletion.
Definition currency_protocol.hpp:190
Response confirming currency deletion(s).
Definition currency_protocol.hpp:204
std::vector< std::byte > serialize() const
Serialize response to bytes.
Definition currency_protocol.cpp:161
static std::expected< delete_currency_response, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize response from bytes.
Definition currency_protocol.cpp:178