Make categories global (#1160)

* Make categories global

This solves us A LOT of cash flow and budgeting problems.

* Update schema.rb

* Update auto_categorizer.rb

* Update income_statement.rb

* FIX budget sub-categories

* FIX sub-categories and tests

* Add 2 step migration
This commit is contained in:
soky srm
2026-03-11 15:54:01 +01:00
committed by GitHub
parent 7ae9077935
commit e1ff6d46ee
54 changed files with 393 additions and 313 deletions

View File

@@ -36,7 +36,6 @@ RSpec.describe 'API V1 Categories', type: :request do
let!(:parent_category) do
family.categories.create!(
name: 'Food & Drink',
classification: 'expense',
color: '#f97316',
lucide_icon: 'utensils'
)
@@ -45,7 +44,6 @@ RSpec.describe 'API V1 Categories', type: :request do
let!(:subcategory) do
family.categories.create!(
name: 'Restaurants',
classification: 'expense',
color: '#f97316',
lucide_icon: 'utensils',
parent: parent_category
@@ -55,7 +53,6 @@ RSpec.describe 'API V1 Categories', type: :request do
let!(:income_category) do
family.categories.create!(
name: 'Salary',
classification: 'income',
color: '#22c55e',
lucide_icon: 'circle-dollar-sign'
)
@@ -70,9 +67,6 @@ RSpec.describe 'API V1 Categories', type: :request do
description: 'Page number (default: 1)'
parameter name: :per_page, in: :query, type: :integer, required: false,
description: 'Items per page (default: 25, max: 100)'
parameter name: :classification, in: :query, required: false,
description: 'Filter by classification (income or expense)',
schema: { type: :string, enum: %w[income expense] }
parameter name: :roots_only, in: :query, required: false,
description: 'Return only root categories (no parent)',
schema: { type: :boolean }
@@ -86,14 +80,6 @@ RSpec.describe 'API V1 Categories', type: :request do
run_test!
end
response '200', 'categories filtered by classification' do
schema '$ref' => '#/components/schemas/CategoryCollection'
let(:classification) { 'expense' }
run_test!
end
response '200', 'root categories only' do
schema '$ref' => '#/components/schemas/CategoryCollection'

View File

@@ -54,7 +54,6 @@ RSpec.describe 'API V1 Trades', type: :request do
let(:category) do
family.categories.create!(
name: 'Investments',
classification: 'expense',
color: '#2196F3',
lucide_icon: 'trending-up'
)

View File

@@ -46,7 +46,6 @@ RSpec.describe 'API V1 Transactions', type: :request do
let(:category) do
family.categories.create!(
name: 'Groceries',
classification: 'expense',
color: '#4CAF50',
lucide_icon: 'shopping-cart'
)