20#ifndef ORES_ACCOUNTS_MESSAGING_ACCOUNT_PROTOCOL_HPP
21#define ORES_ACCOUNTS_MESSAGING_ACCOUNT_PROTOCOL_HPP
27#include <boost/uuid/uuid.hpp>
28#include "ores.comms/messaging/message_types.hpp"
29#include "ores.accounts/domain/account.hpp"
31namespace ores::accounts::messaging {
39 std::string totp_secret;
41 std::string recorded_by;
42 bool is_admin =
false;
65 static std::expected<create_account_request, comms::messaging::error_code>
75 boost::uuids::uuid account_id;
88 static std::expected<create_account_response, comms::messaging::error_code>
112 std::vector<std::byte>
serialize()
const;
117 static std::expected<list_accounts_request, comms::messaging::error_code>
127 std::vector<domain::account> accounts;
154 std::vector<std::byte>
serialize()
const;
159 static std::expected<list_accounts_response, comms::messaging::error_code>
173 std::vector<boost::uuids::uuid> account_ids;
183 std::vector<std::byte>
serialize()
const;
188 static std::expected<unlock_account_request, comms::messaging::error_code>
198 boost::uuids::uuid account_id;
199 bool success =
false;
212 std::vector<unlock_account_result> results;
225 std::vector<std::byte>
serialize()
const;
230 static std::expected<unlock_account_response, comms::messaging::error_code>
240 boost::uuids::uuid account_id;
248 std::vector<std::byte>
serialize()
const;
253 static std::expected<delete_account_request, comms::messaging::error_code>
263 bool success =
false;
274 std::vector<std::byte>
serialize()
const;
279 static std::expected<delete_account_response, comms::messaging::error_code>
293 std::vector<boost::uuids::uuid> account_ids;
303 std::vector<std::byte>
serialize()
const;
308 static std::expected<lock_account_request, comms::messaging::error_code>
318 boost::uuids::uuid account_id;
319 bool success =
false;
332 std::vector<lock_account_result> results;
345 std::vector<std::byte>
serialize()
const;
350 static std::expected<lock_account_response, comms::messaging::error_code>
363 boost::uuids::uuid account_id;
365 std::string recorded_by;
366 bool is_admin =
false;
379 std::vector<std::byte>
serialize()
const;
384 static std::expected<update_account_request, comms::messaging::error_code>
394 bool success =
false;
395 std::string error_message;
405 std::vector<std::byte>
serialize()
const;
410 static std::expected<update_account_response, comms::messaging::error_code>
424 std::vector<boost::uuids::uuid> account_ids;
434 std::vector<std::byte>
serialize()
const;
439 static std::expected<reset_password_request, comms::messaging::error_code>
449 boost::uuids::uuid account_id;
450 bool success =
false;
463 std::vector<reset_password_result> results;
476 std::vector<std::byte>
serialize()
const;
481 static std::expected<reset_password_response, comms::messaging::error_code>
494 std::string new_password;
503 std::vector<std::byte>
serialize()
const;
508 static std::expected<change_password_request, comms::messaging::error_code>
518 bool success =
false;
529 std::vector<std::byte>
serialize()
const;
534 static std::expected<change_password_response, comms::messaging::error_code>
547 std::string new_email;
556 std::vector<std::byte>
serialize()
const;
561 static std::expected<update_my_email_request, comms::messaging::error_code>
571 bool success =
false;
582 std::vector<std::byte>
serialize()
const;
587 static std::expected<update_my_email_response, comms::messaging::error_code>
Request to create a new account.
Definition account_protocol.hpp:36
std::vector< std::byte > serialize() const
Serialize request to bytes.
Definition account_protocol.cpp:35
static std::expected< create_account_request, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize request from bytes.
Definition account_protocol.cpp:47
Response containing the created account ID.
Definition account_protocol.hpp:74
std::vector< std::byte > serialize() const
Serialize response to bytes.
Definition account_protocol.cpp:83
static std::expected< create_account_response, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize response from bytes.
Definition account_protocol.cpp:90
Request to retrieve accounts with pagination support.
Definition account_protocol.hpp:99
std::uint32_t limit
Maximum number of records to return.
Definition account_protocol.hpp:103
std::vector< std::byte > serialize() const
Serialize request to bytes.
Definition account_protocol.cpp:106
static std::expected< list_accounts_request, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize request from bytes.
Definition account_protocol.cpp:114
std::uint32_t offset
Number of records to skip (0-based)
Definition account_protocol.hpp:101
Response containing accounts with pagination metadata.
Definition account_protocol.hpp:126
std::uint32_t total_available_count
Total number of accounts available (not just in this page)
Definition account_protocol.hpp:129
std::vector< std::byte > serialize() const
Serialize response to bytes.
Definition account_protocol.cpp:134
static std::expected< list_accounts_response, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize response from bytes.
Definition account_protocol.cpp:161
Request to unlock one or more locked accounts.
Definition account_protocol.hpp:172
static std::expected< unlock_account_request, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize request from bytes.
Definition account_protocol.cpp:244
std::vector< std::byte > serialize() const
Serialize request to bytes.
Definition account_protocol.cpp:234
Result for a single account unlock operation.
Definition account_protocol.hpp:197
Response containing results for unlock operation(s).
Definition account_protocol.hpp:211
static std::expected< unlock_account_response, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize response from bytes.
Definition account_protocol.cpp:285
std::vector< std::byte > serialize() const
Serialize response to bytes.
Definition account_protocol.cpp:273
Request to delete an account.
Definition account_protocol.hpp:239
std::vector< std::byte > serialize() const
Serialize request to bytes.
Definition account_protocol.cpp:320
static std::expected< delete_account_request, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize request from bytes.
Definition account_protocol.cpp:327
Response confirming account deletion.
Definition account_protocol.hpp:262
static std::expected< delete_account_response, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize response from bytes.
Definition account_protocol.cpp:348
std::vector< std::byte > serialize() const
Serialize response to bytes.
Definition account_protocol.cpp:340
Request to lock one or more accounts.
Definition account_protocol.hpp:292
std::vector< std::byte > serialize() const
Serialize request to bytes.
Definition account_protocol.cpp:371
static std::expected< lock_account_request, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize request from bytes.
Definition account_protocol.cpp:381
Result for a single account lock operation.
Definition account_protocol.hpp:317
Response containing results for lock operation(s).
Definition account_protocol.hpp:331
std::vector< std::byte > serialize() const
Serialize response to bytes.
Definition account_protocol.cpp:410
static std::expected< lock_account_response, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize response from bytes.
Definition account_protocol.cpp:422
Request to update an existing account.
Definition account_protocol.hpp:362
static std::expected< update_account_request, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize request from bytes.
Definition account_protocol.cpp:467
std::vector< std::byte > serialize() const
Serialize request to bytes.
Definition account_protocol.cpp:457
Response indicating whether update operation succeeded.
Definition account_protocol.hpp:393
std::vector< std::byte > serialize() const
Serialize response to bytes.
Definition account_protocol.cpp:495
static std::expected< update_account_response, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize response from bytes.
Definition account_protocol.cpp:503
Request to reset password for one or more accounts.
Definition account_protocol.hpp:423
std::vector< std::byte > serialize() const
Serialize request to bytes.
Definition account_protocol.cpp:523
static std::expected< reset_password_request, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize request from bytes.
Definition account_protocol.cpp:533
Result for a single password reset operation.
Definition account_protocol.hpp:448
Response containing results for password reset operation(s).
Definition account_protocol.hpp:462
std::vector< std::byte > serialize() const
Serialize response to bytes.
Definition account_protocol.cpp:562
static std::expected< reset_password_response, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize response from bytes.
Definition account_protocol.cpp:574
Request to change the current user's password.
Definition account_protocol.hpp:493
static std::expected< change_password_request, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize request from bytes.
Definition account_protocol.cpp:616
std::vector< std::byte > serialize() const
Serialize request to bytes.
Definition account_protocol.cpp:609
Response indicating whether password change succeeded.
Definition account_protocol.hpp:517
static std::expected< change_password_response, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize response from bytes.
Definition account_protocol.cpp:641
std::vector< std::byte > serialize() const
Serialize response to bytes.
Definition account_protocol.cpp:633
Request to update the current user's email address.
Definition account_protocol.hpp:546
static std::expected< update_my_email_request, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize request from bytes.
Definition account_protocol.cpp:668
std::vector< std::byte > serialize() const
Serialize request to bytes.
Definition account_protocol.cpp:661
Response indicating whether email update succeeded.
Definition account_protocol.hpp:570
std::vector< std::byte > serialize() const
Serialize response to bytes.
Definition account_protocol.cpp:684
static std::expected< update_my_email_response, comms::messaging::error_code > deserialize(std::span< const std::byte > data)
Deserialize response from bytes.
Definition account_protocol.cpp:692