using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using DiplomovaPrace.Model.Security;

namespace DiplomovaPrace.Model.Orders
{
	public class Order
	{
		public int ID { get; set; }

		// Possible extension
		//[Required]
		//[MaxLength(100)]
		//public string OrderNumber { get; set; }

		public List<OrderItem> OrderItems { get; set; }

		[Column(TypeName = "decimal(18,2)")]
		public decimal TotalPrice { get; set; }

		public LoginAccount LoginAccount { get; set; }

		public int? LoginAccountID { get; set; }

		public string CustomerEmail { get; set; }

		public OrderState OrderState { get; set; }

		public int OrderStateID { get; set; }

		public PaymentType PaymentType { get; set; }

		public int? PaymentTypeID { get; set; }

		public PaymentState PaymentState { get; set; }

		public int? PaymentStateID { get; set; }

		public DeliveryType DeliveryType { get; set; }

		public int? DeliveryTypeID { get; set; }

		public Address DeliveryAddress { get; set; }

		public int? DeliveryAddressID { get; set; }

		public Address InvoicingAddress { get; set; }

		public int? InvoicingAddressID { get; set; }

		public DateTime Created { get; set; }

		public DateTime? OrderedDate { get; set; }

		public DateTime? Deleted { get; set; }
	}
}
