migrate to gtea from bistbucket
This commit is contained in:
147
public/restaurant/Modules/RestaurantDelivery/routes/api.php
Normal file
147
public/restaurant/Modules/RestaurantDelivery/routes/api.php
Normal file
@@ -0,0 +1,147 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Modules\RestaurantDelivery\Http\Controllers\API\DeliveryController;
|
||||
use Modules\RestaurantDelivery\Http\Controllers\API\DeliveryZoneController;
|
||||
use Modules\RestaurantDelivery\Http\Controllers\API\RatingController;
|
||||
use Modules\RestaurantDelivery\Http\Controllers\API\RiderController;
|
||||
use Modules\RestaurantDelivery\Http\Controllers\API\TipController;
|
||||
use Modules\RestaurantDelivery\Http\Controllers\API\ZonePricingRuleController;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Restaurant Delivery API Routes
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
Route::prefix('v1/restaurant-delivery')->group(function () {
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Public Routes (No Auth Required)
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// Public tracking
|
||||
Route::get('track/{trackingCode}', [DeliveryController::class, 'publicTracking']);
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authenticated Routes
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// Protected Routes (Requires Authentication)
|
||||
Route::middleware(['auth:api'])->group(function () {
|
||||
Route::apiResource('delivery-zones', DeliveryZoneController::class);
|
||||
Route::apiResource('zone-pricing-rules', ZonePricingRuleController::class);
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Delivery Routes
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
Route::prefix('deliveries')->group(function () {
|
||||
// List and create
|
||||
Route::get('/', [DeliveryController::class, 'index']);
|
||||
Route::post('/', [DeliveryController::class, 'store']);
|
||||
|
||||
// Single delivery operations
|
||||
Route::prefix('{delivery}')->group(function () {
|
||||
Route::get('/', [DeliveryController::class, 'show']);
|
||||
Route::get('/tracking', [DeliveryController::class, 'tracking']);
|
||||
Route::get('/status-history', [DeliveryController::class, 'statusHistory']);
|
||||
|
||||
// Status updates
|
||||
Route::patch('/status', [DeliveryController::class, 'updateStatus']);
|
||||
Route::post('/assign-rider', [DeliveryController::class, 'assignRider']);
|
||||
Route::post('/cancel', [DeliveryController::class, 'cancel']);
|
||||
Route::post('/delivered', [DeliveryController::class, 'markDelivered']);
|
||||
|
||||
// Rating
|
||||
Route::get('/can-rate', [RatingController::class, 'canRate']);
|
||||
Route::post('/rate', [RatingController::class, 'store']);
|
||||
Route::post('/rate-restaurant', [RatingController::class, 'storeRestaurantRating']);
|
||||
|
||||
// Tip
|
||||
Route::get('/tip-options', [TipController::class, 'options']);
|
||||
Route::post('/tip/pre-delivery', [TipController::class, 'createPreDeliveryTip']);
|
||||
Route::post('/tip/post-delivery', [TipController::class, 'createPostDeliveryTip']);
|
||||
});
|
||||
});
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Rider Routes
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
Route::prefix('riders')->group(function () {
|
||||
// List and nearby
|
||||
Route::get('/', [RiderController::class, 'index']);
|
||||
Route::get('/nearby', [RiderController::class, 'nearby']);
|
||||
Route::post('/', [RiderController::class, 'store']);
|
||||
|
||||
// Single rider operations
|
||||
Route::prefix('{rider}')->group(function () {
|
||||
Route::get('/', [RiderController::class, 'show']);
|
||||
Route::put('/', [RiderController::class, 'update']);
|
||||
|
||||
// Location and status
|
||||
// TODO
|
||||
Route::post('/location', [RiderController::class, 'updateLocation']);
|
||||
Route::post('/toggle-online', [RiderController::class, 'toggleOnline']);
|
||||
Route::post('/fcm-token', [RiderController::class, 'updateFcmToken']);
|
||||
|
||||
// Deliveries
|
||||
Route::get('/active-deliveries', [RiderController::class, 'activeDeliveries']);
|
||||
Route::get('/delivery-history', [RiderController::class, 'deliveryHistory']);
|
||||
|
||||
// Earnings
|
||||
Route::get('/earnings', [RiderController::class, 'earnings']);
|
||||
Route::get('/earnings/history', [RiderController::class, 'earningsHistory']);
|
||||
Route::get('/payouts', [RiderController::class, 'payouts']);
|
||||
|
||||
// Ratings
|
||||
Route::get('/ratings', [RiderController::class, 'ratings']);
|
||||
|
||||
// Admin actions
|
||||
Route::post('/verify', [RiderController::class, 'verify']);
|
||||
Route::post('/suspend', [RiderController::class, 'suspend']);
|
||||
Route::post('/reactivate', [RiderController::class, 'reactivate']);
|
||||
});
|
||||
});
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Rating Routes
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
Route::prefix('ratings')->group(function () {
|
||||
Route::get('/', [RatingController::class, 'index']);
|
||||
|
||||
Route::prefix('{rating}')->group(function () {
|
||||
Route::post('/response', [RatingController::class, 'addRiderResponse']);
|
||||
Route::post('/helpful', [RatingController::class, 'markHelpful']);
|
||||
Route::post('/not-helpful', [RatingController::class, 'markNotHelpful']);
|
||||
Route::post('/approve', [RatingController::class, 'approve']);
|
||||
Route::post('/reject', [RatingController::class, 'reject']);
|
||||
Route::post('/feature', [RatingController::class, 'feature']);
|
||||
});
|
||||
});
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Tip Routes
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
Route::prefix('tips')->group(function () {
|
||||
Route::post('/calculate', [TipController::class, 'calculate']);
|
||||
|
||||
Route::prefix('{tip}')->group(function () {
|
||||
Route::get('/', [TipController::class, 'show']);
|
||||
Route::post('/process-payment', [TipController::class, 'processPayment']);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user