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
{
    [Table("account_info")]
    public partial class AccountInfo
    {
        public AccountInfo()
        {
            CardInfo = new HashSet<CardInfo>();
            InverseAccountInfoNavigation = new HashSet<AccountInfo>();
            OfflineTransactionInfo = new HashSet<OfflineTransactionInfo>();
            RechargePaymentHistory = new HashSet<RechargePaymentHistory>();
            TransactionInfo = new HashSet<TransactionInfo>();
        }

        public Guid Id { get; set; }
        public int? AccountId { get; set; }
        public string AccountNo { get; set; }
        public string AccountPin { get; set; }
        public int? AccountState { get; set; }
        public int? AmountLimit { get; set; }
        public int? Balance { get; set; }
        public int? CardClass { get; set; }
        public int? CardType { get; set; }
        public int? Cash { get; set; }
        public DateTime? CreationDate { get; set; }
        public int? DailyAmountLimit { get; set; }
        public int? DiscountType { get; set; }
        public DateTime? ExpirationDate { get; set; }
        public string GasLiterLimit { get; set; }
        public string Holder { get; set; }
        public int? MonthlyAmountLimit { get; set; }
        public string OperatorNo { get; set; }
        public int? PinTryLimit { get; set; }
        public int? UserId { get; set; }
        public DateTime? ValidationDate { get; set; }
        public Guid? AccountInfoId { get; set; }
        public Guid? AccountTypeId { get; set; }
        public Guid? UserInfoId { get; set; }
        public string BelongTo { get; set; }
        public string EnableSms { get; set; }
        public string OfflineAccountId { get; set; }
        public int? OfflineDepositBalance { get; set; }
        public string OfflinePhoneNo { get; set; }
        public Guid? BusinessUnitInfoId { get; set; }
        public long? RechargeTotal { get; set; }
        public short? AcctSno { get; set; }
        public string Address { get; set; }
        public short? AcctType { get; set; }
        public string FuelNo { get; set; }
        public int? Gift { get; set; }
        public string CertfType { get; set; }
        public string CertfNo { get; set; }
        public int? TMac { get; set; }
        public short? Sno { get; set; }
        public long? Gid { get; set; }
        public Guid? BuInfoCreatedId { get; set; }
        public short? UploadFlag { get; set; }
        public DateTime? LastModified { get; set; }
        public string PhysicalCardUserInfo { get; set; }

        public virtual AccountInfo AccountInfoNavigation { get; set; }
        public virtual AccountType AccountType { get; set; }
        [NotMapped]
        public virtual BusinessUnitInfo BuInfoCreated { get; set; }
        [NotMapped]
        public virtual BusinessUnitInfo BusinessUnitInfo { get; set; }
        public virtual UserInfo UserInfo { get; set; }
        public virtual ICollection<CardInfo> CardInfo { get; set; }
        public virtual ICollection<AccountInfo> InverseAccountInfoNavigation { get; set; }
        [NotMapped]
        public virtual ICollection<OfflineTransactionInfo> OfflineTransactionInfo { get; set; }
        public virtual ICollection<RechargePaymentHistory> RechargePaymentHistory { get; set; }
        public virtual ICollection<TransactionInfo> TransactionInfo { get; set; }
    }
}
