mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-18 20:59:39 +02:00
Breaks our Plaid sync process out into more manageable classes. Notably, this moves the sync process to a distinct, 2-step flow: 1. Import stage - we first make API calls and import Plaid data to "mirror" tables 2. Processing stage - read the raw data, apply business rules, build internal domain models and sync balances This provides several benefits: - Plaid syncs can now be "replayed" without fetching API data again - Mirror tables provide better audit and debugging capabilities - Eliminates the "all or nothing" sync behavior that is currently in place, which is brittle
29 lines
578 B
Ruby
29 lines
578 B
Ruby
class Depository < ApplicationRecord
|
|
include Accountable
|
|
|
|
SUBTYPES = {
|
|
"checking" => { short: "Checking", long: "Checking" },
|
|
"savings" => { short: "Savings", long: "Savings" },
|
|
"hsa" => { short: "HSA", long: "Health Savings Account" },
|
|
"cd" => { short: "CD", long: "Certificate of Deposit" },
|
|
"money_market" => { short: "MM", long: "Money Market" }
|
|
}.freeze
|
|
|
|
class << self
|
|
def display_name
|
|
"Cash"
|
|
end
|
|
|
|
def color
|
|
"#875BF7"
|
|
end
|
|
|
|
def classification
|
|
"asset"
|
|
end
|
|
|
|
def icon
|
|
"landmark"
|
|
end
|
|
end
|
|
end
|