#ifndef MINE_H
#define MINE_H

#include <unordered_map>
#include <log.h>
#include <chrono>
#include "common.h"
#include <memory>

struct card_location_base;
struct mine_tool
{
    mine_tool()
    {
        clear();
    }

    void clear()
    {
        m_over_speed_count=0;
		m_over_speed_count=0;
		m_normal_speed_count=0;
		m_status_call=0;
        m_is_attendance=false;
		m_attendance_start_time = std::chrono::system_clock::time_point(std::chrono::seconds(0));
		m_is_overtime = false;
		m_overtime=std::chrono::system_clock::time_point(std::chrono::seconds(0));        
    }
    int    m_over_speed_count;
    int    m_normal_speed_count;
    ///CALL_NONE(0):没有呼叫,CALL_ING(2):正在呼叫,CALL_SUCCESSED(1):呼叫成功
    int m_status_call;

    ///考勤状态  0初始状态 1 没在考勤 2 考勤;参看ATTENDANCE_STATUS
    bool m_is_attendance;
    ///考勤开始时间
    std::chrono::system_clock::time_point m_attendance_start_time;
    //井下是否超时
    bool m_is_overtime;
    //井下超时时间
    std::chrono::system_clock::time_point m_overtime;

	uint64_t get_down_time();
	uint64_t get_work_time();
	int32_t is_on_duty();

};
#endif // MINE_H