using System;
using System.Collections.Generic;

namespace LHDN.CRM.Models.ViewModels
{
    public class TaxPayerViewModel
    {
        public long TPID { get; set; }

        public string TPName { get; set; }

        public string NoCukaiCode { get; set; }

        public string NoCukai { get; set; }
        public string NoCukaiSTS { get; set; }

        public string FileType { get; set; }

        public int? FileTypeID { get; set; }

        public int? VIPID { get; set; }

        public string VIPCode { get; set; }

        public string VIPCategoriName { get; set; }

        public bool IsSekatanPerjalanan { get; set; }

        public int? IdentityTypeID { get; set; }

        public string JenisPengenalan { get; set; }

        public string IdentityNo { get; set; }

        public string NoKPBaru { get; set; }

        public string NoPassport { get; set; }

        public string NoPolis { get; set; }

        public string NoKPLama { get; set; }

        public string NoROC { get; set; }

        public int? CWPenaksiranCPID { get; set; }  //Ensure the column name is same as DB

        public int? CWPenaksiranCKHTID { get; set; } //Ensure the column name is same as DB

        public int? CWPungutanCPID { get; set; } //Ensure the column name is same as DB

        public int? CWPungutanCKHTID { get; set; } //Ensure the column name is same as DB

        public int? CWGuamanSivilID { get; set; } //Ensure the column name is same as DB

        public string CWPenaksiranCP { get; set; }

        public string CWPenaksiranCKHT { get; set; }

        public string CWPungutanCP { get; set; }

        public string CWPungutanCKHT { get; set; }

        public string CWGuamanSivil { get; set; }

        public int? CFFToAssignUnitID { get; set; } //CFF assignment 

        public string CFFToAssignUnitName { get; set; } //CFF assignment 

        public decimal? KreditBlmDigunakan { get; set; }

        public decimal? KreditBlhDibayarBalikCKHT { get; set; }

        public decimal? KreditBlhDibayarBalikCP { get; set; }

        public decimal? DebitBlmDijelaskanCKHT { get; set; }

        public decimal? DebitBlmDijelaskanCP { get; set; }

        public int? GelaranID { get; set; }

        public string HonorificName { get; set; }

        public int? HonorificID { get; set; }

        public string GelaranName { get; set; }

        public string BankName { get; set; }

        public string AccountNo { get; set; }

        public int? KelasID { get; set; }

        public string KelasName { get; set; }
           
        public int? WarganegaraID { get; set; }

        public string WarganegaraValue { get; set; }

        public string Warganegara { get; set; }

        public DateTime? DOB { get; set; }
         
        public string NoPendaftaran { get; set; }

        public string Kategori { get; set; }
          
        public string TelNo { get; set; }

        public string MobileNo { get; set; }

        public string Email { get; set; }

        public string FakNo { get; set; }

        public string FBID { get; set; }

        public string FBDisplayName { get; set; }

        public string TWID { get; set; }

        public string TWDisplayName { get; set; }

        public bool? IsAlamatEjenCukai { get; set; }

        public string Address1 { get; set; }

        public string Address2 { get; set; }

        public string Address3 { get; set; }

        public string Poskod { get; set; }

        public string City { get; set; }

        public string Country { get; set; }
          
        public int? StatusFailID { get; set; }
        public string StatusFail { get; set; }

        public bool? IsPelangganPembayarSama { get; set; }
         
        public string InTelefonMB { get; set; }

        public DateTime? InUpdateTelefonMBDate { get; set; }

        public string InEmailMB { get; set; }

        public DateTime? InUpdateEmailMBDate { get; set; }

        public string OutTelefonBimbit { get; set; }
        public DateTime? OutUpdateTelefonBimbitDate { get; set; }

        public string OutTelefonPejabat { get; set; }

        public string OutTelefonJPDP { get; set; }

        public string OutEmailMB { get; set; }
        public DateTime? OutUpdateEmailMBDate { get; set; }

        public DateTime? OutUpdateTPDate { get; set; }
         
        public string CreatedBy { get; set; }

        public DateTime CreatedDateTime { get; set; }

        public string LastUpdatedBy { get; set; }

        public string LastUpdatedByName { get; set; }


        public DateTime LastUpdatedDateTime { get; set; }

        public bool? SEK104IsBlacklist { get; set; }

        public string SEK104Status { get; set; }

        public decimal? SEK104Debit { get; set; }

        public DateTime? SEK104InvokeDate { get; set; }

        public bool? SEK22IsBlacklist { get; set; }
        public string SEK22Status { get; set; }

        public decimal? SEK22Debit { get; set; }
        public DateTime? SEK22InvokeDate { get; set; }

        public bool? HaspusKiraIsBlacklist { get; set; }

        public DateTime? HapusanKiraTarikh { get; set; }

        public decimal? HapusanKiraAmaun { get; set; }

        public int TotalCase { get; set; }

        public int CaseBlmSelesai { get; set; }
        public int ActBlmSelesai { get; set; }

        public int TotalOutbound { get; set; }

        public int OutboundBlmSelesai { get; set; }
        public byte[] ChangeStamp { get; set; }

        public string StatusFailPendua { get; set; }

        public string EditorContent { get; set; }

        public string Language { get; set; }

        public int? LanguageID { get; set; }

        public List<TPSpouseViewModel> SpouseDetails { get; set; }

        public List<TPPemilikanSyarikatViewModel> PemilikanSyarikat { get; set; }

        public List<TPSekatanPerjalanan75AModel> SktPerjalanan75A { get; set; }

        public List<TPShareHolderViewModel> ShareholderDetail { get; set; }

        public List<TPCukaiMajikanViewModel> CukaiMajikanDetail { get; set; }

        public List<TPEjenCukaiViewModel> EjenCukaiDetail { get; set; }

        public List<TPFailPenduaViewModel> FailPenduaDetail { get; set; }

        public List<TPStatusBayaranBalikViewModel> StatusBayaranBalik { get; set; }

        public long? EmplTPID { get; set; }
        public string EmplNoRujukanCukai { get; set; }
        public string EmplNoCukaiSTS { get; set; }
        public int? EmplFileTypeID { get; set; }
        public DateTime? ReMS_LastUpdatedDateTime { get; set; }
        public DateTime? DWMirror_LastUpdatedDateTime { get; set; }
        public byte? CCIDTypeCode { get; set; }

    }
}
