//
// Created by Administrator on 2019/3/5.
// 禁止制定人员下井
//

#ifndef WORKSPACE_FORBID_STAFF_DOWN_MINE_H
#define WORKSPACE_FORBID_STAFF_DOWN_MINE_H

#include "write-copy.h"
#include <string>
#include <map>
#include <list>

struct SForbidStaffInfo
{
    int staff_id;
    time_t start_time;
    time_t end_time;
    int state;          //状态 0 = 无效 1 = 有效
    SForbidStaffInfo()
    {
        staff_id = 0;
        start_time = 0;
        end_time = 0;
        state = 0;
    }
};

struct forbid_staff_down_mine
        :single_base<forbid_staff_down_mine,int,std::shared_ptr<SForbidStaffInfo>>
{
public:
    // 根据数据库中的自增长id
    void init_forbid_staff(int id = -1);
    // 根据数据库中的自增长id
    void del_forbid_data(int id);
    // 根据员工ID
    void del_forbid_staff(int staff_id);

    //是否禁止状态
    bool IsForbid(int staff_id,time_t cur_time);

private:
    typedef std::map <int ,std::list<int>> ForbidStaffList;
    ForbidStaffList m_forbidlist;
};


#endif //WORKSPACE_FORBID_STAFF_DOWN_MINE_H