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.
Refactor the Filament admin panel structure by adjusting navigation sorting
across various resources to improve usability and logical grouping.
- Reorder navigation items in 'مالی' (Finance), 'تنظیمات' (Settings),
and 'عملیات' (Operations) groups.
- Hide `PriceTestPage` from the main navigation sidebar.
- Adjust sidebar width and max content width in `AdminPanelProvider`.
- Add custom CSS asset for Filament styling.