using System;
using System.ComponentModel.DataAnnotations;
using System.Runtime.Serialization;

namespace DiplomovaPrace.Contracts.Orders.InputModels
{
	[DataContract]
	public class OrderItemIM
	{
		[DataMember(Order = 1)]
		public int ID { get; set; }

		[DataMember(Order = 2)]
		[Required(ErrorMessage = "Vyberte, prosim, produkt!")]
		public int ProductID { get; set; }

		[DataMember(Order = 3)]
		[Required(ErrorMessage = "Název je vyžadován!")]
		public string Name { get; set; }

		[DataMember(Order = 4)]
		[Required(ErrorMessage = "Cena je vyžadována!")]
		[DataType(DataType.Currency, ErrorMessage = "Zadejte cenu!")]
		[Range(1, 999999, ErrorMessage = "Povolený rozsah 1-999 999!")]
		public decimal Price { get; set; }

		// Počítá se na frontendu => zbytečná property
		// Počítá se i zvlašť na backendu kvůli bezpečnosti
		[DataMember(Order = 5)]
		public decimal TotalPrice { get; set; }

		[DataMember(Order = 6)]
		[Required(ErrorMessage = "Množství je vyžadováno!")]
		[Range(1, 999, ErrorMessage = "Množství musí být v rozsahu 1-999")]
		//[RegularExpression("^[0-9]*$", ErrorMessage = "Pouze celá kladná čísla!")]
		public int Amount { get; set; }
	}
}
