Refactor the pricing calculation service and shipping rate import logic to improve consistency and reliability. This includes updating direction naming conventions, enhancing model casting, and adding comprehensive test suites. - Update `ShippingRatesImport` to use 'outbound' and 'inbound' instead of 'export' and 'import' - Refactor `PriceCalculatorService` to use a more modular calculation structure - Update `ShippingRate` model to use explicit property casting for zones - Add `HasFactory` trait to `Country` and `ShippingRate` models - Add new database factories for `Country` and `ShippingRate` - Implement new feature tests for API endpoints and service logic - Add new service tests for `PriceCalculatorService`
25 lines
1.1 KiB
PHP
25 lines
1.1 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\Api\DiscountCodeController;
|
|
use App\Http\Controllers\Api\PricingController;
|
|
use App\Http\Controllers\Api\TrackController;
|
|
use App\Http\Controllers\Api\WalletController;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Middleware\ApiKeyMiddleware;
|
|
|
|
Route::middleware([ApiKeyMiddleware::class])->prefix('v1')->group(function () {
|
|
Route::get('/track/{awb_no}', [TrackController::class, 'show']);
|
|
|
|
Route::get('/wallet/balance', [WalletController::class, 'balance']);
|
|
Route::post('/wallet/recharge', [WalletController::class, 'recharge']);
|
|
Route::get('/wallet/transactions', [WalletController::class, 'transactions']);
|
|
Route::post('/wallet/admin-recharge', [WalletController::class, 'adminRecharge']);
|
|
});
|
|
|
|
Route::post('/v1/calculate', [PricingController::class, 'calculate']);
|
|
|
|
Route::get('/v1/discount-codes', [DiscountCodeController::class, 'index']);
|
|
Route::post('/v1/discount-codes/validate', [DiscountCodeController::class, 'validate']);
|
|
Route::post('/calculate', [PricingController::class, 'calculate']);
|