added a bigger real-life demo
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
#ifndef LOGIN_HISTORY_HPP
|
||||
#define LOGIN_HISTORY_HPP
|
||||
|
||||
#include "CollectionCenter.hpp"
|
||||
#include "Scenario.hpp"
|
||||
#include "User.hpp"
|
||||
|
||||
#include "../core/Model.hpp"
|
||||
|
||||
#include "matador/object/object_ptr.hpp""
|
||||
|
||||
#include "matador/utils/base_class.hpp"
|
||||
#include "matador/utils/enum_mapper.hpp"
|
||||
|
||||
namespace work::models::admin {
|
||||
|
||||
enum class FailReason : uint8_t {
|
||||
NoFailReason,
|
||||
InternalError,
|
||||
NoPermissionToLogin,
|
||||
NoScenarioForUser,
|
||||
UnknownUserName,
|
||||
UserLockedByAdmin,
|
||||
UserLockedBySystem,
|
||||
UserLockedByAdminAndSystem,
|
||||
WrongPassword
|
||||
};
|
||||
|
||||
static const matador::utils::enum_mapper<FailReason> FailReasonEnum({
|
||||
{FailReason::NoFailReason, "NoFailReason"},
|
||||
{FailReason::InternalError, "InternalError"},
|
||||
{FailReason::NoPermissionToLogin, "NoPermissionToLogin"},
|
||||
{FailReason::NoScenarioForUser, "NoScenarioForUser"},
|
||||
{FailReason::UnknownUserName, "UnknownUserName"},
|
||||
{FailReason::UserLockedByAdmin, "UserLockedByAdmin"},
|
||||
{FailReason::UserLockedBySystem, "UserLockedBySystem"},
|
||||
{FailReason::UserLockedByAdminAndSystem, "UserLockedByAdminAndSystem"},
|
||||
{FailReason::WrongPassword, "WrongPassword"}
|
||||
});
|
||||
|
||||
struct LoginHistory : core::Model {
|
||||
matador::object::object_ptr<User> user;
|
||||
matador::object::object_ptr<Scenario> scenario;
|
||||
matador::object::object_ptr<CollectionCenter> collection_center;
|
||||
std::string login_name;
|
||||
FailReason fail_reason{FailReason::NoFailReason};
|
||||
core::timestamp login_time;
|
||||
|
||||
template<typename Operator>
|
||||
void process( Operator& op ) {
|
||||
namespace field = matador::access;
|
||||
field::process( op, *matador::base_class<Model>( this ) );
|
||||
field::belongs_to( op, "user", user, matador::utils::default_foreign_attributes );
|
||||
field::belongs_to( op, "scenario", scenario, matador::utils::default_foreign_attributes );
|
||||
field::belongs_to( op, "collection_center", collection_center, matador::utils::default_foreign_attributes );
|
||||
field::attribute( op, "login_name", login_name, 511 );
|
||||
field::attribute( op, "fail_reason", fail_reason );
|
||||
field::attribute( op, "login_time", login_time );
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#endif //LOGIN_HISTORY_HPP
|
||||
Reference in New Issue
Block a user