#pragma once
#include "lib.h"

//Горючно-смазочный материал
class material
{
private:
	unsigned number; //порядковый номер материала
	string name; //имя материала
	bool isFuel; //является ли материал топливом
	unsigned price; //цена материала
	unsigned volume; //объем
	inline material(){ number = 0, volume = 0; }; //конструктор по умолчанию
	

public:
	material(string name, bool isFuel, unsigned price); //создаем материал
	static material* next(ifstream* pFile);//считываем с файла следующий материал

	//выводит информацию о материале
	inline void print()
	{
		cout << "POL №" << number << ".\t" << name << "\t" <<
			((isFuel) ? "Fuel" : "Lubricant") << ".\tPrice: " << price
			<< ".\tVolume: " << volume << endl;
	}

	//сериализуем экземпляр данного материала в текст
	inline string serialize()
	{
		return int_to_text(number) + " " + int_to_text(isFuel) + " " +
			int_to_text(price) + " " + int_to_text(volume) + "\n" + name + "\n<br/>\n";
	}

	//Возвращает номер ГСМ
	inline unsigned get_number()
	{
		return number;
	}

	//Вносит изменения в параметры ГСМ
	inline void change(string newname, unsigned newprice)
	{
		name = newname, price = newprice;
	}

	inline void add(unsigned dV)//увеличивает объем ГСМ на заданную величину
	{
		volume += dV;
	}

	inline bool substract(unsigned dV)//уменьшает объем ГСМ на заданную величину
	{
		bool is = volume >= dV;
		if(is) volume -= dV;
		return is;
	}


};

