1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-25 08:09:38 +02:00

Account namespace updates: part 1 (#893)

* Rename accountable types

* Merge conflicts

* Fix broken tests

* Add back sidebar changes
This commit is contained in:
Zach Gollwitzer 2024-06-20 07:26:25 -04:00 committed by GitHub
parent 778098ebb0
commit a947db92b2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
54 changed files with 349 additions and 184 deletions

View file

@ -1,3 +0,0 @@
class Account::Credit < ApplicationRecord
include Accountable
end

View file

@ -1,3 +0,0 @@
class Account::Crypto < ApplicationRecord
include Accountable
end

View file

@ -1,3 +0,0 @@
class Account::Depository < ApplicationRecord
include Accountable
end

View file

@ -1,3 +0,0 @@
class Account::Loan < ApplicationRecord
include Accountable
end

View file

@ -1,3 +0,0 @@
class Account::OtherAsset < ApplicationRecord
include Accountable
end

View file

@ -1,3 +0,0 @@
class Account::OtherLiability < ApplicationRecord
include Accountable
end

View file

@ -1,3 +0,0 @@
class Account::Property < ApplicationRecord
include Accountable
end

View file

@ -1,3 +0,0 @@
class Account::Vehicle < ApplicationRecord
include Accountable
end

View file

@ -1,28 +1,19 @@
module Accountable
extend ActiveSupport::Concern
ASSET_TYPES = %w[ Account::Depository Account::Investment Account::Crypto Account::OtherAsset Account::Property Account::Vehicle ]
LIABILITY_TYPES = %w[ Account::Credit Account::Loan Account::OtherLiability ]
ASSET_TYPES = %w[ Depository Investment Crypto Property Vehicle OtherAsset ]
LIABILITY_TYPES = %w[ CreditCard Loan OtherLiability ]
TYPES = ASSET_TYPES + LIABILITY_TYPES
def self.from_type(type)
return nil unless types.include?(type) || TYPES.include?(type)
"Account::#{type.demodulize}".constantize
return nil unless TYPES.include?(type)
type.constantize
end
def self.by_classification
{ assets: ASSET_TYPES, liabilities: LIABILITY_TYPES }
end
def self.types(classification = nil)
types = classification ? (classification.to_sym == :asset ? ASSET_TYPES : LIABILITY_TYPES) : TYPES
types.map { |type| type.demodulize }
end
def self.classification(type)
ASSET_TYPES.include?(type) ? :asset : :liability
end
included do
has_one :account, as: :accountable, touch: true
end

View file

@ -0,0 +1,3 @@
class CreditCard < ApplicationRecord
include Accountable
end

3
app/models/crypto.rb Normal file
View file

@ -0,0 +1,3 @@
class Crypto < ApplicationRecord
include Accountable
end

3
app/models/depository.rb Normal file
View file

@ -0,0 +1,3 @@
class Depository < ApplicationRecord
include Accountable
end

View file

@ -1,4 +1,4 @@
class Account::Investment < ApplicationRecord
class Investment < ApplicationRecord
include Accountable
SUBTYPES = [

3
app/models/loan.rb Normal file
View file

@ -0,0 +1,3 @@
class Loan < ApplicationRecord
include Accountable
end

View file

@ -0,0 +1,3 @@
class OtherAsset < ApplicationRecord
include Accountable
end

View file

@ -0,0 +1,3 @@
class OtherLiability < ApplicationRecord
include Accountable
end

3
app/models/property.rb Normal file
View file

@ -0,0 +1,3 @@
class Property < ApplicationRecord
include Accountable
end

3
app/models/vehicle.rb Normal file
View file

@ -0,0 +1,3 @@
class Vehicle < ApplicationRecord
include Accountable
end