lintel 0.2.0
Loading...
Searching...
No Matches
User.h
Go to the documentation of this file.
1#ifndef LINTEL_USER_H
2#define LINTEL_USER_H
3
4#include <chrono>
5#include <ostream>
6#include <set>
7#include <string>
8#include <utility>
9
11
12namespace lintel {
22class User
23{
24public:
25 enum Sex { Male, Female };
26
27private:
28 std::string m_firstName;
29 std::string m_lastName;
30 Sex m_sex;
31 std::string m_email;
32 std::string m_userName;
33 std::string m_password;
34
35 std::chrono::sys_time<std::chrono::microseconds> m_createdTimestamp;
36 std::vector<Group> m_groups;
37 std::set<Group> m_allGroups{};// including subgroups
38
39public:
51 User(std::string firstName,
52 std::string lastName,
53 Sex sex,
54 std::string email,
55 std::string userName,
56 std::string password,
57 std::vector<Group> groups,
58 std::chrono::sys_time<std::chrono::microseconds> createdTimestamp =
59 std::chrono::time_point_cast<std::chrono::microseconds>(std::chrono::system_clock::now()));
60
62 [[nodiscard]] const std::string &getFirstName() const;
63
65 [[nodiscard]] const std::string &getLastName() const;
66
68 [[nodiscard]] Sex getSex() const;
69
71 [[nodiscard]] const std::string &getEmail() const;
72
74 [[nodiscard]] const std::string &getUserName() const;
75
77 [[nodiscard]] const std::string &getPassword() const;
78
84 bool has(const Group &group) const;
85
87 [[nodiscard]] const std::chrono::sys_time<std::chrono::microseconds> &getCreatedTimestamp() const;
88
90 [[nodiscard]] const std::vector<Group> &getGroups() const;
91
92 friend std::ostream &operator<<(std::ostream &os, const User &user);
93};
94
95}// namespace lintel
96#endif// LINTEL_USER_H
Definition Group.h:35
Definition User.h:23
const std::vector< Group > & getGroups() const
const std::string & getLastName() const
bool has(const Group &group) const
Sex
Definition User.h:25
@ Female
Definition User.h:25
@ Male
Definition User.h:25
const std::string & getPassword() const
const std::string & getEmail() const
User(std::string firstName, std::string lastName, Sex sex, std::string email, std::string userName, std::string password, std::vector< Group > groups, std::chrono::sys_time< std::chrono::microseconds > createdTimestamp=std::chrono::time_point_cast< std::chrono::microseconds >(std::chrono::system_clock::now()))
const std::string & getUserName() const
const std::chrono::sys_time< std::chrono::microseconds > & getCreatedTimestamp() const
const std::string & getFirstName() const
friend std::ostream & operator<<(std::ostream &os, const User &user)
Sex getSex() const
Definition BaseFeature.h:6
constexpr std::string_view type_name()
Definition TypeName.h:9