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.AccountingService_Models
{
    public partial class MembershipLevelInfo
    {
        public MembershipLevelInfo()
        {
            InverseNextLevel = new HashSet<MembershipLevelInfo>();
            InverseUpperLevel = new HashSet<MembershipLevelInfo>();
            MembershipGroup = new HashSet<MembershipGroup>();
            UserInfoLastMembershipLevelNavigation = new HashSet<UserInfo>();
            UserInfoMembershipLevelNavigation = new HashSet<UserInfo>();
        }

        public Guid Id { get; set; }
        public string MembershipLevelId { get; set; }
        public string LevelName { get; set; }
        public int? LevelUpCondition { get; set; }
        public int? LevelRetainCondition { get; set; }
        public Guid? UpperLevelId { get; set; }
        public Guid? NextLevelId { get; set; }
        public Guid? BuInfoCreatedId { get; set; }
        public Guid? BuInfoId { get; set; }
        public DateTime? LastModified { get; set; }

        public virtual BusinessUnitInfo BuInfo { get; set; }
        public virtual BusinessUnitInfo BuInfoCreated { get; set; }
        public virtual MembershipLevelInfo NextLevel { get; set; }
        public virtual MembershipLevelInfo UpperLevel { get; set; }
        public virtual ICollection<MembershipLevelInfo> InverseNextLevel { get; set; }
        public virtual ICollection<MembershipLevelInfo> InverseUpperLevel { get; set; }
        public virtual ICollection<MembershipGroup> MembershipGroup { get; set; }
        public virtual ICollection<UserInfo> UserInfoLastMembershipLevelNavigation { get; set; }
        public virtual ICollection<UserInfo> UserInfoMembershipLevelNavigation { get; set; }
    }
}
