using System;

namespace Microsoft.RFIDLab.EPCISDemo.Common
{
	/// <summary>
	/// Constants
	/// </summary>
	public class Constants
	{
		// Company Prefix
		public const string CompanyPrefix = "00554430000000";

		// EPC header values
		public const string SGTIN96Header = "00110000";
		public const string SGTIN64Header = "10";
		public const string SSCC96Header  = "00110001";
		public const string SSCC64Header  = "00001000";

		// URI headers
		public const string SGTIN96Uri = "urn:epc:tag:sgtin-96:";
		public const string SSCC96Uri  = "urn:epc:tag:sscc-96:";
		public const string SGTIN64Uri = "urn:epc:tag:sgtin-64:";
		public const string SSCC64Uri  = "urn:epc:tag:sscc-64:";


		// ErrorMessages
		public const string INV_HEX_DIGIT = "This is not a valid Hexadecimal number - Unexpected digit [{0}] found";
		public const string INV_EPC_PARTITION = "Invalid partition value [{0}] found in EPC. Partition value has to be a number between 0 adn 6";
		public const string INV_EPC_LENGTHMODE = "Invalid partition length mode - supported values are Bits and Digits";
		public const string DB_NO_CONNECTION = "DB Error: Unable to connect to database";
		public const string DB_PRODUCT_NOT_FOUND = "{0} [{1}] does not exist in database";

		// Tag List XML
		public const string TagListNode   = "RFID-Tag-List";
		public const string TagNode       = "RFID-Tag";
		public const string TagIdNode     = "TagID";
		public const string DiscoveryNode = "DiscoveryTime";
		public const string LastSeenNode  = "LastSeenTime";
		public const string AntennaNode   = "Antenna";
		public const string ReadCountNode = "ReadCount";
		public const string DeviceNode    = "DeviceId";
		public const string LocationNode  = "LocationId";

		// Identifiers
		public const string TireIdentifier  = "Tire";
		public const string FrameIdentifier  = "Frame";

		
		// Datatables
		public const string TableTagData = "TagData";
		public const string TableErrors = "Errors";
		public const string TableProducts = "Products";
		public const string TableBOM = "BOM";
		public const string TableParentProduct = "ParentProduct";
		public const string TableLocation = "ProductLocation";
		public const string TablePO = "PO";
		public const string TablePalletize = "Palletize";
		public const string TableTrailer = "TrailerInfo";


		// Data relation
		public const string RelProductBom = "ProductBom";	
		// ColumnNames
		public const string ColErrorType     = "ErrorType";
		public const string ColErrorKey      = "ErrorKey";
		public const string ColDescription   = "Description";
		public const string ColHexEpc        = "HexEpc";
		public const string ColUrnEpc        = "UrnEpc";
		public const string ColTagType       = "TagType";
		public const string ColLocation      = "Location";
		public const string ColUpc           = "Upc";
		public const string ColCategory      = "CategoryName";
		public const string ColItemCount     = "Count";
		public const string ColOnHand        = "OnHand";
		public const string ColReorderPoint  = "ReorderPoint";
		public const string ColROQ           = "ReorderQuantity";
		public const string ColName          = "Name";
		public const string ColProductUpc    = "ProductUpc";
		public const string ColItemUpc       = "ItemUpc";
		public const string ColDetectedCount = "DetectedCount";		
	}
}
