ultimatepos/Modules/ProfessionalProject/Routes/web.php

73 lines
4.2 KiB
PHP

<?php
use Modules\ProfessionalProject\Http\Controllers\GanttApiController;
use Modules\ProfessionalProject\Http\Controllers\GanttController;
use Modules\ProfessionalProject\Http\Controllers\IntegrationController;
use Modules\ProfessionalProject\Http\Controllers\InstallController;
use Modules\ProfessionalProject\Http\Controllers\MilestoneController;
use Modules\ProfessionalProject\Http\Controllers\ProjectController;
use Modules\ProfessionalProject\Http\Controllers\TaskController;
use Modules\ProfessionalProject\Http\Controllers\TaskStatusController;
Route::middleware('web', 'authh', 'SetSessionData', 'auth', 'language', 'timezone', 'AdminSidebarMenu')
->prefix('professional-project')
->group(function () {
// Install
Route::get('/install', [InstallController::class, 'index']);
Route::post('/install', [InstallController::class, 'install']);
Route::get('/install/uninstall', [InstallController::class, 'uninstall']);
Route::get('/install/update', [InstallController::class, 'update']);
// Projects
Route::get('/projects', [ProjectController::class, 'index']);
Route::get('/projects/create', [ProjectController::class, 'create']);
Route::post('/projects', [ProjectController::class, 'store']);
Route::get('/projects/{id}', [ProjectController::class, 'show']);
Route::get('/projects/{id}/edit', [ProjectController::class, 'edit']);
Route::put('/projects/{id}', [ProjectController::class, 'update']);
Route::delete('/projects/{id}', [ProjectController::class, 'destroy']);
Route::put('/projects/{id}/status', [ProjectController::class, 'postStatus']);
Route::put('/projects/{id}/archive', [ProjectController::class, 'archive']);
// Tasks
Route::get('/tasks', [TaskController::class, 'index']);
Route::get('/tasks/create', [TaskController::class, 'create']);
Route::post('/tasks', [TaskController::class, 'store']);
Route::get('/tasks/{id}/edit', [TaskController::class, 'edit']);
Route::put('/tasks/{id}', [TaskController::class, 'update']);
Route::delete('/tasks/{id}', [TaskController::class, 'destroy']);
Route::post('/tasks/kanban-position', [TaskController::class, 'updateKanbanPosition']);
Route::post('/tasks/dependency', [TaskController::class, 'storeDependency']);
Route::delete('/tasks/dependency/{id}', [TaskController::class, 'destroyDependency']);
Route::get('/tasks/milestones/{project_id}', [TaskController::class, 'getMilestonesByProject']);
// Milestones
Route::get('/projects/{project_id}/milestones', [MilestoneController::class, 'index']);
Route::post('/milestones', [MilestoneController::class, 'store']);
Route::put('/milestones/{id}', [MilestoneController::class, 'update']);
Route::delete('/milestones/{id}', [MilestoneController::class, 'destroy']);
// Gantt
Route::get('/projects/{project_id}/gantt', [GanttController::class, 'index']);
// Gantt API (session auth)
Route::post('/gantt/task', [GanttApiController::class, 'storeTask']);
Route::put('/gantt/task/{id}', [GanttApiController::class, 'updateTask']);
Route::delete('/gantt/task/{id}', [GanttApiController::class, 'destroyTask']);
Route::post('/gantt/link', [GanttApiController::class, 'storeLink']);
Route::put('/gantt/link/{id}', [GanttApiController::class, 'updateLink']);
Route::delete('/gantt/link/{id}', [GanttApiController::class, 'destroyLink']);
// Task statuses
Route::get('/task-statuses', [TaskStatusController::class, 'index']);
Route::post('/task-statuses', [TaskStatusController::class, 'store']);
Route::put('/task-statuses/{id}', [TaskStatusController::class, 'update']);
Route::delete('/task-statuses/{id}', [TaskStatusController::class, 'destroy']);
// Integrations
Route::post('/integrations/essentials/todo/{task_id}', [IntegrationController::class, 'createEssentialsTodo']);
Route::post('/integrations/essentials/reminder/{task_id}', [IntegrationController::class, 'createEssentialsReminder']);
Route::post('/integrations/crm/follow-up/{task_id}', [IntegrationController::class, 'createCrmFollowUp']);
});