using System;
using System.Collections.Generic;

// Code scaffolded by EF Core assumes nullable reference types (NRTs) are not used or disabled.
// If you have enabled NRTs for your project, then un-comment the following line:
// #nullable disable

namespace MS.WebApi.stockdbModels
{
    public partial class IProducts
    {
        public IProducts()
        {
            IProductshelfRecords = new HashSet<IProductshelfRecords>();
            IStockcountproductRecords = new HashSet<IStockcountproductRecords>();
            IWarehouseRecords = new HashSet<IWarehouseRecords>();
            InverseRefProduct = new HashSet<IProducts>();
        }

        public int Id { get; set; }
        public string Uid { get; set; }
        public int? SiteId { get; set; }
        public bool IsDeleted { get; set; }
        public long Version { get; set; }
        public DateTime Created { get; set; }
        public DateTime Modified { get; set; }
        public DateTime? Deleted { get; set; }
        public string Name { get; set; }
        public string Fullname { get; set; }
        public string CategoryId { get; set; }
        public int? ParentId { get; set; }
        public int? RefProductId { get; set; }
        public int? FactoryId { get; set; }
        public string Barcode { get; set; }
        public string Plu { get; set; }
        public decimal Price { get; set; }
        public bool AllowIn { get; set; }
        public bool AllowOut { get; set; }
        public bool ShelfStatus { get; set; }
        public int ProductunitId { get; set; }
        public decimal? Weight { get; set; }
        public bool IsFuelItem { get; set; }
        public int RewardPoints { get; set; }
        public string RpCreateUser { get; set; }
        public DateTime RpCreatedDateTime { get; set; }
        public DateTime RpDateToActivate { get; set; }
        public DateTime RpDateToDeactivate { get; set; }

        public virtual IFactories Factory { get; set; }
        public virtual IProductCategories Parent { get; set; }
        public virtual IProductUnits Productunit { get; set; }
        public virtual IProducts RefProduct { get; set; }
        public virtual ICollection<IProductshelfRecords> IProductshelfRecords { get; set; }
        public virtual ICollection<IStockcountproductRecords> IStockcountproductRecords { get; set; }
        public virtual ICollection<IWarehouseRecords> IWarehouseRecords { get; set; }
        public virtual ICollection<IProducts> InverseRefProduct { get; set; }
    }
}
