# Epic 10 UAT closure

## Registration

New registration begins at `pending_email_verification`. Verified accounts move to `pending_admin_approval` and cannot log in until approved. Admin approval enables the account and initializes first-login onboarding. Rejection prevents login and provides a signed, time-limited resubmission route; the same user, verified email, affiliate/referral relationship, and identity protections are retained while current rejection fields are cleared on resubmission.

## First-time onboarding

An approved first-time agent progresses from the experience question to the configured tutorial and then to completed. The welcome title/message work with or without a video URL; a missing video does not render an iframe.

## Returning onboarding

Returning agents progress to Balance Inquiry. They can submit Membership Balance, Lead Credit Balance, or both, creating one ordinary Support ticket, or skip without a ticket. In both cases onboarding completes.

## Support and Balance Inquiry

Support conversations follow open/in-review → admin reply → waiting user → agent reply → in review. Resolved tickets reopen on agent reply; closed tickets reject normal replies. Ticket ownership is agent-scoped while admins can review all tickets.

For an eligible Balance Inquiry ticket, an administrator may complete one manual refund to the ticket owner’s normal E-Wallet. The transaction, refund audit record, Support reply, resolved state, and safe database notification are atomic. It does not change Partner Wallet, Lead Credit, or Membership directly.

There is no Migration category, automatic old-system lookup, direct Membership restoration, or direct Lead Credit restoration.

## Notification and privacy boundaries

Admin replies, resolved/closed transitions, and successful refunds use the existing database notification bell/page and link to the ticket. Safe payloads exclude wallet balance, transaction IDs, internal notes, IC, credentials, payment-provider data, and Partner financial data.

## Release closure verification

Fresh migration and seeding completed successfully. Every configured test file under `tests/Feature` and `tests/Unit` was included in non-overlapping complete-regression batches: **393 tests, 4,288 assertions, all passing**. The Epic 10 focused UAT selection remains green; static formatting, production build, route inspection, and diff checks also pass.
