#pragma once

#include "objscip/objscip.h"
#include <vector>

using namespace std;
using namespace scip;

class ArcBranchingConstraints
{
public:
	ArcBranchingConstraints(int _idStartCustomer, int _idEndCustomer, bool _branchType, SCIP_Cons* _con);

	ArcBranchingConstraints();

	~ArcBranchingConstraints();

	int getIdStartCustomer() {
		return idStartCustomer;
	}

	int getIdEndCustomer() {
		return idEndCustomer;
	}

	bool getBranchType() {
		return branchType;
	}

	SCIP_Cons*	getCon() {
		return con;
	}

protected:

	int idStartCustomer;
	int idEndCustomer;
	bool branchType; // false customer isn't visited, true customer should be visited
	SCIP_Cons* con;
};


class BranchingConstraints
{
public:
	BranchingConstraints(int _nodeNumber);
	~BranchingConstraints();

	int getNodeNumber() {
		return nodeNumber;
	}


	vector<ArcBranchingConstraints>* getArcBranchingConstraints() {
		return &arcBranchingConstraints;
	}


protected:

	int								nodeNumber;
	vector<ArcBranchingConstraints>	arcBranchingConstraints;

};




