event.h 1.5 KB
#pragma once

#include <libmysql_table_route10x10.h>
#include <common.h>
#include <db.pb.h>

class event_t : public el::lib_mysql_table_route10x10
{
public:
    event_t(el::lib_mysql_if* db);
	int update(USER_ID uid, EVENT_TYPE type, EVENT_ID id, EVENT_DATA data,
		EVENT_TIME time, const std::string& str_data, const std::string& bin_data = "");
	int update_data(USER_ID uid, EVENT_TYPE type, EVENT_ID id,
		EVENT_DATA data);
	int del(USER_ID uid, EVENT_TYPE type, EVENT_ID id);
	int del(USER_ID uid, EVENT_TYPE type);

	int get( USER_ID uid, db_msg::load_user_msg_res* out );
	int get( USER_ID uid, db_msg::get_events_msg_res* out );
	int get( USER_ID uid, db_msg::game_server_boot_msg_res* out );
	int get( USER_ID uid, EVENT_TYPE type, db_msg::get_events_msg_res* out );
	int get( USER_ID uid, EVENT_TYPE type, std::vector<common_msg::event_t>& out );
	int get_user_data(USER_ID user_id, EVENT_TYPE type, EVENT_ID id, 
		EVENT_DATA& data);
	int get_user_data_time(USER_ID user_id, EVENT_TYPE type, EVENT_ID id,
		EVENT_DATA& data, EVENT_TIME& time);

	int get_user_str_data( USER_ID user_id, EVENT_TYPE type, EVENT_ID id,
		std::string& str_data );

	int get_user_bin_data( USER_ID user_id, EVENT_TYPE type, EVENT_ID id, std::string& bin_data );

	int get_type( USER_ID uid, EVENT_TYPE type_b, EVENT_TYPE type_e, std::vector<EVENT_TYPE>& type_vec );
	int get_id_data( USER_ID uid, EVENT_TYPE type, share_msg::user_home_t* user_home );
private:

	void del_exp_daily_event(USER_ID uid);
	void del_exp_monthly_event( USER_ID uid );
};