123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
-
- namespace App\Enums;
-
- use Filament\Support\Contracts\HasLabel;
-
- enum BankAccountType: string implements HasLabel
- {
- case Investment = 'investment';
- case Credit = 'credit';
- case Depository = 'depository';
- case Loan = 'loan';
- case Other = 'other';
-
- public const DEFAULT = self::Depository;
-
- public function getLabel(): ?string
- {
- return translate($this->name);
- }
-
- public function getSubtypes(): array
- {
- return match ($this) {
- self::Depository => [
- BankAccountSubtype::Checking,
- BankAccountSubtype::Savings,
- BankAccountSubtype::HealthSavingsAccountCash,
- BankAccountSubtype::CertificateOfDeposit,
- BankAccountSubtype::MoneyMarket,
- BankAccountSubtype::Paypal,
- BankAccountSubtype::Prepaid,
- BankAccountSubtype::CashManagement,
- BankAccountSubtype::ElectronicBenefitsTransfer,
- ],
- self::Credit => [
- BankAccountSubtype::CreditCard,
- BankAccountSubtype::PaypalCredit,
- ],
- self::Loan => [
- BankAccountSubtype::Auto,
- BankAccountSubtype::Business,
- BankAccountSubtype::Commercial,
- BankAccountSubtype::Construction,
- BankAccountSubtype::Consumer,
- BankAccountSubtype::HomeEquity,
- BankAccountSubtype::Loan,
- BankAccountSubtype::Mortgage,
- BankAccountSubtype::Overdraft,
- BankAccountSubtype::LineOfCredit,
- BankAccountSubtype::Student,
- BankAccountSubtype::Other,
- ],
- self::Investment => [
- BankAccountSubtype::CollegeSavings529,
- BankAccountSubtype::Retirement401a,
- BankAccountSubtype::Retirement401K,
- BankAccountSubtype::Retirement403b,
- BankAccountSubtype::DeferredCompensation457b,
- BankAccountSubtype::Brokerage,
- BankAccountSubtype::CashIndividualSavingsAccount,
- BankAccountSubtype::CryptoCurrencyExchange,
- BankAccountSubtype::EducationSavingsAccount,
- BankAccountSubtype::FixedAnnuity,
- BankAccountSubtype::GuaranteedInvestmentCertificate,
- BankAccountSubtype::HealthSavingsAccountNonCash,
- BankAccountSubtype::IndividualRetirementAccount,
- BankAccountSubtype::IndividualSavingsAccount,
- BankAccountSubtype::KeoghPlan,
- BankAccountSubtype::LifeIncomeFund,
- BankAccountSubtype::LifeInsuranceAccount,
- BankAccountSubtype::LockedInRetirementAccount,
- BankAccountSubtype::LockedInRetirementIncomeFund,
- BankAccountSubtype::LockedInRetirementSavingsPlan,
- BankAccountSubtype::MutualFundAccount,
- BankAccountSubtype::CryptoCurrencyWallet,
- BankAccountSubtype::NonTaxableBrokerageAccount,
- BankAccountSubtype::AnnuityAccountOther,
- BankAccountSubtype::InsuranceAccountOther,
- BankAccountSubtype::PensionAccount,
- BankAccountSubtype::PrescribedRetirementIncomeFund,
- BankAccountSubtype::ProfitSharingPlanAccount,
- BankAccountSubtype::QualifyingShareAccount,
- BankAccountSubtype::RegisteredDisabilitySavingsPlan,
- BankAccountSubtype::RegisteredEducationSavingsPlan,
- BankAccountSubtype::RetirementAccountOther,
- BankAccountSubtype::RestrictedLifeIncomeFund,
- BankAccountSubtype::RothIRA,
- BankAccountSubtype::Roth401k,
- BankAccountSubtype::RegisteredRetirementIncomeFund,
- BankAccountSubtype::RegisteredRetirementSavingsPlan,
- BankAccountSubtype::SalaryReductionSEPPlan,
- BankAccountSubtype::SimplifiedEmployeePensionIRA,
- BankAccountSubtype::SavingsIncentiveMatchPlanForEmployeesIRA,
- BankAccountSubtype::SelfInvestedPersonalPension,
- BankAccountSubtype::StockPlanAccount,
- BankAccountSubtype::TaxFreeSavingsAccount,
- BankAccountSubtype::TrustAccount,
- BankAccountSubtype::UniformGiftToMinorsAct,
- BankAccountSubtype::UniformTransfersToMinorsAct,
- BankAccountSubtype::VariableAnnuityAccount,
- ],
- self::Other => [
- BankAccountSubtype::Other,
- ],
- };
- }
- }
|