Creates default user accounts on wallet setup

Ensures consistent user account structure by proactively
creating core liability and asset accounts when a user
configures their wallet settings.
This commit is contained in:
padreug 2025-11-08 23:41:17 +01:00
parent 9054b3eb62
commit 992a8fe554

View file

@ -2,11 +2,12 @@ from .crud import (
create_castle_settings, create_castle_settings,
create_user_wallet_settings, create_user_wallet_settings,
get_castle_settings, get_castle_settings,
get_or_create_user_account,
get_user_wallet_settings, get_user_wallet_settings,
update_castle_settings, update_castle_settings,
update_user_wallet_settings, update_user_wallet_settings,
) )
from .models import CastleSettings, UserWalletSettings from .models import AccountType, CastleSettings, UserWalletSettings
async def get_settings(user_id: str) -> CastleSettings: async def get_settings(user_id: str) -> CastleSettings:
@ -42,4 +43,13 @@ async def update_user_wallet(
else: else:
settings = await update_user_wallet_settings(user_id, data) settings = await update_user_wallet_settings(user_id, data)
# Proactively create core user accounts when wallet is configured
# This ensures all users have a consistent account structure from the start
await get_or_create_user_account(
user_id, AccountType.LIABILITY, "Accounts Payable"
)
await get_or_create_user_account(
user_id, AccountType.ASSET, "Accounts Receivable"
)
return settings return settings