Paper Trading
Paper Trading
Simulated trading environment for strategy testing without real funds.
20 tables in this group.
paper_sessions
Paper trading sessions for users to practice trading without real money
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
user_id | uuid | No | |
session_key | varchar(255) | No | 'default'::character varying |
name | varchar(255) | Yes | 'Default Paper Account'::character varying |
starting_balance_usd | numeric | No | 10000.00 |
is_active | bool | No | true |
metadata | jsonb | Yes | '{}'::jsonb |
created_at | timestamptz | No | now() |
updated_at | timestamptz | No | now() |
RLS Policies:
paper_sessions_service_all— ALL for {service_role}paper_sessions_user_delete— DELETE for {public}paper_sessions_user_insert— INSERT for {public}paper_sessions_user_select— SELECT for {public}paper_sessions_user_update— UPDATE for {public}
Indexes:
idx_paper_sessions_activeidx_paper_sessions_user_idpaper_sessions_pkeypaper_sessions_user_session_unique
paper_balances
Simulated asset balances per paper trading session
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
asset | varchar(20) | No | |
free | numeric | No | 0 |
locked | numeric | No | 0 |
usd_value | numeric | Yes | 0 |
updated_at | timestamptz | No | now() |
RLS Policies:
paper_balances_service_all— ALL for {service_role}paper_balances_user_delete— DELETE for {public}paper_balances_user_insert— INSERT for {public}paper_balances_user_select— SELECT for {public}paper_balances_user_update— UPDATE for {public}
Indexes:
idx_paper_balances_session_idpaper_balances_pkeypaper_balances_session_asset_unique
paper_positions
Open paper trading positions
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
symbol | varchar(20) | No | |
side | varchar(10) | No | |
quantity | numeric | No | |
entry_price | numeric | No | |
current_price | numeric | Yes | 0 |
unrealized_pnl | numeric | Yes | 0 |
unrealized_pnl_percent | numeric | Yes | 0 |
stop_loss | numeric | Yes | |
take_profit | numeric | Yes | |
opened_at | timestamptz | No | now() |
closed_at | timestamptz | Yes |
RLS Policies:
paper_positions_service_all— ALL for {service_role}paper_positions_user_delete— DELETE for {public}paper_positions_user_insert— INSERT for {public}paper_positions_user_select— SELECT for {public}paper_positions_user_update— UPDATE for {public}
Indexes:
idx_paper_positions_openidx_paper_positions_session_ididx_paper_positions_session_symbolidx_paper_positions_session_symbol_uniqueidx_paper_positions_user_idpaper_positions_pkey
paper_trades
Completed paper trades with P&L tracking
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
order_id | uuid | Yes | |
symbol | varchar | No | |
side | varchar | No | |
quantity | numeric | No | |
entry_price | numeric | No | |
exit_price | numeric | Yes | |
pnl | numeric | Yes | 0 |
pnl_percent | numeric | Yes | 0 |
fee_total | numeric | Yes | 0 |
outcome | varchar | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
opened_at | timestamptz | No | now() |
closed_at | timestamptz | Yes | |
duration_seconds | int4 | Yes |
RLS Policies:
Users can insert own paper trades— INSERT for {public}Users can update own paper trades— UPDATE for {public}Users can view own paper trades— SELECT for {public}paper_trades_service_all— ALL for {service_role}
paper_orders
Paper trading order history
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
symbol | varchar | No | |
side | varchar | No | |
order_type | varchar | No | 'market'::character varying |
quantity | numeric | No | |
price | numeric | Yes | |
status | varchar | No | 'pending'::character varying |
filled_quantity | numeric | Yes | 0 |
filled_price | numeric | Yes | |
fee | numeric | Yes | 0 |
slippage | numeric | Yes | 0 |
stop_loss | numeric | Yes | |
take_profit | numeric | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
created_at | timestamptz | No | now() |
filled_at | timestamptz | Yes |
RLS Policies:
Users can insert own paper orders— INSERT for {public}Users can update own paper orders— UPDATE for {public}Users can view own paper orders— SELECT for {public}paper_orders_service_all— ALL for {service_role}
paper_portfolio_stats
Denormalized portfolio statistics for fast dashboard reads
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
total_value_usd | numeric | Yes | 0 |
realized_pnl | numeric | Yes | 0 |
unrealized_pnl | numeric | Yes | 0 |
total_trades | int4 | Yes | 0 |
winning_trades | int4 | Yes | 0 |
losing_trades | int4 | Yes | 0 |
win_rate | numeric | Yes | 0 |
profit_factor | numeric | Yes | 0 |
avg_profit | numeric | Yes | 0 |
avg_loss | numeric | Yes | 0 |
max_drawdown | numeric | Yes | 0 |
last_updated | timestamptz | No | now() |
RLS Policies:
paper_portfolio_stats_service_all— ALL for {service_role}paper_portfolio_stats_user_delete— DELETE for {public}paper_portfolio_stats_user_insert— INSERT for {public}paper_portfolio_stats_user_select— SELECT for {public}paper_portfolio_stats_user_update— UPDATE for {public}
Indexes:
paper_portfolio_stats_pkeypaper_portfolio_stats_session_id_key
paper_trades_y2025m12
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
order_id | uuid | Yes | |
symbol | varchar | No | |
side | varchar | No | |
quantity | numeric | No | |
entry_price | numeric | No | |
exit_price | numeric | Yes | |
pnl | numeric | Yes | 0 |
pnl_percent | numeric | Yes | 0 |
fee_total | numeric | Yes | 0 |
outcome | varchar | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
opened_at | timestamptz | No | now() |
closed_at | timestamptz | Yes | |
duration_seconds | int4 | Yes |
RLS Policies:
Users can insert own paper trades— INSERT for {public}Users can update own paper trades— UPDATE for {public}Users can view own paper trades— SELECT for {public}
Indexes:
paper_trades_y2025m12_pkeypaper_trades_y2025m12_session_id_idxpaper_trades_y2025m12_session_id_opened_at_idxpaper_trades_y2025m12_session_id_outcome_idxpaper_trades_y2025m12_symbol_opened_at_idxpaper_trades_y2025m12_user_id_idxpaper_trades_y2025m12_user_id_opened_at_idx
paper_trades_y2026m01
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
order_id | uuid | Yes | |
symbol | varchar | No | |
side | varchar | No | |
quantity | numeric | No | |
entry_price | numeric | No | |
exit_price | numeric | Yes | |
pnl | numeric | Yes | 0 |
pnl_percent | numeric | Yes | 0 |
fee_total | numeric | Yes | 0 |
outcome | varchar | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
opened_at | timestamptz | No | now() |
closed_at | timestamptz | Yes | |
duration_seconds | int4 | Yes |
RLS Policies:
Users can insert own paper trades— INSERT for {public}Users can update own paper trades— UPDATE for {public}Users can view own paper trades— SELECT for {public}
Indexes:
paper_trades_y2026m01_pkeypaper_trades_y2026m01_session_id_idxpaper_trades_y2026m01_session_id_opened_at_idxpaper_trades_y2026m01_session_id_outcome_idxpaper_trades_y2026m01_symbol_opened_at_idxpaper_trades_y2026m01_user_id_idxpaper_trades_y2026m01_user_id_opened_at_idx
paper_trades_y2026m02
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
order_id | uuid | Yes | |
symbol | varchar | No | |
side | varchar | No | |
quantity | numeric | No | |
entry_price | numeric | No | |
exit_price | numeric | Yes | |
pnl | numeric | Yes | 0 |
pnl_percent | numeric | Yes | 0 |
fee_total | numeric | Yes | 0 |
outcome | varchar | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
opened_at | timestamptz | No | now() |
closed_at | timestamptz | Yes | |
duration_seconds | int4 | Yes |
RLS Policies:
Users can insert own paper trades— INSERT for {public}Users can update own paper trades— UPDATE for {public}Users can view own paper trades— SELECT for {public}
Indexes:
paper_trades_y2026m02_pkeypaper_trades_y2026m02_session_id_idxpaper_trades_y2026m02_session_id_opened_at_idxpaper_trades_y2026m02_session_id_outcome_idxpaper_trades_y2026m02_symbol_opened_at_idxpaper_trades_y2026m02_user_id_idxpaper_trades_y2026m02_user_id_opened_at_idx
paper_trades_y2026m03
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
order_id | uuid | Yes | |
symbol | varchar | No | |
side | varchar | No | |
quantity | numeric | No | |
entry_price | numeric | No | |
exit_price | numeric | Yes | |
pnl | numeric | Yes | 0 |
pnl_percent | numeric | Yes | 0 |
fee_total | numeric | Yes | 0 |
outcome | varchar | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
opened_at | timestamptz | No | now() |
closed_at | timestamptz | Yes | |
duration_seconds | int4 | Yes |
RLS Policies:
Users can insert own paper trades— INSERT for {public}Users can update own paper trades— UPDATE for {public}Users can view own paper trades— SELECT for {public}
Indexes:
paper_trades_y2026m03_pkeypaper_trades_y2026m03_session_id_idxpaper_trades_y2026m03_session_id_opened_at_idxpaper_trades_y2026m03_session_id_outcome_idxpaper_trades_y2026m03_symbol_opened_at_idxpaper_trades_y2026m03_user_id_idxpaper_trades_y2026m03_user_id_opened_at_idx
paper_trades_y2026m04
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
order_id | uuid | Yes | |
symbol | varchar | No | |
side | varchar | No | |
quantity | numeric | No | |
entry_price | numeric | No | |
exit_price | numeric | Yes | |
pnl | numeric | Yes | 0 |
pnl_percent | numeric | Yes | 0 |
fee_total | numeric | Yes | 0 |
outcome | varchar | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
opened_at | timestamptz | No | now() |
closed_at | timestamptz | Yes | |
duration_seconds | int4 | Yes |
RLS Policies:
Users can insert own paper trades— INSERT for {public}Users can update own paper trades— UPDATE for {public}Users can view own paper trades— SELECT for {public}
Indexes:
paper_trades_y2026m04_pkeypaper_trades_y2026m04_session_id_idxpaper_trades_y2026m04_session_id_opened_at_idxpaper_trades_y2026m04_session_id_outcome_idxpaper_trades_y2026m04_symbol_opened_at_idxpaper_trades_y2026m04_user_id_idxpaper_trades_y2026m04_user_id_opened_at_idx
paper_trades_y2026m05
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
order_id | uuid | Yes | |
symbol | varchar | No | |
side | varchar | No | |
quantity | numeric | No | |
entry_price | numeric | No | |
exit_price | numeric | Yes | |
pnl | numeric | Yes | 0 |
pnl_percent | numeric | Yes | 0 |
fee_total | numeric | Yes | 0 |
outcome | varchar | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
opened_at | timestamptz | No | now() |
closed_at | timestamptz | Yes | |
duration_seconds | int4 | Yes |
RLS Policies:
Users can insert own paper trades— INSERT for {public}Users can update own paper trades— UPDATE for {public}Users can view own paper trades— SELECT for {public}
Indexes:
paper_trades_y2026m05_pkeypaper_trades_y2026m05_session_id_idxpaper_trades_y2026m05_session_id_opened_at_idxpaper_trades_y2026m05_session_id_outcome_idxpaper_trades_y2026m05_symbol_opened_at_idxpaper_trades_y2026m05_user_id_idxpaper_trades_y2026m05_user_id_opened_at_idx
paper_trades_y2026m06
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
order_id | uuid | Yes | |
symbol | varchar | No | |
side | varchar | No | |
quantity | numeric | No | |
entry_price | numeric | No | |
exit_price | numeric | Yes | |
pnl | numeric | Yes | 0 |
pnl_percent | numeric | Yes | 0 |
fee_total | numeric | Yes | 0 |
outcome | varchar | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
opened_at | timestamptz | No | now() |
closed_at | timestamptz | Yes | |
duration_seconds | int4 | Yes |
RLS Policies:
Users can insert own paper trades— INSERT for {public}Users can update own paper trades— UPDATE for {public}Users can view own paper trades— SELECT for {public}
Indexes:
paper_trades_y2026m06_pkeypaper_trades_y2026m06_session_id_idxpaper_trades_y2026m06_session_id_opened_at_idxpaper_trades_y2026m06_session_id_outcome_idxpaper_trades_y2026m06_symbol_opened_at_idxpaper_trades_y2026m06_user_id_idxpaper_trades_y2026m06_user_id_opened_at_idx
paper_orders_y2025m12
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
symbol | varchar | No | |
side | varchar | No | |
order_type | varchar | No | 'market'::character varying |
quantity | numeric | No | |
price | numeric | Yes | |
status | varchar | No | 'pending'::character varying |
filled_quantity | numeric | Yes | 0 |
filled_price | numeric | Yes | |
fee | numeric | Yes | 0 |
slippage | numeric | Yes | 0 |
stop_loss | numeric | Yes | |
take_profit | numeric | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
created_at | timestamptz | No | now() |
filled_at | timestamptz | Yes |
RLS Policies:
Users can insert own paper orders— INSERT for {public}Users can update own paper orders— UPDATE for {public}Users can view own paper orders— SELECT for {public}
Indexes:
paper_orders_y2025m12_pkeypaper_orders_y2025m12_session_id_created_at_idxpaper_orders_y2025m12_session_id_idxpaper_orders_y2025m12_session_id_symbol_idxpaper_orders_y2025m12_status_created_at_idxpaper_orders_y2025m12_user_id_created_at_idxpaper_orders_y2025m12_user_id_idx
paper_orders_y2026m01
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
symbol | varchar | No | |
side | varchar | No | |
order_type | varchar | No | 'market'::character varying |
quantity | numeric | No | |
price | numeric | Yes | |
status | varchar | No | 'pending'::character varying |
filled_quantity | numeric | Yes | 0 |
filled_price | numeric | Yes | |
fee | numeric | Yes | 0 |
slippage | numeric | Yes | 0 |
stop_loss | numeric | Yes | |
take_profit | numeric | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
created_at | timestamptz | No | now() |
filled_at | timestamptz | Yes |
RLS Policies:
Users can insert own paper orders— INSERT for {public}Users can update own paper orders— UPDATE for {public}Users can view own paper orders— SELECT for {public}
Indexes:
paper_orders_y2026m01_pkeypaper_orders_y2026m01_session_id_created_at_idxpaper_orders_y2026m01_session_id_idxpaper_orders_y2026m01_session_id_symbol_idxpaper_orders_y2026m01_status_created_at_idxpaper_orders_y2026m01_user_id_created_at_idxpaper_orders_y2026m01_user_id_idx
paper_orders_y2026m02
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
symbol | varchar | No | |
side | varchar | No | |
order_type | varchar | No | 'market'::character varying |
quantity | numeric | No | |
price | numeric | Yes | |
status | varchar | No | 'pending'::character varying |
filled_quantity | numeric | Yes | 0 |
filled_price | numeric | Yes | |
fee | numeric | Yes | 0 |
slippage | numeric | Yes | 0 |
stop_loss | numeric | Yes | |
take_profit | numeric | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
created_at | timestamptz | No | now() |
filled_at | timestamptz | Yes |
RLS Policies:
Users can insert own paper orders— INSERT for {public}Users can update own paper orders— UPDATE for {public}Users can view own paper orders— SELECT for {public}
Indexes:
paper_orders_y2026m02_pkeypaper_orders_y2026m02_session_id_created_at_idxpaper_orders_y2026m02_session_id_idxpaper_orders_y2026m02_session_id_symbol_idxpaper_orders_y2026m02_status_created_at_idxpaper_orders_y2026m02_user_id_created_at_idxpaper_orders_y2026m02_user_id_idx
paper_orders_y2026m03
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
symbol | varchar | No | |
side | varchar | No | |
order_type | varchar | No | 'market'::character varying |
quantity | numeric | No | |
price | numeric | Yes | |
status | varchar | No | 'pending'::character varying |
filled_quantity | numeric | Yes | 0 |
filled_price | numeric | Yes | |
fee | numeric | Yes | 0 |
slippage | numeric | Yes | 0 |
stop_loss | numeric | Yes | |
take_profit | numeric | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
created_at | timestamptz | No | now() |
filled_at | timestamptz | Yes |
RLS Policies:
Users can insert own paper orders— INSERT for {public}Users can update own paper orders— UPDATE for {public}Users can view own paper orders— SELECT for {public}
Indexes:
paper_orders_y2026m03_pkeypaper_orders_y2026m03_session_id_created_at_idxpaper_orders_y2026m03_session_id_idxpaper_orders_y2026m03_session_id_symbol_idxpaper_orders_y2026m03_status_created_at_idxpaper_orders_y2026m03_user_id_created_at_idxpaper_orders_y2026m03_user_id_idx
paper_orders_y2026m04
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
symbol | varchar | No | |
side | varchar | No | |
order_type | varchar | No | 'market'::character varying |
quantity | numeric | No | |
price | numeric | Yes | |
status | varchar | No | 'pending'::character varying |
filled_quantity | numeric | Yes | 0 |
filled_price | numeric | Yes | |
fee | numeric | Yes | 0 |
slippage | numeric | Yes | 0 |
stop_loss | numeric | Yes | |
take_profit | numeric | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
created_at | timestamptz | No | now() |
filled_at | timestamptz | Yes |
RLS Policies:
Users can insert own paper orders— INSERT for {public}Users can update own paper orders— UPDATE for {public}Users can view own paper orders— SELECT for {public}
Indexes:
paper_orders_y2026m04_pkeypaper_orders_y2026m04_session_id_created_at_idxpaper_orders_y2026m04_session_id_idxpaper_orders_y2026m04_session_id_symbol_idxpaper_orders_y2026m04_status_created_at_idxpaper_orders_y2026m04_user_id_created_at_idxpaper_orders_y2026m04_user_id_idx
paper_orders_y2026m05
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
symbol | varchar | No | |
side | varchar | No | |
order_type | varchar | No | 'market'::character varying |
quantity | numeric | No | |
price | numeric | Yes | |
status | varchar | No | 'pending'::character varying |
filled_quantity | numeric | Yes | 0 |
filled_price | numeric | Yes | |
fee | numeric | Yes | 0 |
slippage | numeric | Yes | 0 |
stop_loss | numeric | Yes | |
take_profit | numeric | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
created_at | timestamptz | No | now() |
filled_at | timestamptz | Yes |
RLS Policies:
Users can insert own paper orders— INSERT for {public}Users can update own paper orders— UPDATE for {public}Users can view own paper orders— SELECT for {public}
Indexes:
paper_orders_y2026m05_pkeypaper_orders_y2026m05_session_id_created_at_idxpaper_orders_y2026m05_session_id_idxpaper_orders_y2026m05_session_id_symbol_idxpaper_orders_y2026m05_status_created_at_idxpaper_orders_y2026m05_user_id_created_at_idxpaper_orders_y2026m05_user_id_idx
paper_orders_y2026m06
| Column | Type | Nullable | Default |
|---|---|---|---|
id | uuid | No | gen_random_uuid() |
session_id | uuid | No | |
user_id | uuid | No | |
symbol | varchar | No | |
side | varchar | No | |
order_type | varchar | No | 'market'::character varying |
quantity | numeric | No | |
price | numeric | Yes | |
status | varchar | No | 'pending'::character varying |
filled_quantity | numeric | Yes | 0 |
filled_price | numeric | Yes | |
fee | numeric | Yes | 0 |
slippage | numeric | Yes | 0 |
stop_loss | numeric | Yes | |
take_profit | numeric | Yes | |
signal_confidence | numeric | Yes | 0 |
reasoning | text | Yes | |
indicators | jsonb | Yes | '{}'::jsonb |
created_at | timestamptz | No | now() |
filled_at | timestamptz | Yes |
RLS Policies:
Users can insert own paper orders— INSERT for {public}Users can update own paper orders— UPDATE for {public}Users can view own paper orders— SELECT for {public}
Indexes:
paper_orders_y2026m06_pkeypaper_orders_y2026m06_session_id_created_at_idxpaper_orders_y2026m06_session_id_idxpaper_orders_y2026m06_session_id_symbol_idxpaper_orders_y2026m06_status_created_at_idxpaper_orders_y2026m06_user_id_created_at_idxpaper_orders_y2026m06_user_id_idx