using Newtonsoft.Json;
using System;
using System.ComponentModel.DataAnnotations;

namespace Dfs.WayneChina.PosModelMini
{
    public class PosDiscount
    {
        public Guid Id { get; set; }

        [Required]
        public string DiscountName { get; set; }

        public Guid PosItemId { get; set; }
        public virtual PosItem PosItem { get; set; }

        public decimal MinimumItemAmount { get; set; }

        public Guid PosMopId { get; set; }
        public virtual PosMop PosMop { get; set; }

        public PosDiscountRule DiscountRule { get; set; }
        public decimal DiscountValue { get; set; }

        public DateTime DateToActivate { get; set; }
        public DateTime DateToDeactivate { get; set; }

        public virtual Guid? PreviousId { get; set; }

        public virtual PosDiscount Previous { get; set; }

        /// <summary>
        /// Gets or sets the datetime when this discount rule created and saved into database.
        /// normally this time should be automatically set at the saving time (to db).
        /// </summary>
        public DateTime CreatedDateTime { get; set; }

        public Guid ChangesetId { get; set; }
        public virtual Changeset Changeset { get; set; }

        public virtual Guid? TargetBusinessUnitId { get; set; }
        /// <summary>
        /// Gets or sets which BusinessUnit this Discount will perform on.
        /// </summary>
        public virtual BusinessUnit TargetBusinessUnit { get; set; }
    }
}