Add HL3D branding, Etsy Live/Draft paging and Projects lifecycle
Deploy HickLab3D Dashboard / Deploy to production (push) Failing after 23s
Deploy HickLab3D Dashboard / Deploy to production (push) Failing after 23s
Replace the old touchmark/PNG identity with the supplied lockup and monogram, segmented role-aware navigation, Live/Draft listing filters with generation-based cache invalidation, and admin Projects covering immutable file revisions, listing live pointers, and exact-decimal filament/packaging/shipping costing. Additive schema only; no Etsy publication. Isolated clone tests: 301 tests, 1162 assertions.
This commit is contained in:
@@ -10,6 +10,12 @@ use App\Http\Controllers\IntegrationSettingsController;
|
||||
use App\Http\Controllers\NotificationController;
|
||||
use App\Http\Controllers\Parcel2GoConnectionController;
|
||||
use App\Http\Controllers\PrinterController;
|
||||
use App\Http\Controllers\ProjectController;
|
||||
use App\Http\Controllers\ProjectCostSnapshotController;
|
||||
use App\Http\Controllers\ProjectFileController;
|
||||
use App\Http\Controllers\ProjectListingLinkController;
|
||||
use App\Http\Controllers\ProjectReleaseController;
|
||||
use App\Http\Controllers\ProjectRevisionController;
|
||||
use App\Http\Controllers\ScheduleSettingsController;
|
||||
use App\Http\Controllers\ShippingController;
|
||||
use App\Http\Controllers\UserController;
|
||||
@@ -49,6 +55,21 @@ Route::middleware(['auth', EnsureAccountActive::class])->group(function (): void
|
||||
Route::get('/dryer/status', [DryerController::class, 'status'])->name('dryer.status');
|
||||
Route::post('/dryer/control', [DryerController::class, 'control'])->name('dryer.control');
|
||||
Route::post('/dryer/faults/acknowledge', [DryerController::class, 'acknowledge'])->name('dryer.acknowledge');
|
||||
Route::get('/projects', [ProjectController::class, 'index'])->name('projects.index');
|
||||
Route::get('/projects/create', [ProjectController::class, 'create'])->name('projects.create');
|
||||
Route::post('/projects', [ProjectController::class, 'store'])->name('projects.store');
|
||||
Route::get('/projects/{project}', [ProjectController::class, 'show'])->name('projects.show');
|
||||
Route::get('/projects/{project}/edit', [ProjectController::class, 'edit'])->name('projects.edit');
|
||||
Route::patch('/projects/{project}', [ProjectController::class, 'update'])->name('projects.update');
|
||||
Route::post('/projects/{project}/archive', [ProjectController::class, 'archive'])->name('projects.archive');
|
||||
Route::post('/projects/{project}/revisions', [ProjectRevisionController::class, 'store'])->name('projects.revisions.store');
|
||||
Route::post('/projects/{project}/revisions/{revision}/approve', [ProjectRevisionController::class, 'approve'])->name('projects.revisions.approve');
|
||||
Route::get('/projects/{project}/files/{file}/download', [ProjectFileController::class, 'download'])->name('projects.files.download');
|
||||
Route::post('/projects/{project}/listings', [ProjectListingLinkController::class, 'store'])->name('projects.listings.store');
|
||||
Route::delete('/projects/{project}/listings/{listingLink}', [ProjectListingLinkController::class, 'destroy'])->name('projects.listings.destroy');
|
||||
Route::post('/projects/{project}/cost-snapshots', [ProjectCostSnapshotController::class, 'store'])->name('projects.cost-snapshots.store');
|
||||
Route::post('/projects/{project}/listings/{listingLink}/release', [ProjectReleaseController::class, 'store'])->name('projects.listings.release');
|
||||
Route::post('/projects/{project}/listings/{listingLink}/revert', [ProjectReleaseController::class, 'revert'])->name('projects.listings.revert');
|
||||
Route::get('/users', [UserController::class, 'index'])->name('users.index');
|
||||
Route::post('/users', [UserController::class, 'store'])->name('users.store');
|
||||
Route::patch('/users/{user}', [UserController::class, 'update'])->name('users.update');
|
||||
|
||||
Reference in New Issue
Block a user