query/demo/work/jobs/Task.hpp

47 lines
1.5 KiB
C++

#ifndef TASK_HPP
#define TASK_HPP
#include "TaskState.hpp"
#include "../core/Model.hpp"
#include "matador/object/object_ptr.hpp"
#include "matador/query/meta_table_macro.hpp"
#include "matador/utils/base_class.hpp"
#include "matador/utils/foreign_attributes.hpp"
namespace work::models::jobs {
struct Task : core::Model {
std::string name;
std::string description;
std::string job_name;
TaskState state;
matador::object::object_ptr<Payload> payload;
JobMode job_mode;
matador::utils::timestamp_type_t start_delay;
matador::utils::timestamp_type_t interval;
uint64_t user_session_id;
template<typename Operator>
void process( Operator& op ) {
namespace field = matador::access;
field::process( op, *matador::base_class<Model>( this ) );
field::attribute( op, "name", name, 511 );
field::attribute( op, "description", description, 511 );
field::attribute( op, "job_name", job_name, 511 );
field::attribute( op, "state", state );
field::belongs_to( op, "payload", payload, matador::utils::CascadeAllFetchLazy );
field::attribute( op, "job_mode", job_mode );
field::attribute( op, "start_delay", start_delay );
field::attribute( op, "interval", interval );
field::attribute( op, "user_session_id", user_session_id );
}
};
}
META_TABLE(tasks, TASK, id, version, name, description, job_name, state, payload, job_mode, start_delay, interval, user_session_id)
#endif //TASK_HPP