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

namespace Bp.Sync.Domain.Elastics.Davs
{
    public class InvoiceDetailDavElastic : ElasticBaseEntityWithKey<long>
    {
        public long BillSyncId { get; set; }

        /// <summary>
        /// ProductId
        /// </summary>
        public long ProductId { get; set; }

        /// <summary>
        /// ID hóa đơn
        /// </summary>
        public long BillId { get; set; }

        [MaxLength(256)]
        public string ProductCode { get; set; }

        /// <summary>
        /// Mã thuốc dược quốc gia
        /// </summary>
        ///
        [MaxLength(256)]
        public string ProductCodeDav { get; set; }

        /// <summary>
        /// Tên thuốc
        /// </summary>
        ///
        [MaxLength(2048)]
        public string ProductName { get; set; }

        /// <summary>
        /// Số đăng ký
        /// </summary>
        ///
        [MaxLength(256)]
        public string ProductRegisterNo { get; set; }

        /// <summary>
        /// Lô sản xuất
        /// </summary>
        ///
        [MaxLength(256)]
        public string ManufactureBatchNo { get; set; }

        public DateTimeOffset ExpirationDate { get; set; }
        public DateTimeOffset ManufactureDate { get; set; }

        /// <summary>
        /// Hàm lượng thuốc
        /// </summary>
        ///
        [MaxLength(1024)]
        public string ProductContent { get; set; }

        /// <summary>
        /// Đơn vị tính
        /// </summary>
        ///
        [MaxLength(256)]
        public string InvoiceUnit { get; set; }

        public int InvoiceUnitId { get; set; }

        /// <summary>
        /// Số lượng
        /// </summary>
        public decimal InvoiceQuantity { get; set; }

        public decimal InvoiceBaseQuantity { get; set; }

        /// <summary>
        /// Đơn giá bán
        /// </summary>
        public decimal InvoiceWholesalePrice { get; set; }

        public decimal InvoiceWholesaleBasePrice { get; set; }

        /// <summary>
        /// Thành tiền
        /// </summary>
        public decimal InvoiceTotalPrice { get; set; }

        /// <summary>
        /// Tỷ lệ quy đổi so với đơn vị cơ bản
        /// </summary>
        public double InvoiceExchangeValue { get; set; }

        /// <summary>
        /// Id của hóa đơn bán
        /// để biết nó đã liên thông hay chưa
        /// </summary>
        public long ProductInvoiceId { get; set; }
    }
}