Make every PaymentRequest changelist column sortable ascending/descending
(computed amount/user/jalali columns get an `ordering` so they sort by the
underlying DB field; only the "check success again" action button stays
unsortable). Add a default `-created_at` ordering and surface `updated_at`
as its own sortable column. The created_at/updated_at DateTimeRangeFilters
are retained and compose with sorting.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The deposit_income_submit/deposit_income_verify/charge_wallet_income
machinery and income_uuid added in 7dcb730 were not intended. Remove
them and the trailing charge_wallet_income() call.
The wallet charge is back to a single deposit: paid from IPG's own
application wallet (WALLET_IPG_CREDIT) into the user's rial wallet
(WALLET_RIAL_DEPOSIT).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
deposit_submit/deposit_verify passed WALLET_RIAL_DEPOSIT (a user-side
wallet type) as the company-side payer wallet. The payer must be IPG's
application wallet, WALLET_IPG_CREDIT; the user's rial wallet stays as
the body payee_wallet. deposit_income_* already used WALLET_IPG_CREDIT
correctly.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Rename the wallet-service UUID setting and its env var from
WALLET_INCOME_FROM_IPG to WALLET_IPG_CREDIT across settings and the
income-deposit flow in apps/pg/models.py. Deployments must rename the
corresponding environment variable.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Rename the wallet-service UUID setting and its env var from
WALLET_INCOME_FROM_IPG to WALLET_IPG_TRANSIT across settings and the
income-deposit flow in apps/pg/models.py. Deployments must rename the
corresponding environment variable.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
WALLET_RIAL -> WALLET_RIAL_DEPOSIT to match the naming used for the same
wallet-service UUID in the advertising/settlement/promotions repos. Also
adds WALLET_INCOME_FROM_IPG and wires it in: after a successful wallet
charge, the commission portion is deposited separately into it (attributed
to the requesting OAuth2 application) instead of never entering the wallet
ledger. The income deposit is best-effort and logs on failure rather than
failing an already-successful charge.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>