ORE Studio 0.0.4
Loading...
Searching...
No Matches
badge_protocol.hpp
1/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 *
3 * Copyright (C) 2026 Marco Craveiro <marco.craveiro@gmail.com>
4 *
5 * This program is free software; you can redistribute it and/or modify it under
6 * the terms of the GNU General Public License as published by the Free Software
7 * Foundation; either version 3 of the License, or (at your option) any later
8 * version.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13 * details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc., 51
17 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 *
19 */
20#ifndef ORES_DQ_API_MESSAGING_BADGE_PROTOCOL_HPP
21#define ORES_DQ_API_MESSAGING_BADGE_PROTOCOL_HPP
22
23#include <string>
24#include <string_view>
25#include <vector>
26#include "ores.dq/domain/badge_severity.hpp"
27#include "ores.dq/domain/badge_definition.hpp"
28#include "ores.dq/domain/code_domain.hpp"
29
30namespace ores::dq::messaging {
31
32// =============================================================================
33// Badge Mapping Domain Type
34// =============================================================================
35
43 std::string code_domain_code;
44 std::string entity_code;
45 std::string badge_code;
46};
47
48// =============================================================================
49// Badge Severity Protocol
50// =============================================================================
51
54 static constexpr std::string_view nats_subject = "dq.v1.badge_severities.list";
55 int offset = 0;
56 int limit = 1000;
57};
58
60 std::vector<ores::dq::domain::badge_severity> badge_severities;
61 int total_available_count = 0;
62};
63
66 static constexpr std::string_view nats_subject = "dq.v1.badge_severities.save";
68};
69
71 bool success = false;
72 std::string message;
73};
74
77 static constexpr std::string_view nats_subject = "dq.v1.badge_severities.delete";
78 std::vector<std::string> codes;
79};
80
82 bool success = false;
83 std::string message;
84};
85
88 static constexpr std::string_view nats_subject = "dq.v1.badge_severities.history";
89 std::string code;
90};
91
93 bool success = false;
94 std::string message;
95 std::vector<ores::dq::domain::badge_severity> history;
96};
97
98// =============================================================================
99// Code Domain Protocol
100// =============================================================================
101
104 static constexpr std::string_view nats_subject = "dq.v1.code_domains.list";
105 int offset = 0;
106 int limit = 1000;
107};
108
110 std::vector<ores::dq::domain::code_domain> code_domains;
111 int total_available_count = 0;
112};
113
116 static constexpr std::string_view nats_subject = "dq.v1.code_domains.save";
118};
119
121 bool success = false;
122 std::string message;
123};
124
127 static constexpr std::string_view nats_subject = "dq.v1.code_domains.delete";
128 std::vector<std::string> codes;
129};
130
132 bool success = false;
133 std::string message;
134};
135
138 static constexpr std::string_view nats_subject = "dq.v1.code_domains.history";
139 std::string code;
140};
141
143 bool success = false;
144 std::string message;
145 std::vector<ores::dq::domain::code_domain> history;
146};
147
148// =============================================================================
149// Badge Definition Protocol
150// =============================================================================
151
154 static constexpr std::string_view nats_subject = "dq.v1.badge_definitions.list";
155 int offset = 0;
156 int limit = 1000;
157};
158
160 std::vector<ores::dq::domain::badge_definition> definitions;
161 int total_available_count = 0;
162};
163
166 static constexpr std::string_view nats_subject = "dq.v1.badge_definitions.save";
168};
169
171 bool success = false;
172 std::string message;
173};
174
177 static constexpr std::string_view nats_subject = "dq.v1.badge_definitions.delete";
178 std::vector<std::string> codes;
179};
180
182 bool success = false;
183 std::string message;
184};
185
188 static constexpr std::string_view nats_subject = "dq.v1.badge_definitions.history";
189 std::string code;
190};
191
193 bool success = false;
194 std::string message;
195 std::vector<ores::dq::domain::badge_definition> history;
196};
197
198// =============================================================================
199// Badge Mapping Protocol (read-only)
200// =============================================================================
201
202struct get_badge_mappings_request {
203 using response_type = struct get_badge_mappings_response;
204 static constexpr std::string_view nats_subject = "dq.v1.badge_mappings.list";
205};
206
207struct get_badge_mappings_response {
208 std::vector<badge_mapping> mappings;
209};
210
211}
212
213#endif
Lightweight read-only projection of a badge mapping entry.
Definition badge_protocol.hpp:42
Request to retrieve all badge severities.
Definition badge_protocol.hpp:52
Response containing all badge severities.
Definition badge_protocol.hpp:59
Request to save a badge severity (create or update).
Definition badge_protocol.hpp:64
Response confirming badge severity save operation.
Definition badge_protocol.hpp:70
Request to delete one or more badge severities.
Definition badge_protocol.hpp:75
std::vector< std::string > codes
Primary keys.
Definition badge_protocol.hpp:78
Response confirming badge severity deletion(s).
Definition badge_protocol.hpp:81
Request to retrieve version history for a badge severity.
Definition badge_protocol.hpp:86
std::string code
Primary key.
Definition badge_protocol.hpp:89
Response containing badge severity version history.
Definition badge_protocol.hpp:92
Request to retrieve all code domains.
Definition badge_protocol.hpp:102
Response containing all code domains.
Definition badge_protocol.hpp:109
Request to save a code domain (create or update).
Definition badge_protocol.hpp:114
Response confirming code domain save operation.
Definition badge_protocol.hpp:120
Request to delete one or more code domains.
Definition badge_protocol.hpp:125
std::vector< std::string > codes
Primary keys.
Definition badge_protocol.hpp:128
Response confirming code domain deletion(s).
Definition badge_protocol.hpp:131
Request to retrieve version history for a code domain.
Definition badge_protocol.hpp:136
std::string code
Primary key.
Definition badge_protocol.hpp:139
Response containing code domain version history.
Definition badge_protocol.hpp:142
Request to retrieve all badge definitions.
Definition badge_protocol.hpp:152
Response containing all badge definitions.
Definition badge_protocol.hpp:159
Request to save a badge definition (create or update).
Definition badge_protocol.hpp:164
Response confirming badge definition save operation.
Definition badge_protocol.hpp:170
Request to delete one or more badge definitions.
Definition badge_protocol.hpp:175
std::vector< std::string > codes
Primary keys.
Definition badge_protocol.hpp:178
Response confirming badge definition deletion(s).
Definition badge_protocol.hpp:181
Request to retrieve version history for a badge definition.
Definition badge_protocol.hpp:186
std::string code
Primary key.
Definition badge_protocol.hpp:189
Response containing badge definition version history.
Definition badge_protocol.hpp:192
Visual definition for a badge, including colours, label, and severity.
Definition badge_definition.hpp:41
Severity levels for badge visual classification.
Definition badge_severity.hpp:38
A named namespace for disambiguating enum codes across entity types.
Definition code_domain.hpp:41