1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-08-04 21:15:19 +02:00

Move categories to top-level namespace (#894)

This commit is contained in:
Zach Gollwitzer 2024-06-20 08:15:09 -04:00 committed by GitHub
parent a947db92b2
commit 2681dd96b1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
48 changed files with 229 additions and 223 deletions

View file

@ -1,4 +1,4 @@
class Transaction::Category < ApplicationRecord
class Category < ApplicationRecord
has_many :transactions, dependent: :nullify
belongs_to :family
@ -24,7 +24,7 @@ class Transaction::Category < ApplicationRecord
]
def self.create_default_categories(family)
if family.transaction_categories.size > 0
if family.categories.size > 0
raise ArgumentError, "Family already has some categories"
end

View file

@ -5,7 +5,7 @@ class Family < ApplicationRecord
has_many :institutions, dependent: :destroy
has_many :transactions, through: :accounts
has_many :imports, through: :accounts
has_many :transaction_categories, dependent: :destroy, class_name: "Transaction::Category"
has_many :categories, dependent: :destroy
has_many :transaction_merchants, dependent: :destroy, class_name: "Transaction::Merchant"
def snapshot(period = Period.all)

View file

@ -124,7 +124,7 @@ class Import < ApplicationRecord
tags << tag_cache[tag_string] ||= account.family.tags.find_or_initialize_by(name: tag_string)
end
category = category_cache[category_name] ||= account.family.transaction_categories.find_or_initialize_by(name: category_name) if category_name.present?
category = category_cache[category_name] ||= account.family.categories.find_or_initialize_by(name: category_name) if category_name.present?
txn = account.transactions.build \
name: row["name"].presence || FALLBACK_TRANSACTION_NAME,

View file

@ -18,7 +18,7 @@ class Transaction < ApplicationRecord
scope :inflows, -> { where("amount <= 0") }
scope :outflows, -> { where("amount > 0") }
scope :by_name, ->(name) { where("transactions.name ILIKE ?", "%#{name}%") }
scope :with_categories, ->(categories) { joins(:category).where(transaction_categories: { name: categories }) }
scope :with_categories, ->(categories) { joins(:category).where(categories: { name: categories }) }
scope :with_accounts, ->(accounts) { joins(:account).where(accounts: { name: accounts }) }
scope :with_account_ids, ->(account_ids) { joins(:account).where(accounts: { id: account_ids }) }
scope :with_merchants, ->(merchants) { joins(:merchant).where(transaction_merchants: { name: merchants }) }