using System;
using System.Collections.Generic;

namespace Gremlin.GremlinData.EntityClasses
{
	public class Quote : IMetadata
	{
		//primary key:
		public uint QuoteId { get; set; }

		//foreign keys:
		public uint? ContactId { get; set; }

		//navigation properties:
		public Contact Recipient { get; set; }
		public IList<LineItem> LineItems { get; set; }

		//class properties:
		public Contact SalesRep { get; set; }
		public string QuotationNumber { get; set; }
		public DateTime QuotationDate { get; set; }
		public DateTime ValidUntil { get; set; }
		public byte ValidFor { get; set; }
		public decimal TotalListprice { get; set; }
		public decimal TotalDiscount { get; set; }
		public decimal TotalNet { get; set; }
		public float VAT { get; set; }
		public decimal TotalGross { get; set; }
		public bool QuoteContains3PP { get; set; }
		public bool QuoteContainsRB { get; set; }
		public string QuoteTemplate { 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; }

		internal Quote()
		{
		}
	}
}
