feat: new

This commit is contained in:
luo
2026-09-16 16:32:08 +08:00
parent 6a1543f9f6
commit 8bd9de15cd
22 changed files with 2502 additions and 33 deletions

View File

@@ -0,0 +1,28 @@
## ADDED Requirements
### Requirement: Risk-exchange popup SHALL collect a shipping address
The system SHALL present a shipping address form when the candidate `popup_type` is `risk_exchange`, collecting recipient name, recipient phone, and full address, and SHALL submit them to `POST /api/c/v1/risk-exchanges/{asset_id}/address` using the candidate `asset_id` (never derived from the H5 identifier).
#### Scenario: Valid address submission
- **WHEN** the user fills the required fields and submits
- **THEN** the risk-exchange request SHALL be submitted with the candidate `asset_id`
- **AND** the system SHALL show the returned exchange number and status
#### Scenario: Invalid or incomplete fields
- **WHEN** the user submits empty or invalid fields
- **THEN** the system SHALL block submission and prompt for the missing fields
### Requirement: Address submission SHALL be idempotent
The system SHALL NOT provide an edit-address UI. Repeated or concurrent submissions return the first-created exchange order and address without overwriting.
#### Scenario: Repeated submission
- **WHEN** the user submits the address again for the same asset
- **THEN** the system SHALL return the first-created exchange order and address
### Requirement: Risk-exchange failures SHALL keep the user in place
The system SHALL keep the address form open on failure and treat invisible-asset failures uniformly without UI branching.
#### Scenario: Submission failure
- **WHEN** the address submission fails
- **THEN** the system SHALL keep the form open
- **AND** the user SHALL be able to retry