43 lines
2.6 KiB
PHP
43 lines
2.6 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use Modules\BiddingManagement\Http\Controllers\BidAwardController;
|
|
use Modules\BiddingManagement\Http\Controllers\BidInvitationController;
|
|
use Modules\BiddingManagement\Http\Controllers\BidPackageController;
|
|
use Modules\BiddingManagement\Http\Controllers\BidScoreController;
|
|
use Modules\BiddingManagement\Http\Controllers\BidSubmissionController;
|
|
|
|
Route::middleware(['web', 'auth', 'permission:bidding.access'])->group(function () {
|
|
|
|
// --- Bid Packages (PM) ---
|
|
Route::resource('bids', BidPackageController::class)->parameters(['bids' => 'bid']);
|
|
|
|
Route::post('bids/{bid}/publish', [BidPackageController::class, 'publish'])->name('bids.publish');
|
|
Route::post('bids/{bid}/evaluate', [BidPackageController::class, 'startEvaluation'])->name('bids.evaluate');
|
|
Route::post('bids/{bid}/cancel', [BidPackageController::class, 'cancel'])->name('bids.cancel');
|
|
|
|
// --- Invitations (PM manages) ---
|
|
Route::post('bids/{bid}/invitations', [BidInvitationController::class, 'store'])->name('bid-invitations.store');
|
|
Route::delete('bid-invitations/{invitation}', [BidInvitationController::class, 'destroy'])->name('bid-invitations.destroy');
|
|
|
|
// --- Invitation responses (Contractor) ---
|
|
Route::post('bid-invitations/{invitation}/accept', [BidInvitationController::class, 'accept'])->name('bid-invitations.accept');
|
|
Route::post('bid-invitations/{invitation}/decline', [BidInvitationController::class, 'decline'])->name('bid-invitations.decline');
|
|
|
|
// --- Submissions (Contractor submits, PM reviews) ---
|
|
Route::get('bid-invitations/{invitation}/submit', [BidSubmissionController::class, 'create'])->name('bid-submissions.create');
|
|
Route::post('bid-invitations/{invitation}/submit', [BidSubmissionController::class, 'store'])->name('bid-submissions.store');
|
|
Route::get('bid-submissions/{submission}', [BidSubmissionController::class, 'show'])->name('bid-submissions.show');
|
|
Route::post('bid-submissions/{submission}/shortlist', [BidSubmissionController::class, 'shortlist'])->name('bid-submissions.shortlist');
|
|
Route::post('bid-submissions/{submission}/reject', [BidSubmissionController::class, 'reject'])->name('bid-submissions.reject');
|
|
|
|
// --- Scoring (Evaluator) ---
|
|
Route::post('bid-submissions/{submission}/scores', [BidScoreController::class, 'store'])->name('bid-scores.store');
|
|
|
|
// --- Award (PM) ---
|
|
Route::post('bids/{bid}/award', [BidAwardController::class, 'store'])->name('bids.award');
|
|
|
|
// --- Contractor: My Bids dashboard ---
|
|
Route::get('my-bids', [BidSubmissionController::class, 'myBids'])->name('bids.my');
|
|
});
|