# Seller app: the seller's price currency

Since 2026-10-25 a seller prices in one currency, set by staff (`App\Services\Currency\SellerCurrency`).
Every seller is US dollars until staff switch them. Customers always see SYP; the customer app is
unchanged.

## What the server does with no app change

- **Prices the seller sends are read in the seller's currency.** `unit_price` and the variant prices
  on product store/update are RAW in it, exactly as before for a seller in dollars.
- **Prices and amounts the seller receives are in the same currency.** That covers formatted strings
  (`"$12.50"`, `"12,345 ل.س"`), product prices, order totals and lines, sales stats, balance,
  commission history, payouts and withdraw requests.
- An old app build works as is. Its own labels ("$") would be wrong for a seller in SYP, hence the
  keys below.

## New keys (additive)

| Endpoint | Key | Meaning |
|---|---|---|
| `GET v2/seller/shop/info` (`ShopDetailsCollection`) | `currency_code`, `currency_symbol` | the seller's currency, e.g. `"SYP"`, `"ل.س"` |
| `GET v2/seller/products/edit/{id}` (`ProductDetailsCollection`) | `currency_code`, `currency_symbol` | the currency `unit_price` and the variant prices are in |
| `GET v2/seller/products/all` (`ProductCollection`) | `currency_code` | per product; `price` is already formatted in it |
| `GET v2/seller/dashboard/sales-stat` | `currency_code` on each day | `total` is a bare number in that currency |

## What the app should do

1. Read `currency_code` / `currency_symbol` from shop info once and label every price input and
   every bare number with it, instead of a hard-coded "$".
2. For `SYP`, take whole pounds (`step 1`) and show a hint when the typed price is not a multiple
   of 5: customers see every price rounded to 5 SYP.
3. Withdraw requests: the amount is typed in the seller's currency. The minimum and the maximum the
   server checks are in it too (`SellerWithdrawRequest::refusal()`).
