using Bp.Sync.Domain.Elastics.BaseEntities;
using System;
using System.ComponentModel.DataAnnotations.Schema;

namespace Bp.Sync.Domain.Elastics.Inventories.Promotions
{
    public class PromotionProductElastic : ElasticBaseEntityWithKey<long>
    {
        /// <summary>
        /// Id của khuyến mãi
        /// </summary>
        public int PromotionId { get; set; }

        /// <summary>
        /// Id của sản phẩm khuyến mãi
        /// </summary>
        public long ProductId { get; set; }

        /// <summary>
        /// Id của đơn vị tính (KM)
        /// </summary>
        public int UnitId { get; set; }

        /// <summary>
        /// Số lượng của sp khuyến mãi
        /// </summary>
        [Column(TypeName = "decimal(18, 5)")]
        public decimal PromotionQuantity { get; set; }

        /// <summary>
        /// Số lượng của sp chính
        /// </summary>
        [Column(TypeName = "decimal(18, 5)")]
        public decimal Quantity { get; set; }

        #region promotion

        /// <summary>
        /// Id của cấu hình bán buôn
        /// </summary>
        public int WholesalePriceListId { get; set; }

        /// <summary>
        /// Tên chương trình khuyến mại
        /// </summary>
        public string PromotionName { get; set; }

        /// <summary>
        /// Ngày bắt đầu khuyến mãi
        /// </summary>
        public DateTimeOffset? PromotionStartDate { get; set; }

        /// <summary>
        /// Ngày kết thúc khuyến mãi
        /// </summary>
        public DateTimeOffset? PromotionEndDate { get; set; }

        /// <summary>
        /// ID của trình dược viên
        /// </summary>
        public string MedrepIds { get; set; }

        #endregion promotion
    }
}