#ifndef UNITOFMEASURE_H
#define UNITOFMEASURE_H

#include <string>

using namespace std;

/**
 * @brief The UnitOfMeasure class represents a way to measure an ingredient. It contains a name, an abbreviation, plural name, and some information on conversion.
 */

class UnitOfMeasure
{
public:
	//Constants Declarations.
	static const int MASS = 0;
	static const int VOLUME = 1;
	static const int LENGTH = 2;
	static const int MISC = 3;

    //Full constructor.
	UnitOfMeasure(string name, string plural, string abbreviation, int type, double coef);
	//Attempt to guess unit from just a string.
	UnitOfMeasure(string name);
    //Constructor with default values.
    UnitOfMeasure();

    //Getters
    string getName() const;
    string getNamePlural() const;
    string getAbbreviation() const;
	int getType() const;
	double getMetricCoefficient() const;
private:
    string name;                //The name of the unit of measure.
    string plural;              //The plural name.
    string abbreviation;        //A short version of the unit.
	int type;					//The type of unit, as one of the constants above.
	double metricCoefficient;	//The conversion from this unit to the standard metric unit.
};

#endif // UNITOFMEASURE_H
