#ifndef _area_business_hpp_
#define _area_business_hpp_

#include <vector>
#include <memory>

struct business_data
{
	virtual ~business_data(){}
};

struct area_hover;
struct card_location_base;
struct area_business
{
	int m_business_type=0;
	int area_business_type()
	{
		return m_business_type;
	}

	virtual void on_load_his(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr){}
	virtual void on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr){}
	virtual void on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr){}
	virtual void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr){}

	virtual ~area_business(){};

	static std::vector<area_business*> get_instance_list(int business_type,int area_id);
};
#endif