#include"area_business_work_rate.h"

#include<memory>
#include<string>

#include"log.h"
#include"card.h"
#include"struct_def.h"
#include"three_rates.h"
#include"area.h"
#include"card.h"
#include"tool_time.h"

struct work_rate_data:business_data
{
    work_rate_data()
    {
    }
};

void area_business_work_rate::on_load_his(const std::shared_ptr<area_hover>&area_hover_ptr,
                                            const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data>&ptr)
{

}

void area_business_work_rate::on_enter(const std::shared_ptr<area_hover>&area_hover_ptr,
                                       const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data>& ptr)
{
    if(!card_ptr->is_person())
    {
        return;
    }

    auto card = std::make_shared<card_pos>();
    card->id = card_ptr->m_id;
    card->type = card_ptr->m_type;
    card->work_line = card_ptr->get_workline();
    card->identifier_id = card_ptr->m_cid;

    auto area = std::make_shared<area_data>();
    area->area_id = area_hover_ptr->id();
    area->is_work_area = area_hover_ptr->m_area->m_is_work_area;
    area->enter_time = area_hover_ptr->m_enter_time/1000;

    three_rates::get_instance()->enter_area(card, area);
}

void area_business_work_rate::on_hover(const std::shared_ptr<area_hover>&area_hover_ptr,
                                       const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data> ptr)
{
}


void area_business_work_rate::on_leave(const std::shared_ptr<area_hover>&area_hover_ptr,
                                       const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data> ptr)
{
    if(!card_ptr->is_person())
    {
        return;
    }

    auto card = std::make_shared<card_pos>();
    card->id = card_ptr->m_id;
    card->type = card_ptr->m_type;
    card->work_line = card_ptr->get_workline();
    card->identifier_id = card_ptr->m_cid;

    auto area = std::make_shared<area_data>();
    area->area_id = area_hover_ptr->id();
    area->is_work_area = area_hover_ptr->m_area->m_is_work_area;
    area->leave_time = area_hover_ptr->m_last_time/1000;

    three_rates::get_instance()->leave_area(card, area);
}

