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

namespace Bp.Sync.Domain.Elastics.Inventories.Products
{
    /// <summary>
    /// Bảng chi tiết sản phẩm và mã phiếu sử dụng để tổng hợp nhập - xuất - tồn
    /// </summary>
    public class ProductBillElastic : ElasticBaseEntityWithKey<long>
    {
        public string BillCode { get; set; }
        public long ProductId { get; set; }
        public DateTimeOffset? AccountingDate { get; set; }
        public DateTimeOffset? VocherDate { get; set; }
        public long VocherDateToLong => VocherDate.HasValue ? VocherDate.Value.ToUnixTimeMilliseconds() : 0;
        public int UnitId { get; set; }
        public decimal Price { get; set; }
        public decimal InputQuantity { get; set; }
        public decimal InputPrice { get; set; }
        public decimal OutputQuantity { get; set; }
        public decimal OutputPrice { get; set; }
        public decimal InventoryQuantity { get; set; }
        public decimal InventoryPrice { get; set; }
        public string Description { get; set; }
        public Entities.Inventories.Products.ProductBillType ProductBillType { get; set; }
        public string InventoryCode { get; set; }
        public int DestBranchId { get; set; }
        public long RelatedId { get; set; }
        public string UniqueKey { get; set; }
        public Entities.Inventories.Generals.BookType BookType { get; set; }
        public int BranchId { get; set; }
    }
}
