using System;

namespace Gremlin.GremlinData.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; }

        //class properties:
        public ushort Position { get; set; }
        public ushort Amount { get; set; }
        public string ProductNumber { get; set; }
        public string OptionNumber { get; set; }
        public string SapShortDescription { get; set; }
        public string SapLongDescription { get; set; }
        public string ProductLine { get; set; }
        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; }
        public string DataModificationByUser { get; set; }
        public DateTime DataModificationDate { get; set; }
        public string DataStatus { get; set; }
        public DateTime DataValidFrom { get; set; }
        public DateTime DataValidUntil { get; set; }
        public string DataVersionComment { get; set; }
        public uint DataVersionNumber { get; set; }
    }
}
