namespace Gremlin_BlazorServer.Data.EntityClasses
{
	public class Product : IMetadata
	{
		//primary key:
		public uint ProductId { get; set; }

		//navigation properties:
		public CustomDescription CustomDescription { get; set; } = new CustomDescription();
		public ProductLine ProductLine { get; set; }= new ProductLine();

		//foreign keys
		public uint CustomDescriptionId { get; set; } = 999999999;
		public string ProductLineCode { get; set; } = string.Empty;

		//Agilent-specific properties:
		public string ProductNumber { get; set; } = string.Empty;
		public string OptionNumber { get; set; } = string.Empty;
		public string SapShortDescription { get; set; } = string.Empty;
		public string SapLongDescription { get; set; } = string.Empty;
		public float Weight { get; set; }
		public string ProductStatus { get; set; } = string.Empty;
		public DateTime IntroductionDate { get; set; } = DateTime.Now;
		public decimal ListPrice { get; set; }
		public bool HasBreakPrices { get; set; }
		public int BreakRangeFrom { get; set; }
		public int BreakRangeTo { get; set; }

		//metadata:
		public DateTime DataCreationDate { get; set; } = DateTime.Now;
		public DateTime DataModificationDate { get; set; } = DateTime.Now;
		public DateTime DataValidFrom { get; set; } = DateTime.Now;
		public DateTime DataValidUntil { get; set; } = DateTime.MaxValue;
		public string DataModificationByUser { get; set; } = string.Empty;
		public uint DataVersionNumber { get; set; }
		public string DataVersionComment { get; set; } = string.Empty;
		public string DataStatus { get; set; } = "Active";
	}


}
