using Bp.Sync.Domain.Elastics.BaseEntities;

namespace Bp.Sync.Domain.Elastics.Inventories.Suppliers
{
    public class SupplierElastic : ElasticBaseEntityWithKey<long>
    {
        /// <summary>
        /// Mã nhà cung cấp (NCC)
        /// </summary>
        public string Code { get; set; }

        /// <summary>
        /// Tên NCC
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// Địa chỉ NCC
        /// </summary>
        public string Address { get; set; }

        /// <summary>
        /// Mã tỉnh / thành phố NCC
        /// </summary>
        public int CityId { get; set; }

        /// <summary>
        /// Mã quận / huyện NCC
        /// </summary>
        public int DistrictId { get; set; }

        /// <summary>
        /// Mã phường / xã NCC
        /// </summary>
        public int WardId { get; set; }

        /// <summary>
        /// Số điện thoại NCC
        /// </summary>
        public string Phone { get; set; }

        /// <summary>
        /// Email NCC
        /// </summary>
        public string Email { get; set; }

        /// <summary>
        /// Tên công ty của NCC
        /// </summary>
        public string CompanyName { get; set; }

        /// <summary>
        /// Mã số thuế của công ty
        /// </summary>
        public string TaxCode { get; set; }

        /// <summary>
        /// Loại nhà cung cấp: doanh nghiệp hay cá nhân
        /// </summary>
        public Entities.Inventories.Suppliers.SupplierType SupplierType { get; set; }

        /// <summary>
        /// Nhóm nhà cung cấp
        /// </summary>
        public Entities.Inventories.Suppliers.SupplierGroup SupplierGroup { get; set; }

        /// <summary>
        /// Trạng thái
        /// </summary>
        public Entities.Inventories.Suppliers.SupplierStatus SupplierStatus { get; set; } = Entities.Inventories.Suppliers.SupplierStatus.Active;

        /// <summary>
        /// Số dư nợ
        /// </summary>
        public decimal DebitBalance { get; set; }

        /// <summary>
        /// Số dư có
        /// </summary>
        public decimal CreditBalance { get; set; }
    }
}