adjust work project to the current codebase
This commit is contained in:
parent
dfd31cdf35
commit
41f6c9f516
|
|
@ -21,18 +21,10 @@
|
||||||
|
|
||||||
#include "matador/sql/connection.hpp"
|
#include "matador/sql/connection.hpp"
|
||||||
|
|
||||||
|
#include "matador/query/schema.hpp"
|
||||||
|
|
||||||
#include "matador/orm/session.hpp"
|
#include "matador/orm/session.hpp"
|
||||||
|
|
||||||
template <> struct matador::utils::data_type_traits<work::core::timestamp, void> {
|
|
||||||
static basic_type type(std::size_t /*size*/) { return basic_type::UInt64; }
|
|
||||||
static void read_value(attribute_reader &/*reader*/, const char * /*id*/, size_t /*index*/, nullptr_t &/*value*/) {
|
|
||||||
|
|
||||||
}
|
|
||||||
static void bind_value(attribute_writer &/*binder*/, size_t /*index*/, nullptr_t &/*value*/) {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <> struct matador::utils::data_type_traits<work::core::UserInfo, void> {
|
template <> struct matador::utils::data_type_traits<work::core::UserInfo, void> {
|
||||||
static basic_type type(std::size_t /*size*/) { return basic_type::UInt64; }
|
static basic_type type(std::size_t /*size*/) { return basic_type::UInt64; }
|
||||||
static void read_value(attribute_reader &/*reader*/, const char * /*id*/, size_t /*index*/, nullptr_t &/*value*/) {
|
static void read_value(attribute_reader &/*reader*/, const char * /*id*/, size_t /*index*/, nullptr_t &/*value*/) {
|
||||||
|
|
@ -70,46 +62,47 @@ using namespace work::models;
|
||||||
// payload.is_polymorphic_type<jobs::IdPayload>();
|
// payload.is_polymorphic_type<jobs::IdPayload>();
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
// logger::default_min_log_level(logger::log_level::LVL_DEBUG);
|
logger::default_min_log_level(logger::log_level::LVL_DEBUG);
|
||||||
// logger::add_log_sink(logger::create_stdout_sink());
|
logger::add_log_sink(logger::create_stdout_sink());
|
||||||
|
|
||||||
// sql::connection_pool<sql::connection> pool("postgres://news:news@127.0.0.1:15432/matador", 4);
|
// sql::connection_pool<sql::connection> pool("postgres://news:news@127.0.0.1:15432/matador", 4);
|
||||||
sql::connection_pool pool("postgres://test:test123!@127.0.0.1:5432/matador", 4);
|
sql::connection_pool pool("postgres://test:test123!@127.0.0.1:5432/matador", 4);
|
||||||
|
|
||||||
object::repository repo("Administration");
|
|
||||||
|
|
||||||
auto result = repo.attach<admin::CollectionCenter>("collection_centers");
|
|
||||||
// repo.create(pool);
|
|
||||||
// repo.drop(pool);
|
|
||||||
|
|
||||||
utils::message_bus bus;
|
utils::message_bus bus;
|
||||||
orm::session ses({bus, pool});
|
// query::schema ses({bus, pool});
|
||||||
|
query::schema admin_schema("Administration");
|
||||||
|
|
||||||
result = ses.attach<admin::CollectionCenter>("collection_centers")
|
auto result = admin_schema.attach<admin::CollectionCenter>("collection_centers")
|
||||||
.and_then([&ses] { return ses.attach<admin::UserDirectory>("user_directories"); })
|
.and_then([&admin_schema] { return admin_schema.attach<admin::UserDirectory>("user_directories"); })
|
||||||
.and_then([&ses] { return ses.attach<admin::LdapGroupSchemaSettings>("ldap_group_schema_settings"); })
|
.and_then([&admin_schema] { return admin_schema.attach<admin::LdapGroupSchemaSettings>("ldap_group_schema_settings"); })
|
||||||
.and_then([&ses] { return ses.attach<admin::LdapImportSettings>("ldap_import_settings"); })
|
.and_then([&admin_schema] { return admin_schema.attach<admin::LdapImportSettings>("ldap_import_settings"); })
|
||||||
.and_then([&ses] { return ses.attach<admin::LdapUserSchemaSettings>("ldap_user_schema_settings"); })
|
.and_then([&admin_schema] { return admin_schema.attach<admin::LdapUserSchemaSettings>("ldap_user_schema_settings"); })
|
||||||
.and_then([&ses] { return ses.attach<admin::InternalUserDirectory, admin::UserDirectory>("internal_user_directories"); })
|
.and_then([&admin_schema] { return admin_schema.attach<admin::InternalUserDirectory, admin::UserDirectory>("internal_user_directories"); })
|
||||||
.and_then([&ses] { return ses.attach<admin::LdapUserDirectory, admin::UserDirectory>("ldap_user_directories"); } )
|
.and_then([&admin_schema] { return admin_schema.attach<admin::LdapUserDirectory, admin::UserDirectory>("ldap_user_directories"); } )
|
||||||
.and_then([&ses] { return ses.attach<admin::LoginHistory>("login_histories"); })
|
.and_then([&admin_schema] { return admin_schema.attach<admin::LoginHistory>("login_histories"); })
|
||||||
.and_then([&ses] { return ses.attach<admin::Scenario>("scenarios"); })
|
.and_then([&admin_schema] { return admin_schema.attach<admin::Scenario>("scenarios"); })
|
||||||
.and_then([&ses] { return ses.attach<admin::User>("users"); })
|
.and_then([&admin_schema] { return admin_schema.attach<admin::User>("users"); })
|
||||||
.and_then([&ses] { return ses.attach<admin::UserSession>("user_sessions"); })
|
.and_then([&admin_schema] { return admin_schema.attach<admin::UserSession>("user_sessions"); })
|
||||||
.and_then([&ses] { return ses.attach<jobs::Job>("jobs"); })
|
.and_then([&admin_schema] { return admin_schema.attach<jobs::Job>("jobs"); })
|
||||||
.and_then([&ses] { return ses.attach<jobs::Payload>("payloads"); })
|
.and_then([&admin_schema] { return admin_schema.attach<jobs::Payload>("payloads"); })
|
||||||
.and_then([&ses] { return ses.attach<jobs::IdPayload, jobs::Payload>("id_list_payloads"); })
|
.and_then([&admin_schema] { return admin_schema.attach<jobs::IdPayload, jobs::Payload>("id_list_payloads"); })
|
||||||
.and_then([&ses] { return ses.attach<jobs::IdListPayload, jobs::Payload>("id_payloads"); })
|
.and_then([&admin_schema] { return admin_schema.attach<jobs::IdListPayload, jobs::Payload>("id_payloads"); })
|
||||||
.and_then([&ses] { return ses.attach<jobs::Task>("tasks"); })
|
.and_then([&admin_schema] { return admin_schema.attach<jobs::Task>("tasks"); })
|
||||||
;
|
;
|
||||||
ses.dump_schema(std::cout);
|
admin_schema.dump(std::cout);
|
||||||
|
|
||||||
if (!result) {
|
if (!result) {
|
||||||
std::cout << "error: " << result.err().message() << std::endl;
|
std::cout << "error: " << result.err().message() << std::endl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = ses.create_schema();
|
const auto conn = pool.acquire();
|
||||||
|
result = admin_schema.create(*conn);
|
||||||
|
if (!result) {
|
||||||
|
std::cout << "error: " << result.err() << std::endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
result = admin_schema.drop(*conn);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
std::cout << "error: " << result.err() << std::endl;
|
std::cout << "error: " << result.err() << std::endl;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@
|
||||||
#include "matador/utils/fetch_type.hpp"
|
#include "matador/utils/fetch_type.hpp"
|
||||||
#include "matador/utils/types.hpp"
|
#include "matador/utils/types.hpp"
|
||||||
|
|
||||||
|
#include "matador/query/meta_table_macro.hpp"
|
||||||
|
|
||||||
namespace work::models::admin {
|
namespace work::models::admin {
|
||||||
struct User;
|
struct User;
|
||||||
|
|
||||||
|
|
@ -45,4 +47,6 @@ struct CollectionCenter : core::Model {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
META_TABLE(collection_center, COLLECTION_CENTER, id, version, name, symbol, type)
|
||||||
|
|
||||||
#endif //COLLECTION_CENTER_HPP
|
#endif //COLLECTION_CENTER_HPP
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include "../core/Model.hpp"
|
#include "../core/Model.hpp"
|
||||||
|
|
||||||
#include "matador/utils/base_class.hpp"
|
#include "matador/utils/base_class.hpp"
|
||||||
|
#include "matador/utils/foreign_attributes.hpp"
|
||||||
|
|
||||||
namespace work::models::admin {
|
namespace work::models::admin {
|
||||||
struct LdapUserDirectory;
|
struct LdapUserDirectory;
|
||||||
|
|
@ -17,7 +18,7 @@ struct LdapGroupSchemaSettings : core::Model {
|
||||||
void process( Operator& op ) {
|
void process( Operator& op ) {
|
||||||
namespace field = matador::access;
|
namespace field = matador::access;
|
||||||
field::process( op, *matador::base_class<Model>( this ) );
|
field::process( op, *matador::base_class<Model>( this ) );
|
||||||
field::has_one(op, "ldap_user_directory", ldap_user_directory, matador::utils::default_foreign_attributes);
|
field::has_one(op, "ldap_user_directory", ldap_user_directory, matador::utils::CascadeAllFetchLazy);
|
||||||
field::attribute( op, "group_object_filter", group_object_filter, 511 );
|
field::attribute( op, "group_object_filter", group_object_filter, 511 );
|
||||||
field::attribute( op, "user_member_attribute", user_member_attribute, 511 );
|
field::attribute( op, "user_member_attribute", user_member_attribute, 511 );
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include "../core/Model.hpp"
|
#include "../core/Model.hpp"
|
||||||
|
|
||||||
#include "matador/utils/base_class.hpp"
|
#include "matador/utils/base_class.hpp"
|
||||||
|
#include "matador/utils/foreign_attributes.hpp"
|
||||||
|
|
||||||
namespace work::models::admin {
|
namespace work::models::admin {
|
||||||
struct LdapUserDirectory;
|
struct LdapUserDirectory;
|
||||||
|
|
@ -18,7 +19,7 @@ struct LdapImportSettings : core::Model {
|
||||||
void process( Operator& op ) {
|
void process( Operator& op ) {
|
||||||
namespace field = matador::access;
|
namespace field = matador::access;
|
||||||
field::process( op, *matador::base_class<Model>( this ) );
|
field::process( op, *matador::base_class<Model>( this ) );
|
||||||
field::has_one(op, "ldap_user_directory", ldap_user_directory, matador::utils::default_foreign_attributes);
|
field::has_one(op, "ldap_user_directory", ldap_user_directory, matador::utils::CascadeAllFetchLazy);
|
||||||
field::attribute( op, "default_role", default_role, 511 );
|
field::attribute( op, "default_role", default_role, 511 );
|
||||||
field::attribute( op, "sync_interval", sync_interval );
|
field::attribute( op, "sync_interval", sync_interval );
|
||||||
field::attribute( op, "network_timeout", network_timeout );
|
field::attribute( op, "network_timeout", network_timeout );
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
#include "matador/object/object_ptr.hpp"
|
#include "matador/object/object_ptr.hpp"
|
||||||
|
|
||||||
#include "matador/utils/base_class.hpp"
|
#include "matador/utils/base_class.hpp"
|
||||||
|
#include "matador/utils/foreign_attributes.hpp"
|
||||||
|
|
||||||
namespace work::models::admin {
|
namespace work::models::admin {
|
||||||
struct LdapUserDirectory : UserDirectory {
|
struct LdapUserDirectory : UserDirectory {
|
||||||
|
|
@ -29,11 +30,11 @@ struct LdapUserDirectory : UserDirectory {
|
||||||
field::attribute( op, "schema_base_dn", schema_base_dn, 511 );
|
field::attribute( op, "schema_base_dn", schema_base_dn, 511 );
|
||||||
field::attribute( op, "additional_user_base_dn", additional_user_base_dn, 511 );
|
field::attribute( op, "additional_user_base_dn", additional_user_base_dn, 511 );
|
||||||
field::attribute( op, "additional_group_base_dn", additional_group_base_dn, 511 );
|
field::attribute( op, "additional_group_base_dn", additional_group_base_dn, 511 );
|
||||||
field::belongs_to( op, "user_schema_settings", user_schema_settings, matador::utils::default_foreign_attributes );
|
field::belongs_to( op, "user_schema_settings", user_schema_settings, matador::utils::CascadeAllFetchLazy );
|
||||||
field::belongs_to( op, "group_schema_settings", group_schema_settings, matador::utils::default_foreign_attributes );
|
field::belongs_to( op, "group_schema_settings", group_schema_settings, matador::utils::CascadeAllFetchLazy );
|
||||||
field::belongs_to( op, "import_settings", import_settings, matador::utils::default_foreign_attributes );
|
field::belongs_to( op, "import_settings", import_settings, matador::utils::CascadeAllFetchLazy );
|
||||||
field::has_many( op, "ldap_users", users, "users_id", matador::utils::default_foreign_attributes );
|
field::has_many( op, "ldap_users", users, "users_id", matador::utils::CascadeAllFetchLazy );
|
||||||
field::has_many( op, "ldap_groups", groups, "groups_id", matador::utils::default_foreign_attributes );
|
field::has_many( op, "ldap_groups", groups, "groups_id", matador::utils::CascadeAllFetchLazy );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
#include "../core/Model.hpp"
|
#include "../core/Model.hpp"
|
||||||
|
|
||||||
#include "matador/utils/base_class.hpp"
|
#include "matador/utils/base_class.hpp"
|
||||||
|
#include "matador/utils/foreign_attributes.hpp"
|
||||||
|
|
||||||
namespace work::models::admin {
|
namespace work::models::admin {
|
||||||
struct LdapUserDirectory;
|
struct LdapUserDirectory;
|
||||||
|
|
@ -20,7 +20,7 @@ struct LdapUserSchemaSettings : core::Model {
|
||||||
void process( Operator& op ) {
|
void process( Operator& op ) {
|
||||||
namespace field = matador::access;
|
namespace field = matador::access;
|
||||||
field::process(op, *matador::base_class<Model>( this ));
|
field::process(op, *matador::base_class<Model>( this ));
|
||||||
field::has_one(op, "ldap_user_directory", ldap_user_directory, matador::utils::default_foreign_attributes);
|
field::has_one(op, "ldap_user_directory", ldap_user_directory, matador::utils::CascadeAllFetchLazy);
|
||||||
field::attribute(op, "user_object_filter", user_object_filter, 511);
|
field::attribute(op, "user_object_filter", user_object_filter, 511);
|
||||||
field::attribute(op, "user_unique_id_attribute", user_unique_id_attribute, 511);
|
field::attribute(op, "user_unique_id_attribute", user_unique_id_attribute, 511);
|
||||||
field::attribute(op, "user_member_of_attribute", user_member_of_attribute, 511);
|
field::attribute(op, "user_member_of_attribute", user_member_of_attribute, 511);
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
#include "matador/utils/base_class.hpp"
|
#include "matador/utils/base_class.hpp"
|
||||||
#include "matador/utils/enum_mapper.hpp"
|
#include "matador/utils/enum_mapper.hpp"
|
||||||
|
#include "matador/utils/foreign_attributes.hpp"
|
||||||
|
|
||||||
namespace work::models::admin {
|
namespace work::models::admin {
|
||||||
|
|
||||||
|
|
@ -39,20 +40,20 @@ static const matador::utils::enum_mapper<FailReason> FailReasonEnum({
|
||||||
});
|
});
|
||||||
|
|
||||||
struct LoginHistory : core::Model {
|
struct LoginHistory : core::Model {
|
||||||
matador::object::object_ptr<User> user;
|
matador::object::object_ptr<User> client;
|
||||||
matador::object::object_ptr<Scenario> scenario;
|
matador::object::object_ptr<Scenario> scenario;
|
||||||
matador::object::object_ptr<CollectionCenter> collection_center;
|
matador::object::object_ptr<CollectionCenter> collection_center;
|
||||||
std::string login_name;
|
std::string login_name;
|
||||||
FailReason fail_reason{FailReason::NoFailReason};
|
FailReason fail_reason{FailReason::NoFailReason};
|
||||||
core::timestamp login_time;
|
matador::utils::timestamp login_time;
|
||||||
|
|
||||||
template<typename Operator>
|
template<typename Operator>
|
||||||
void process( Operator& op ) {
|
void process( Operator& op ) {
|
||||||
namespace field = matador::access;
|
namespace field = matador::access;
|
||||||
field::process( op, *matador::base_class<Model>( this ) );
|
field::process( op, *matador::base_class<Model>( this ) );
|
||||||
field::belongs_to( op, "user", user, matador::utils::default_foreign_attributes );
|
field::belongs_to( op, "client", client, matador::utils::CascadeAllFetchLazy );
|
||||||
field::belongs_to( op, "scenario", scenario, matador::utils::default_foreign_attributes );
|
field::belongs_to( op, "scenario", scenario, matador::utils::CascadeAllFetchLazy );
|
||||||
field::belongs_to( op, "collection_center", collection_center, matador::utils::default_foreign_attributes );
|
field::belongs_to( op, "collection_center", collection_center, matador::utils::CascadeAllFetchLazy );
|
||||||
field::attribute( op, "login_name", login_name, 511 );
|
field::attribute( op, "login_name", login_name, 511 );
|
||||||
field::attribute( op, "fail_reason", fail_reason );
|
field::attribute( op, "fail_reason", fail_reason );
|
||||||
field::attribute( op, "login_time", login_time );
|
field::attribute( op, "login_time", login_time );
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,11 @@
|
||||||
#include "LockType.hpp"
|
#include "LockType.hpp"
|
||||||
|
|
||||||
#include "../core/Model.hpp"
|
#include "../core/Model.hpp"
|
||||||
#include "../core/Types.hpp"
|
|
||||||
|
|
||||||
#include "matador/object/object_ptr.hpp"
|
#include "matador/object/object_ptr.hpp"
|
||||||
|
|
||||||
#include "matador/utils/base_class.hpp"
|
#include "matador/utils/base_class.hpp"
|
||||||
|
#include "matador/utils/foreign_attributes.hpp"
|
||||||
#include "matador/utils/types.hpp"
|
#include "matador/utils/types.hpp"
|
||||||
|
|
||||||
namespace work::models::admin {
|
namespace work::models::admin {
|
||||||
|
|
@ -20,7 +20,7 @@ struct User : core::Model {
|
||||||
std::string salt;
|
std::string salt;
|
||||||
std::string password;
|
std::string password;
|
||||||
LockType lock_type{LockType::NoLock};
|
LockType lock_type{LockType::NoLock};
|
||||||
core::timestamp locked_at;
|
matador::utils::timestamp locked_at;
|
||||||
std::string lock_reason;
|
std::string lock_reason;
|
||||||
std::string role;
|
std::string role;
|
||||||
matador::object::object_ptr<UserDirectory> user_directory;
|
matador::object::object_ptr<UserDirectory> user_directory;
|
||||||
|
|
@ -37,7 +37,7 @@ struct User : core::Model {
|
||||||
field::attribute( op, "locked_at", locked_at );
|
field::attribute( op, "locked_at", locked_at );
|
||||||
field::attribute( op, "lock_reason", lock_reason, 511 );
|
field::attribute( op, "lock_reason", lock_reason, 511 );
|
||||||
field::attribute( op, "role", role, 63 );
|
field::attribute( op, "role", role, 63 );
|
||||||
field::belongs_to( op, "user_directory", user_directory, matador::utils::default_foreign_attributes );
|
field::belongs_to( op, "user_directory", user_directory, matador::utils::CascadeAllFetchLazy );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,26 +6,26 @@
|
||||||
#include "User.hpp"
|
#include "User.hpp"
|
||||||
|
|
||||||
#include "../core/Model.hpp"
|
#include "../core/Model.hpp"
|
||||||
#include "../core/Types.hpp"
|
|
||||||
|
|
||||||
#include "matador/object/object_ptr.hpp"
|
#include "matador/object/object_ptr.hpp"
|
||||||
|
|
||||||
#include "matador/utils/base_class.hpp"
|
#include "matador/utils/base_class.hpp"
|
||||||
|
#include "matador/utils/foreign_attributes.hpp"
|
||||||
|
|
||||||
namespace work::models::admin {
|
namespace work::models::admin {
|
||||||
struct UserSession : core::Model {
|
struct UserSession : core::Model {
|
||||||
matador::object::object_ptr<User> user;
|
matador::object::object_ptr<User> client;
|
||||||
matador::object::object_ptr<Scenario> scenario;
|
matador::object::object_ptr<Scenario> scenario;
|
||||||
matador::object::object_ptr<CollectionCenter> collection_center;
|
matador::object::object_ptr<CollectionCenter> collection_center;
|
||||||
core::timestamp offline_since;
|
matador::utils::timestamp offline_since;
|
||||||
|
|
||||||
template<typename Operator>
|
template<typename Operator>
|
||||||
void process( Operator& op ) {
|
void process( Operator& op ) {
|
||||||
namespace field = matador::access;
|
namespace field = matador::access;
|
||||||
field::process( op, *matador::base_class<Model>( this ) );
|
field::process( op, *matador::base_class<Model>( this ) );
|
||||||
field::belongs_to( op, "user", user, matador::utils::default_foreign_attributes );
|
field::belongs_to( op, "client", client, matador::utils::CascadeAllFetchLazy );
|
||||||
field::belongs_to( op, "scenario", scenario, matador::utils::default_foreign_attributes );
|
field::belongs_to( op, "scenario", scenario, matador::utils::CascadeAllFetchLazy );
|
||||||
field::belongs_to( op, "collection_center", collection_center, matador::utils::default_foreign_attributes );
|
field::belongs_to( op, "collection_center", collection_center, matador::utils::CascadeAllFetchLazy );
|
||||||
field::attribute( op, "offline_since", offline_since );
|
field::attribute( op, "offline_since", offline_since );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
#ifndef TYPES_HPP
|
|
||||||
#define TYPES_HPP
|
|
||||||
|
|
||||||
#include <chrono>
|
|
||||||
|
|
||||||
namespace work::core {
|
|
||||||
using timestamp = std::chrono::system_clock::time_point;
|
|
||||||
}
|
|
||||||
#endif //TYPES_HPP
|
|
||||||
|
|
@ -7,12 +7,12 @@
|
||||||
#include "Task.hpp"
|
#include "Task.hpp"
|
||||||
|
|
||||||
#include "../core/Model.hpp"
|
#include "../core/Model.hpp"
|
||||||
#include "../core/Types.hpp"
|
|
||||||
#include "../core/UserInfo.hpp"
|
#include "../core/UserInfo.hpp"
|
||||||
|
|
||||||
#include "matador/object/object_ptr.hpp"
|
#include "matador/object/object_ptr.hpp"
|
||||||
|
|
||||||
#include "matador/utils/base_class.hpp"
|
#include "matador/utils/base_class.hpp"
|
||||||
|
#include "matador/utils/foreign_attributes.hpp"
|
||||||
|
|
||||||
namespace work::models::jobs {
|
namespace work::models::jobs {
|
||||||
|
|
||||||
|
|
@ -21,7 +21,7 @@ struct Job : core::Model {
|
||||||
std::string description;
|
std::string description;
|
||||||
JobState state;
|
JobState state;
|
||||||
JobMode mode;
|
JobMode mode;
|
||||||
core::timestamp created_at;
|
matador::utils::timestamp created_at;
|
||||||
matador::object::object_ptr<Payload> payload;
|
matador::object::object_ptr<Payload> payload;
|
||||||
matador::object::object_ptr<Task> task;
|
matador::object::object_ptr<Task> task;
|
||||||
core::UserInfo user_info;
|
core::UserInfo user_info;
|
||||||
|
|
@ -35,8 +35,8 @@ struct Job : core::Model {
|
||||||
field::attribute( op, "state", state );
|
field::attribute( op, "state", state );
|
||||||
field::attribute( op, "mode", mode );
|
field::attribute( op, "mode", mode );
|
||||||
field::attribute( op, "created_at", created_at );
|
field::attribute( op, "created_at", created_at );
|
||||||
field::has_one(op, "payload", payload, matador::utils::default_foreign_attributes );
|
field::has_one(op, "payload", payload, matador::utils::CascadeAllFetchLazy );
|
||||||
field::belongs_to( op, "task", task, matador::utils::default_foreign_attributes );
|
field::belongs_to( op, "task", task, matador::utils::CascadeAllFetchLazy );
|
||||||
field::attribute( op, "user_info", user_info );
|
field::attribute( op, "user_info", user_info );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include "../core/Model.hpp"
|
#include "../core/Model.hpp"
|
||||||
|
|
||||||
#include "matador/utils/base_class.hpp"
|
#include "matador/utils/base_class.hpp"
|
||||||
|
#include "matador/utils/foreign_attributes.hpp"
|
||||||
|
|
||||||
namespace work::models::jobs {
|
namespace work::models::jobs {
|
||||||
struct Job;
|
struct Job;
|
||||||
|
|
@ -16,7 +17,7 @@ struct Payload : core::Model {
|
||||||
namespace field = matador::access;
|
namespace field = matador::access;
|
||||||
field::process( op, *matador::base_class<Model>( this ) );
|
field::process( op, *matador::base_class<Model>( this ) );
|
||||||
field::attribute( op, "type", type, 255 );
|
field::attribute( op, "type", type, 255 );
|
||||||
field::belongs_to( op, "job", job, matador::utils::default_foreign_attributes );
|
field::belongs_to( op, "job", job, matador::utils::CascadeAllFetchLazy );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,11 @@
|
||||||
#include "TaskState.hpp"
|
#include "TaskState.hpp"
|
||||||
|
|
||||||
#include "../core/Model.hpp"
|
#include "../core/Model.hpp"
|
||||||
#include "../core/Types.hpp"
|
|
||||||
|
|
||||||
#include "matador/object/object_ptr.hpp"
|
#include "matador/object/object_ptr.hpp"
|
||||||
|
|
||||||
#include "matador/utils/base_class.hpp"
|
#include "matador/utils/base_class.hpp"
|
||||||
|
#include "matador/utils/foreign_attributes.hpp"
|
||||||
|
|
||||||
namespace work::models::jobs {
|
namespace work::models::jobs {
|
||||||
struct Task : core::Model {
|
struct Task : core::Model {
|
||||||
|
|
@ -18,8 +18,8 @@ struct Task : core::Model {
|
||||||
TaskState state;
|
TaskState state;
|
||||||
matador::object::object_ptr<Payload> payload;
|
matador::object::object_ptr<Payload> payload;
|
||||||
JobMode job_mode;
|
JobMode job_mode;
|
||||||
core::timestamp start_delay;
|
matador::utils::timestamp start_delay;
|
||||||
core::timestamp interval;
|
matador::utils::timestamp interval;
|
||||||
uint64_t user_session_id;
|
uint64_t user_session_id;
|
||||||
|
|
||||||
template<typename Operator>
|
template<typename Operator>
|
||||||
|
|
@ -30,7 +30,7 @@ struct Task : core::Model {
|
||||||
field::attribute( op, "description", description, 511 );
|
field::attribute( op, "description", description, 511 );
|
||||||
field::attribute( op, "job_name", job_name, 511 );
|
field::attribute( op, "job_name", job_name, 511 );
|
||||||
field::attribute( op, "state", state );
|
field::attribute( op, "state", state );
|
||||||
field::belongs_to( op, "payload", payload, matador::utils::default_foreign_attributes );
|
field::belongs_to( op, "payload", payload, matador::utils::CascadeAllFetchLazy );
|
||||||
field::attribute( op, "job_mode", job_mode );
|
field::attribute( op, "job_mode", job_mode );
|
||||||
field::attribute( op, "start_delay", start_delay );
|
field::attribute( op, "start_delay", start_delay );
|
||||||
field::attribute( op, "interval", interval );
|
field::attribute( op, "interval", interval );
|
||||||
|
|
|
||||||
|
|
@ -262,7 +262,8 @@ private:
|
||||||
{utils::basic_type::Time, "TIME"},
|
{utils::basic_type::Time, "TIME"},
|
||||||
{utils::basic_type::DateTime, "DATETIME"},
|
{utils::basic_type::DateTime, "DATETIME"},
|
||||||
{utils::basic_type::Blob, "BLOB"},
|
{utils::basic_type::Blob, "BLOB"},
|
||||||
{utils::basic_type::Null, "NULL"}
|
{utils::basic_type::Null, "NULL"},
|
||||||
|
// {utils::basic_type::Unknown, "INTEGER"}
|
||||||
};
|
};
|
||||||
|
|
||||||
sql_func_to_string_map sql_func_map_ {
|
sql_func_to_string_map sql_func_map_ {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue