using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;

// 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.Entities.AccountingService_Models
{
    public partial class MembershipGroup
    {
        public MembershipGroup()
        {
            UserInfoMembershipGroups = new HashSet<UserInfoMembershipGroups>();
        }

        public Guid Id { get; set; }
        public string GroupName { get; set; }
        public string GroupId { get; set; }
        public DateTime? CreationTime { get; set; }
        public string Description { get; set; }
        public int? GroupMemberLimit { get; set; }
        public Guid? BuInfoCreatedId { get; set; }
        public Guid? BuInfoId { get; set; }
        public DateTime? LastModified { get; set; }
        public Guid? MembershipLevel { get; set; }
        public short? GroupType { get; set; }
        public short? ConfigGender { get; set; }
        public string ConfigLevel { get; set; }
        public DateTime? ConfigCreationTimeFrom { get; set; }
        public DateTime? ConfigCreationTimeTo { get; set; }
        public bool? ConfigPhysicalCard { get; set; }
        public string ConfigAppliedItems { get; set; }
        public string ConfigStartTimeOfDay { get; set; }
        public string ConfigEndTimeOfDay { get; set; }
        public short? ConfigTimeOfDayCount { get; set; }
        public string ConfigSpecifiedDateOfMonth { get; set; }
        public short? ConfigSpecifiedDateOfMonthCount { get; set; }
        public string ConfigSpecifiedDayOfWeek { get; set; }
        public short? ConfigSpecifiedDayOfWeekCount { get; set; }
        public long? ConfigEAccountBalanceFrom { get; set; }
        public long? ConfigEAccountBalanceTo { get; set; }
        public short? ConfigRfmRecencyBefore { get; set; }
        public short? ConfigRfmFrequencyFrom { get; set; }
        public short? ConfigRfmFrequencyTo { get; set; }
        public int? ConfigRfmMonetaryAbove { get; set; }
        public int? ConfigRfmMonetaryBelow { get; set; }
        public DateTime? LastRefreshTime { get; set; }
        public short? GroupStatus { get; set; }
        [NotMapped]
        public virtual BusinessUnitInfo BuInfo { get; set; }
        [NotMapped]
        public virtual BusinessUnitInfo BuInfoCreated { get; set; }
        [NotMapped]
        public virtual MembershipLevelInfo MembershipLevelNavigation { get; set; }
        public virtual ICollection<UserInfoMembershipGroups> UserInfoMembershipGroups { get; set; }
    }
}
