# Assumptions

1. OTP is generated and delivered through a pluggable sender interface; current default implementation logs OTP values for development.
2. Customer identity is unique by phone number across all shops.
3. Staff users (`shop_owner`, `cashier`) always belong to exactly one `shop_id`.
4. `subscription.active` middleware blocks only write operations that create new sales/orders.
5. Monetary decimals are stored as `DECIMAL(14,2)` and stock quantities as `DECIMAL(14,3)`.
6. `price_iqd` rounding rule uses nearest 250 IQD (`round(value / 250) * 250`).
7. In this phase, order stock is reserved by decrementing inventory at order creation time.
