ifnex/04_Laravel/app/Filament
Kazem Alghasi 563f89495c fix(pricing): restore array-based calculate() and harden pricing API
Restore the array-based signature of PriceCalculatorService::calculate()
to fix the TypeError thrown when PricingController and CustomerOrderController
called it with an array (the previous commit had switched to 4 separate
string params without updating the callers).

- PriceCalculatorService: support multiple input formats for direction
  (export|import|Outbound|Inbound) and type (DOC_NORMAL|DOC_ECONOMY|PARCEL|
  DOCUMENT|NON DOC) for backward compatibility with admin and customer flows.
- ExchangeRateService: add convertToIrr() for explicit AED→IRR conversion
  (was missing but referenced by the calculator).
- PricingController: expand validation rules to accept new shipment types
  and a discount_code string (was 'discount' numeric). Add 3-layer exception
  handling (422 validation / 400 business / 500 server).
- PriceTestPage: compute volumetric weight from dimensions (IATA: L×W×H/5000),
  resolve destination country by direction, and show errors as Filament
  notifications instead of crashing.
2026-10-29 14:40:58 +03:30
..
Pages fix(pricing): restore array-based calculate() and harden pricing API 2026-10-29 14:40:58 +03:30
Resources feat(api): implement 4-quadrant rate import and pricing model 2026-10-29 07:18:52 +03:30
Widgets refactor(currency): simplify exchange rate logic to use Rial as base 2026-10-29 03:54:02 +03:30