feat(v2)(ui): tx_type chip in operator settlements table (S8 UI)

Adds a "Direction" column to the per-machine settlements table that
renders a coloured Quasar chip with a directional icon:

  - cash-out (green-8, south_west arrow) — customer paid ATM invoice in
    BTC, operator wallet received sats. Principal distributes to LPs.
  - cash-in  (orange-8, north_east arrow) — customer redeemed LNURL-
    withdraw at the ATM, operator wallet sent sats. No DCA leg;
    liquidity stays in the operator wallet.

Tooltips spell out the meaning so the operator doesn't have to
remember the canonical mapping (cash_out ↔ inbound, cash_in ↔ outbound)
on sight. Defaults to cash_out for any unknown / legacy row, which is
safe because pre-S6 rows are all cash_out and the rejection-record
path also stamps cash_out.

Closes the UI half of aiolabs/satmachineadmin#22 (S8 cash-in path);
the structural half (direction discriminator + DCA skip) shipped in
eca6e96. End-to-end test against a live LNURL-withdraw redemption is
the remaining S8 acceptance gate.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Padreug 2026-05-26 23:28:42 +02:00
commit ecf432c6a0
2 changed files with 40 additions and 0 deletions

View file

@ -874,6 +874,17 @@
<q-badge :color="settlementStatusColor(props.row.status)"
:label="props.row.status"></q-badge>
</q-td>
<q-td key="tx_type">
<q-chip dense square size="sm"
:color="txTypeChip(props.row.tx_type).color"
text-color="white"
:icon="txTypeChip(props.row.tx_type).icon">
<span v-text="txTypeChip(props.row.tx_type).label"></span>
<q-tooltip>
<span v-text="txTypeChip(props.row.tx_type).tooltip"></span>
</q-tooltip>
</q-chip>
</q-td>
<q-td key="created_at">
<span :style="{fontSize: '0.85em'}"
v-text="formatTime(props.row.created_at)"></span>