# Documenter — F-019 Promotions v1

## Summary
Promotions v1 adds server-side promo code definitions and validation. Cart stores only a selected `promoCode`; discount amounts are recalculated from current cart totals.

## Public API notes

| Route | Access | Result |
|---|---|---|
| POST /promotions | admin only | Creates or updates a promo code |
| POST /cart/promo-code | authenticated | Applies one promo code to the current cart |

## Rules
- Promotion types: `percent` and `fixed_amount`.
- Percent values are basis points; fixed values are cents and capped at cart total.
- Validity checks: active flag, time window, usage limit.
- No stacking in v1: one promo code per cart.
- Client-supplied discount amounts are ignored.

## Evidence
- `work/artifacts/F-019/architect.md`
- `work/artifacts/F-019/implementer.md`
- `work/artifacts/F-019/reviewer.json`
- `work/artifacts/F-019/security.json`
- `work/artifacts/F-019/qa.json`
