You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BankAccountSubtype.php 8.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?php
  2. namespace App\Enums;
  3. use Filament\Support\Contracts\HasLabel;
  4. enum BankAccountSubtype: string implements HasLabel
  5. {
  6. // Depository Types
  7. case Checking = 'checking';
  8. case Savings = 'savings';
  9. case HealthSavingsAccountCash = 'cash_hsa';
  10. case CertificateOfDeposit = 'cd';
  11. case MoneyMarket = 'money_market';
  12. case Paypal = 'paypal';
  13. case Prepaid = 'prepaid';
  14. case CashManagement = 'cash_management';
  15. case ElectronicBenefitsTransfer = 'ebt';
  16. // Credit Types
  17. case CreditCard = 'credit_card';
  18. case PaypalCredit = 'paypal_credit';
  19. // Loan Types
  20. case Auto = 'auto';
  21. case Business = 'business';
  22. case Commercial = 'commercial';
  23. case Construction = 'construction';
  24. case Consumer = 'consumer';
  25. case HomeEquity = 'home_equity';
  26. case Loan = 'loan'; // Generic loan
  27. case Mortgage = 'mortgage';
  28. case Overdraft = 'overdraft';
  29. case LineOfCredit = 'line_of_credit'; // Pre-approved line of credit
  30. case Student = 'student';
  31. case Other = 'other';
  32. // Investment Types
  33. case CollegeSavings529 = '529';
  34. case Retirement401a = '401a';
  35. case Retirement401K = '401k';
  36. case Retirement403b = '403b';
  37. case DeferredCompensation457b = '457b';
  38. case Brokerage = 'brokerage';
  39. case CashIndividualSavingsAccount = 'cash_isa';
  40. case CryptoCurrencyExchange = 'crypto_exchange';
  41. case EducationSavingsAccount = 'esa';
  42. case FixedAnnuity = 'fixed_annuity';
  43. case GuaranteedInvestmentCertificate = 'gic';
  44. case HealthReimbursementArrangement = 'hra';
  45. case HealthSavingsAccountNonCash = 'non_cash_hsa';
  46. case IndividualRetirementAccount = 'ira';
  47. case IndividualSavingsAccount = 'isa';
  48. case KeoghPlan = 'keogh';
  49. case LifeIncomeFund = 'lif';
  50. case LifeInsuranceAccount = 'life_insurance';
  51. case LockedInRetirementAccount = 'lira'; // Instead of LIRA
  52. case LockedInRetirementIncomeFund = 'lrif'; // Instead of LRIF
  53. case LockedInRetirementSavingsPlan = 'lrsp'; // Instead of LRSP
  54. case MutualFundAccount = 'mutual_fund'; // Instead of MutualFund
  55. case CryptoCurrencyWallet = 'non_custodial_wallet'; // Instead of NonCustodialWallet
  56. case NonTaxableBrokerageAccount = 'non_taxable_brokerage_account'; // Instead of NonTaxableBrokerageAccount
  57. case AnnuityAccountOther = 'other_annuity'; // Instead of OtherAnnuity
  58. case InsuranceAccountOther = 'other_insurance'; // Instead of OtherInsurance
  59. case PensionAccount = 'pension'; // Instead of Pension
  60. case PrescribedRetirementIncomeFund = 'prif'; // Instead of PRIF
  61. case ProfitSharingPlanAccount = 'profit_sharing_plan'; // Instead of ProfitSharingPlan
  62. case QualifyingShareAccount = 'qshr'; // Instead of QSHR
  63. case RegisteredDisabilitySavingsPlan = 'rdsp'; // Instead of RDSP
  64. case RegisteredEducationSavingsPlan = 'resp'; // Instead of RESP
  65. case RetirementAccountOther = 'retirement'; // Instead of Retirement
  66. case RestrictedLifeIncomeFund = 'rlif'; // Instead of RLIF
  67. case RothIRA = 'roth'; // Instead of Roth
  68. case Roth401k = 'roth_401k'; // Instead of RothFourOhOneK
  69. case RegisteredRetirementIncomeFund = 'rrif'; // Instead of RRIF
  70. case RegisteredRetirementSavingsPlan = 'rrsp'; // Instead of RRSP
  71. case SalaryReductionSEPPlan = 'sarsep'; // Instead of SARSEP
  72. case SimplifiedEmployeePensionIRA = 'sep_ira'; // Instead of SEPIRA
  73. case SavingsIncentiveMatchPlanForEmployeesIRA = 'simple_ira'; // Instead of SIMPLEIRA
  74. case SelfInvestedPersonalPension = 'sipp'; // Instead of SIPP
  75. case StockPlanAccount = 'stock_plan'; // Instead of StockPlan
  76. case TaxFreeSavingsAccount = 'tfsa'; // Instead of TFSA
  77. case TrustAccount = 'trust'; // Instead of Trust
  78. case UniformGiftToMinorsAct = 'ugma'; // Instead of UGMA
  79. case UniformTransfersToMinorsAct = 'utma'; // Instead of UTMA
  80. case VariableAnnuityAccount = 'variable_annuity'; // Instead of VariableAnnuity
  81. public function getLabel(): ?string
  82. {
  83. $label = match ($this) {
  84. self::Checking => 'Checking',
  85. self::Savings => 'Savings',
  86. self::HealthSavingsAccountCash => 'Health Savings Account (Cash)',
  87. self::CertificateOfDeposit => 'Certificate of Deposit',
  88. self::MoneyMarket => 'Money Market',
  89. self::Paypal => 'PayPal',
  90. self::Prepaid => 'Prepaid',
  91. self::CashManagement => 'Cash Management',
  92. self::ElectronicBenefitsTransfer => 'Electronic Benefits Transfer (EBT)',
  93. self::CreditCard => 'Credit Card',
  94. self::PaypalCredit => 'PayPal Credit',
  95. self::Auto => 'Auto',
  96. self::Business => 'Business',
  97. self::Commercial => 'Commercial',
  98. self::Construction => 'Construction',
  99. self::Consumer => 'Consumer',
  100. self::HomeEquity => 'Home Equity',
  101. self::Loan => 'Loan',
  102. self::Mortgage => 'Mortgage',
  103. self::Overdraft => 'Overdraft',
  104. self::LineOfCredit => 'Line of Credit',
  105. self::Student => 'Student',
  106. self::Other => 'Other',
  107. self::CollegeSavings529 => '529 College Savings Plan',
  108. self::Retirement401a => '401(a)',
  109. self::Retirement401K => '401(k)',
  110. self::Retirement403b => '403(b)',
  111. self::DeferredCompensation457b => '457(b)',
  112. self::Brokerage => 'Brokerage',
  113. self::CashIndividualSavingsAccount => 'Cash Individual Savings Account (ISA)',
  114. self::CryptoCurrencyExchange => 'Crypto Currency Exchange',
  115. self::EducationSavingsAccount => 'Education Savings Account (ESA)',
  116. self::FixedAnnuity => 'Fixed Annuity',
  117. self::GuaranteedInvestmentCertificate => 'Guaranteed Investment Certificate (GIC)',
  118. self::HealthSavingsAccountNonCash => 'Health Savings Account (Non-Cash)',
  119. self::IndividualRetirementAccount => 'Individual Retirement Account (IRA)',
  120. self::IndividualSavingsAccount => 'Individual Savings Account (ISA)',
  121. self::KeoghPlan => 'Keogh Plan',
  122. self::LifeIncomeFund => 'Life Income Fund (LIF)',
  123. self::LifeInsuranceAccount => 'Life Insurance Account',
  124. self::LockedInRetirementAccount => 'Locked-In Retirement Account (LIRA)',
  125. self::LockedInRetirementIncomeFund => 'Locked-In Retirement Income Fund (LRIF)',
  126. self::LockedInRetirementSavingsPlan => 'Locked-In Retirement Savings Plan (LRSP)',
  127. self::MutualFundAccount => 'Mutual Fund Account',
  128. self::CryptoCurrencyWallet => 'Non-Custodial Wallet',
  129. self::NonTaxableBrokerageAccount => 'Non-Taxable Brokerage Account',
  130. self::AnnuityAccountOther => 'Other Annuity',
  131. self::InsuranceAccountOther => 'Other Insurance',
  132. self::PensionAccount => 'Pension',
  133. self::PrescribedRetirementIncomeFund => 'Prescribed Retirement Income Fund (PRIF)',
  134. self::ProfitSharingPlanAccount => 'Profit Sharing Plan',
  135. self::QualifyingShareAccount => 'Qualifying Share Account (QSHR)',
  136. self::RegisteredDisabilitySavingsPlan => 'Registered Disability Savings Plan (RDSP)',
  137. self::RegisteredEducationSavingsPlan => 'Registered Education Savings Plan (RESP)',
  138. self::RetirementAccountOther => 'Retirement',
  139. self::RestrictedLifeIncomeFund => 'Restricted Life Income Fund (RLIF)',
  140. self::RothIRA => 'Roth IRA',
  141. self::Roth401k => 'Roth 401(k)',
  142. self::RegisteredRetirementIncomeFund => 'Registered Retirement Income Fund (RRIF)',
  143. self::RegisteredRetirementSavingsPlan => 'Registered Retirement Savings Plan (RRSP)',
  144. self::SalaryReductionSEPPlan => 'Salary Reduction SEP Plan (SARSEP)',
  145. self::SimplifiedEmployeePensionIRA => 'Simplified Employee Pension IRA (SEP IRA)',
  146. self::SavingsIncentiveMatchPlanForEmployeesIRA => 'Savings Incentive Match Plan for Employees IRA (SIMPLE IRA)',
  147. self::SelfInvestedPersonalPension => 'Self-Invested Personal Pension (SIPP)',
  148. self::StockPlanAccount => 'Stock Plan',
  149. self::TaxFreeSavingsAccount => 'Tax-Free Savings Account (TFSA)',
  150. self::TrustAccount => 'Trust',
  151. self::UniformGiftToMinorsAct => 'Uniform Gift to Minors Act (UGMA)',
  152. self::UniformTransfersToMinorsAct => 'Uniform Transfers to Minors Act (UTMA)',
  153. self::VariableAnnuityAccount => 'Variable Annuity',
  154. };
  155. return $label;
  156. }
  157. }