Adds per-user wallet configuration

Allows users to configure their own wallet ID, enabling
the system to track expenses and receivables on a per-user basis.

Introduces new database table, models, API endpoints, and UI elements
to manage user-specific wallet settings.
This commit is contained in:
padreug 2025-10-22 14:54:25 +02:00
parent 31344607c6
commit bb1dbcccd8
7 changed files with 236 additions and 6 deletions

View file

@ -1,9 +1,12 @@
from .crud import (
create_castle_settings,
create_user_wallet_settings,
get_castle_settings,
get_user_wallet_settings,
update_castle_settings,
update_user_wallet_settings,
)
from .models import CastleSettings
from .models import CastleSettings, UserWalletSettings
async def get_settings(user_id: str) -> CastleSettings:
@ -21,3 +24,22 @@ async def update_settings(user_id: str, data: CastleSettings) -> CastleSettings:
settings = await update_castle_settings(user_id, data)
return settings
async def get_user_wallet(user_id: str) -> UserWalletSettings:
settings = await get_user_wallet_settings(user_id)
if not settings:
settings = await create_user_wallet_settings(user_id, UserWalletSettings())
return settings
async def update_user_wallet(
user_id: str, data: UserWalletSettings
) -> UserWalletSettings:
settings = await get_user_wallet_settings(user_id)
if not settings:
settings = await create_user_wallet_settings(user_id, data)
else:
settings = await update_user_wallet_settings(user_id, data)
return settings