Adds expense tracking module

Adds a new module for tracking user expenses.

The module includes:
- Configuration settings for the LNbits API endpoint and timeouts.
- An ExpensesAPI service for fetching accounts and submitting expense entries.
- A UI component for adding expenses, including account selection and form input.
- Dependency injection for the ExpensesAPI service.

This allows users to submit expense entries with account selection and reference data, which will be linked to their wallet.
This commit is contained in:
padreug 2025-11-07 16:21:59 +01:00
parent 678ccff694
commit 9ed674d0f3
8 changed files with 975 additions and 1 deletions

View file

@ -16,6 +16,7 @@ import chatModule from './modules/chat'
import eventsModule from './modules/events'
import marketModule from './modules/market'
import walletModule from './modules/wallet'
import expensesModule from './modules/expenses'
// Root component
import App from './App.vue'
@ -43,7 +44,8 @@ export async function createAppInstance() {
...chatModule.routes || [],
...eventsModule.routes || [],
...marketModule.routes || [],
...walletModule.routes || []
...walletModule.routes || [],
...expensesModule.routes || []
].filter(Boolean)
// Create router with all routes available immediately
@ -126,6 +128,13 @@ export async function createAppInstance() {
)
}
// Register expenses module
if (appConfig.modules.expenses?.enabled) {
moduleRegistrations.push(
pluginManager.register(expensesModule, appConfig.modules.expenses)
)
}
// Wait for all modules to register
await Promise.all(moduleRegistrations)