62220186af
- New ExternalImportSource and ExternalWorkHistoryEntry models, controller and migrations - Screening fields on external profile imports - Admin and provider profile views, routes and workflow tests updated - Phase 1 validation, route inventory, gap report template and roadmap docs - Add the Google Sheets work-order parser tool (tools/google-sheets-wo-parser)
108 lines
8.0 KiB
Markdown
108 lines
8.0 KiB
Markdown
# Route And Surface Inventory
|
|
|
|
Generated for Phase 1 orientation from the current Laravel route list. Re-run `php artisan route:list` when routes change.
|
|
|
|
## Public Web
|
|
|
|
| Method | Path | Name | Handler | Surface |
|
|
| --- | --- | --- | --- | --- |
|
|
| GET | `/` | | `routes/web.php` | Home |
|
|
| GET | `/terms` | `terms` | `routes/web.php` | Terms |
|
|
| GET | `/providers` | `providers.index` | `ProviderProfileController@index` | Provider directory |
|
|
| GET | `/providers/{provider}` | `providers.show` | `ProviderProfileController@show` | Provider profile |
|
|
| GET | `/buyers` | `buyers.index` | `BuyerProfileController@index` | Buyer directory |
|
|
| GET | `/buyers/{buyer}` | `buyers.show` | `BuyerProfileController@show` | Buyer profile |
|
|
| GET | `/feed` | `feed.index` | `SocialPostController@index` | Community feed |
|
|
| GET | `/jobs` | `jobs.index` | `JobPostController@index` | Available work board |
|
|
| GET | `/jobs/{job}` | `jobs.show` | `JobPostController@show` | Job detail |
|
|
|
|
## Authentication
|
|
|
|
| Method | Path | Name | Handler |
|
|
| --- | --- | --- | --- |
|
|
| GET/POST | `/register` | `register` | `RegisteredUserController` |
|
|
| GET/POST | `/login` | `login` | `AuthenticatedSessionController` |
|
|
| POST | `/logout` | `logout` | `AuthenticatedSessionController@destroy` |
|
|
| GET/POST | `/forgot-password` | `password.request/password.email` | `PasswordResetLinkController` |
|
|
| GET/POST | `/reset-password/{token}` | `password.reset/password.store` | `NewPasswordController` |
|
|
| GET/POST | `/confirm-password` | `password.confirm` | `ConfirmablePasswordController` |
|
|
| GET/POST | `/verify-email` | `verification.notice/verification.send` | Email verification controllers |
|
|
|
|
## Authenticated App
|
|
|
|
| Method | Path | Name | Handler | Surface |
|
|
| --- | --- | --- | --- | --- |
|
|
| GET | `/dashboard` | `dashboard` | `routes/web.php` | User dashboard |
|
|
| GET/PATCH/DELETE | `/profile` | `profile.*` | `ProfileController` | Account profile |
|
|
| GET/PUT | `/provider-profile` | `providers.edit/providers.update` | `ProviderProfileController` | Provider profile editor |
|
|
| POST/PATCH | `/provider-profile/imports` | `provider-imports.*` | `ExternalProfileImportController` | Imported history |
|
|
| POST | `/provider-profile/import-sources` | `provider-import-sources.store` | `ExternalImportSourceController@store` | Private imported-history source intake |
|
|
| POST | `/provider-profile/import-sources/{source}/parse` | `provider-import-sources.parse` | `ExternalImportSourceController@parse` | Parse private source into draft |
|
|
| POST | `/provider-profile/import-sources/{source}/approve` | `provider-import-sources.approve` | `ExternalImportSourceController@approve` | Approve parsed draft into imported history |
|
|
| GET/PUT | `/buyer-profile` | `buyers.edit/buyers.update` | `BuyerProfileController` | Buyer profile editor |
|
|
| POST | `/feed` | `feed.store` | `SocialPostController@store` | Feed posting |
|
|
| POST | `/comments` | `comments.store` | `CommentController@store` | Comments |
|
|
| POST/DELETE | `/attachments` | `attachments.*` | `AttachmentController` | Attachments |
|
|
| POST | `/ratings` | `ratings.store` | `RatingController@store` | Universal ratings |
|
|
| POST/PATCH | `/moderation-reports` | `moderation-reports.*` | `ModerationReportController` | Report and triage |
|
|
| GET/PATCH/POST | `/notifications` | `notifications.*` | `NotificationController` | Notification inbox and preferences |
|
|
|
|
## Jobs, Quotes, And Work Orders
|
|
|
|
| Method | Path | Name | Handler | Surface |
|
|
| --- | --- | --- | --- | --- |
|
|
| GET/POST | `/jobs/create`, `/jobs` | `jobs.create/jobs.store` | `JobPostController` | Buyer job creation |
|
|
| POST/PATCH | `/jobs/{job}/quotes`, `/quotes/{quote}` | `quotes.*` | `QuoteController` | Provider quotes |
|
|
| POST | `/quotes/{quote}/accept` | `quotes.accept` | `QuoteController@accept` | Buyer quote acceptance |
|
|
| POST | `/quotes/{quote}/decline` | `quotes.decline` | `QuoteController@decline` | Buyer quote decline |
|
|
| GET | `/work-orders` | `work-orders.index` | `WorkOrderController@index` | Assigned work |
|
|
| GET | `/work-orders/{workOrder}` | `work-orders.show` | `WorkOrderController@show` | Work-order detail |
|
|
| GET | `/work-orders/{workOrder}/print` | `work-orders.print` | `WorkOrderController@print` | Print packet |
|
|
| PATCH | `/work-orders/{workOrder}/details` | `work-orders.details` | `WorkOrderController@updateDetails` | Checklist/evidence details |
|
|
| PATCH | `/work-orders/{workOrder}/transition` | `work-orders.transition` | `WorkOrderController@transition` | Status transition |
|
|
| POST/PATCH | `/work-orders/{workOrder}/change-requests` | `work-orders.change-requests.*` | `WorkOrderController` | Change requests |
|
|
| POST | `/work-orders/{workOrder}/contact-events` | `work-orders.contact-events.store` | `WorkOrderController@logContactEvent` | Contact/support evidence |
|
|
| POST | `/work-orders/{workOrder}/messages` | `work-order-messages.store` | `WorkOrderMessageController@store` | Messages |
|
|
| POST | `/work-orders/{workOrder}/reviews` | `reviews.store` | `ReviewController@store` | Reviews |
|
|
| POST | `/work-orders/{workOrder}/provider-tag-verification` | `provider-tag-verifications.store` | `ProviderTagVerificationController@store` | Post-work tag evidence |
|
|
| POST | `/work-orders/{workOrder}/disputes` | `disputes.store` | `DisputeController@store` | Open dispute |
|
|
| GET/POST | `/disputes/{dispute}` | `disputes.show/dispute-votes.store` | `DisputeController/DisputeVoteController` | Dispute review |
|
|
| POST/PATCH | `/reviews/{review}` | `reviews.report/reviews.respond/reviews.moderate` | `ReviewController` | Review governance |
|
|
|
|
## Admin
|
|
|
|
| Method | Path | Name | Handler | Surface |
|
|
| --- | --- | --- | --- | --- |
|
|
| GET | `/admin` | `admin.index` | `AdminController@index` | Admin overview, moderation, imported-history queue, audit logs |
|
|
|
|
## API
|
|
|
|
| Method | Path | Handler | Notes |
|
|
| --- | --- | --- | --- |
|
|
| GET | `/api/providers` | route closure | Public-ish starter API provider feed |
|
|
| GET | `/api/jobs` | route closure | Public-ish starter API job feed |
|
|
| GET | `/api/me` | route closure | Sanctum authenticated current user |
|
|
| GET | `/api/work-orders` | route closure | Sanctum authenticated work orders |
|
|
| GET | `/api/disputes` | route closure | Sanctum authenticated disputes |
|
|
| GET | `/api/v1/me` | route closure | Versioned mobile current user |
|
|
| GET | `/api/v1/jobs` | `WorkOrderActionController@availableJobs` | Requires `jobs:read` ability |
|
|
| GET | `/api/v1/work-orders` | `WorkOrderActionController@index` | Requires `work-orders:read` ability |
|
|
| GET | `/api/v1/work-orders/{workOrder}` | `WorkOrderActionController@show` | Participant boundary |
|
|
| PATCH | `/api/v1/work-orders/{workOrder}/transition` | `WorkOrderActionController@transition` | Requires `work-orders:write` ability |
|
|
| PATCH | `/api/v1/work-orders/{workOrder}/checklist` | `WorkOrderActionController@checklist` | Requires `work-orders:write` ability |
|
|
| POST | `/api/v1/work-orders/{workOrder}/messages` | `WorkOrderActionController@message` | Requires `work-orders:write` ability |
|
|
| POST | `/api/v1/work-orders/{workOrder}/evidence` | `WorkOrderActionController@evidence` | Requires `work-orders:upload` ability |
|
|
| POST | `/api/v1/work-orders/{workOrder}/contact-events` | `WorkOrderActionController@contactEvent` | Provider/admin evidence action |
|
|
| POST | `/api/v1/work-orders/{workOrder}/running-late` | `WorkOrderActionController@runningLate` | Provider/admin evidence action |
|
|
| POST | `/api/v1/work-orders/{workOrder}/schedule-updates` | `WorkOrderActionController@scheduleUpdate` | Creates change request |
|
|
| POST | `/api/v1/work-orders/{workOrder}/disputes` | `WorkOrderActionController@dispute` | Requires `disputes:write` ability |
|
|
|
|
## Route Inventory Gaps To Watch
|
|
|
|
- Starter `/api/*` routes overlap conceptually with `/api/v1/*`; decide later whether to keep, deprecate, or document them separately.
|
|
- Admin route is a single overview page, not a deep operations console.
|
|
- There is no saved-search route yet.
|
|
- There is no work-order template route yet.
|
|
- There is no real email/push delivery route or webhook yet.
|
|
- There is no health/status admin route yet; deployment health currently lives in `scripts/health-check.sh`.
|