Use-case 0003 — Deposit virtual funds
Initiating actor: Trader
Other actors: —
A logged-in Trader tops up their virtual cash balance. This is a simulation-only operation; no real money changes hands. The operation writes to two tables — the user row and the ledger — inside a single transaction.
Scenario
- Trader chooses "Deposit virtual funds" from the authenticated menu.
- System prompts for an amount in USD.
- Trader enters an amount.
- System validates: amount must parse as a positive number.
- System opens a transaction and increments the balance:
BEGIN;
UPDATE project.users
SET available_balance = available_balance + $1,
updated_at = now()
WHERE id = $2;
INSERT INTO project.transactions (user_id, type, amount, currency, description)
VALUES ($2, 'deposit', $1, 'USD', 'Virtual deposit');
COMMIT;
- System confirms "Deposited X USD." and returns to the authenticated menu.
Alternate flow 4a — invalid input
If the amount is non-positive or non-numeric, system responds "Invalid amount." and scenario returns to step 2.
Verification query
To see the balance after the deposit, the Trader can trigger UC0006, or directly:
SELECT available_balance, invested_balance FROM project.users WHERE id = $1;
Last modified
3 days ago
Last modified on 09/24/26 13:50:05
Note:
See TracWiki
for help on using the wiki.
