This commit is contained in:
Codex
2026-07-10 09:14:42 -05:00
parent e27fcc6c19
commit 63820994f8
55 changed files with 2195 additions and 86 deletions
+31
View File
@@ -0,0 +1,31 @@
<?php
use App\Models\JobPost;
use App\Models\ProviderProfile;
use App\Models\WorkOrder;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::get('/providers', function () {
return ProviderProfile::with('user:id,name')->latest()->paginate(20);
});
Route::get('/jobs', function () {
return JobPost::with('buyer:id,name')->latest()->paginate(20);
});
Route::middleware('auth:sanctum')->group(function () {
Route::get('/me', function (Request $request) {
return $request->user()->load('roles', 'providerProfile', 'buyerProfile');
});
Route::get('/work-orders', function (Request $request) {
return WorkOrder::with('jobPost:id,title,location', 'buyer:id,name', 'provider:id,name')
->where(fn ($query) => $query
->where('buyer_id', $request->user()->id)
->orWhere('provider_id', $request->user()->id)
)
->latest()
->paginate(20);
});
});
+38
View File
@@ -1,6 +1,15 @@
<?php
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\BuyerProfileController;
use App\Http\Controllers\DisputeController;
use App\Http\Controllers\ExternalProfileImportController;
use App\Http\Controllers\JobPostController;
use App\Http\Controllers\ProviderProfileController;
use App\Http\Controllers\QuoteController;
use App\Http\Controllers\ReviewController;
use App\Http\Controllers\SocialPostController;
use App\Http\Controllers\WorkOrderController;
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
@@ -15,6 +24,35 @@ Route::middleware('auth')->group(function () {
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
Route::get('/provider-profile', [ProviderProfileController::class, 'edit'])->name('providers.edit');
Route::put('/provider-profile', [ProviderProfileController::class, 'update'])->name('providers.update');
Route::post('/provider-profile/imports', [ExternalProfileImportController::class, 'store'])->name('provider-imports.store');
Route::get('/buyer-profile', [BuyerProfileController::class, 'edit'])->name('buyers.edit');
Route::put('/buyer-profile', [BuyerProfileController::class, 'update'])->name('buyers.update');
Route::post('/feed', [SocialPostController::class, 'store'])->name('feed.store');
Route::get('/jobs/create', [JobPostController::class, 'create'])->name('jobs.create');
Route::post('/jobs', [JobPostController::class, 'store'])->name('jobs.store');
Route::post('/jobs/{job}/quotes', [QuoteController::class, 'store'])->name('quotes.store');
Route::post('/quotes/{quote}/accept', [QuoteController::class, 'accept'])->name('quotes.accept');
Route::get('/work-orders', [WorkOrderController::class, 'index'])->name('work-orders.index');
Route::get('/work-orders/{workOrder}', [WorkOrderController::class, 'show'])->name('work-orders.show');
Route::patch('/work-orders/{workOrder}/transition', [WorkOrderController::class, 'transition'])->name('work-orders.transition');
Route::post('/work-orders/{workOrder}/reviews', [ReviewController::class, 'store'])->name('reviews.store');
Route::post('/work-orders/{workOrder}/disputes', [DisputeController::class, 'store'])->name('disputes.store');
Route::get('/disputes/{dispute}', [DisputeController::class, 'show'])->name('disputes.show');
});
Route::get('/providers', [ProviderProfileController::class, 'index'])->name('providers.index');
Route::get('/providers/{provider}', [ProviderProfileController::class, 'show'])->name('providers.show');
Route::get('/buyers', [BuyerProfileController::class, 'index'])->name('buyers.index');
Route::get('/buyers/{buyer}', [BuyerProfileController::class, 'show'])->name('buyers.show');
Route::get('/feed', [SocialPostController::class, 'index'])->name('feed.index');
Route::get('/jobs', [JobPostController::class, 'index'])->name('jobs.index');
Route::get('/jobs/{job}', [JobPostController::class, 'show'])->name('jobs.show');
require __DIR__.'/auth.php';