FOSSredder 0.5.0
Loading...
Searching...
No Matches
Actor.h
Go to the documentation of this file.
1
5
6#pragma once
7
8#include <algorithm>
9#include <string>
10#include <vector>
11#include <utility>
12
16
17namespace core::domain {
18
19class Actor {
20public:
22
23 Actor(const Actor&) = delete;
24 Actor& operator=(const Actor&) = delete;
25 Actor(Actor&&) = delete;
26 Actor& operator=(Actor&&) = delete;
27
32 void rename(EntityName value);
37 void rename(std::string value);
38
43 void addAlias(Alias value);
44
49 void removeAlias(std::string value);
50
54 void clearAliases();
55
61 void recordAliasHit(std::string value, std::string timestamp = {});
62
68 [[nodiscard]] bool hasAlias(const std::string& value) const;
69
74 [[nodiscard]] std::size_t aliasCount() const noexcept;
75
80 void setContractIds(std::vector<std::string> value);
81
86 void addContractId(std::string value);
87
92 void removeContractId(std::string value);
93
97 void clearContractIds();
98
103 [[nodiscard]] bool hasContractRelations() const noexcept;
104
109 [[nodiscard]] std::size_t contractCount() const noexcept;
110
111private:
112 std::string id_;
113 std::string name_;
114 std::vector<Alias> aliases_;
115 std::vector<std::string> contractIds_;
116 std::string createdAt_;
117 std::string updatedAt_;
118
119public:
120 // Read accessors
121 [[nodiscard]] const std::string& id() const noexcept;
122 [[nodiscard]] const std::string& name() const noexcept;
123 [[nodiscard]] const std::vector<Alias>& aliases() const noexcept;
124 [[nodiscard]] const std::vector<std::string>& contractIds() const noexcept;
125 [[nodiscard]] const std::string& createdAt() const noexcept;
126 [[nodiscard]] const std::string& updatedAt() const noexcept;
127
128 // Technical hydration
129 void setId(std::string value);
130 void setAliases(std::vector<Alias> value);
131 void setCreatedAt(std::string value);
132 void setUpdatedAt(std::string value);
133
134};
135
136} // namespace core::domain
Domain model for entity aliases.
Shared alias normalization and ranking helpers for core entities.
Small value object for normalized entity display names.
void setAliases(std::vector< Alias > value)
Definition Actor.cpp:23
const std::string & updatedAt() const noexcept
Definition Actor.cpp:93
void addAlias(Alias value)
Adds a normalized alias when it is not already present.
Definition Actor.cpp:34
void clearAliases()
Clears all aliases from the actor.
Definition Actor.cpp:47
bool hasContractRelations() const noexcept
Checks whether the actor has at least one linked contract.
Definition Actor.cpp:80
void removeContractId(std::string value)
Removes a linked contract identifier.
Definition Actor.cpp:71
std::size_t aliasCount() const noexcept
Returns the number of aliases.
Definition Actor.cpp:59
void rename(EntityName value)
Renames the actor with normalized entity text.
Definition Actor.cpp:15
Actor(const Actor &)=delete
void removeAlias(std::string value)
Removes an alias.
Definition Actor.cpp:42
const std::string & name() const noexcept
Definition Actor.cpp:89
const std::vector< std::string > & contractIds() const noexcept
Definition Actor.cpp:91
void setContractIds(std::vector< std::string > value)
Replaces all linked contract identifiers.
Definition Actor.cpp:28
void addContractId(std::string value)
Adds a linked contract identifier when it is not already present.
Definition Actor.cpp:63
void recordAliasHit(std::string value, std::string timestamp={})
Records a usage hit for an alias.
Definition Actor.cpp:51
void setUpdatedAt(std::string value)
Definition Actor.cpp:96
std::size_t contractCount() const noexcept
Returns the number of linked contract identifiers.
Definition Actor.cpp:84
Actor & operator=(Actor &&)=delete
void setId(std::string value)
Definition Actor.cpp:94
const std::vector< Alias > & aliases() const noexcept
Definition Actor.cpp:90
bool hasAlias(const std::string &value) const
Checks whether an alias exists on the actor.
Definition Actor.cpp:55
void setCreatedAt(std::string value)
Definition Actor.cpp:95
const std::string & createdAt() const noexcept
Definition Actor.cpp:92
Actor & operator=(const Actor &)=delete
Actor(Actor &&)=delete
void clearContractIds()
Clears all linked contract identifiers.
Definition Actor.cpp:76