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

		//foreign keys:
		public uint QuoteId { get; set; }

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

		//class properties:
		public ushort Position { get; set; }
		public ushort Amount { get; set; }
		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 string ProductLine { get; set; } = string.Empty;
		public decimal TotalDiscount { get; set; }
		public decimal SalesDiscount { get; set; }
		public decimal PromotionalDiscount { get; set; }
		public decimal ContractualDiscount { get; set; }
		public decimal DemoDiscount { get; set; }
		public decimal ListPrice { get; set; }
		public decimal ExtendedListPrice { get; set; }
		public decimal NetPrice { get; set; }
		public decimal Total { get; set; }

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