From 7d390872c34d426a90d2bb7f62542410e64fb051 Mon Sep 17 00:00:00 2001 From: javier Date: Fri, 19 Jun 2026 16:54:09 +0200 Subject: [PATCH] refactor(livewire): organizar componentes y vistas por dominio en subnamespaces MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - app/Livewire: 34 componentes agrupados en Issues/, Projects/, Phases/, Companies/, Users/, Admin/, Inspections/, Layers/, Media/, Common/ (Client/, Reports/, Forms/, Actions/ ya estaban). Namespaces actualizados. - resources/views/livewire: vistas sueltas movidas a subcarpetas espejo (companies/, users/, phases/, roles/, inspections/, media/, common/); render() actualizado. - Referencias actualizadas sin romper nada: rutas (FQN, nombres de ruta intactos), tags /@livewire() a alias con punto, y use de los tests. - No tocado: Volt de Breeze (auth/profile/navigation), y el portal cliente (user-nav/client-projects) que ya tenía referencias inconsistentes. Verificado: 69 rutas OK, vistas compilan, suite 69 passing (solo 2 pre-existentes sqlite). autoload regenerado con --ignore-platform-reqs (PHP 8.2). Co-Authored-By: Claude Opus 4.8 (1M context) --- app/Livewire/{ => Admin}/RoleForm.php | 2 +- .../{ => Admin}/RolePermissionManager.php | 4 +- app/Livewire/{ => Admin}/RoleTable.php | 2 +- app/Livewire/{ => Admin}/RoleView.php | 2 +- .../{ => Common}/LanguageSwitcher.php | 4 +- .../{ => Common}/NotificationBell.php | 4 +- app/Livewire/{ => Companies}/CompanyForm.php | 4 +- .../{ => Companies}/CompanyManagement.php | 4 +- app/Livewire/{ => Companies}/CompanyTable.php | 2 +- app/Livewire/{ => Companies}/CompanyView.php | 4 +- .../{ => Inspections}/TemplateManager.php | 4 +- .../{ => Issues}/IssueChecklistManager.php | 2 +- app/Livewire/{ => Issues}/IssueDetail.php | 2 +- app/Livewire/{ => Issues}/IssueForm.php | 2 +- app/Livewire/{ => Issues}/IssueManager.php | 2 +- app/Livewire/{ => Issues}/IssueTable.php | 2 +- app/Livewire/{ => Layers}/LayerManager.php | 2 +- app/Livewire/{ => Media}/MediaManager.php | 4 +- app/Livewire/{ => Phases}/PhaseGantt.php | 2 +- app/Livewire/{ => Phases}/PhaseList.php | 4 +- app/Livewire/{ => Phases}/PhaseProgress.php | 4 +- app/Livewire/{ => Phases}/PhaseTable.php | 2 +- .../{ => Projects}/ProjectCompanies.php | 4 +- .../{ => Projects}/ProjectCompaniesTable.php | 2 +- .../{ => Projects}/ProjectDashboard.php | 2 +- app/Livewire/{ => Projects}/ProjectForm.php | 2 +- app/Livewire/{ => Projects}/ProjectList.php | 2 +- app/Livewire/{ => Projects}/ProjectMap.php | 2 +- app/Livewire/{ => Projects}/ProjectTable.php | 2 +- app/Livewire/{ => Projects}/ProjectUsers.php | 4 +- .../{ => Projects}/ProjectUsersTable.php | 2 +- app/Livewire/{ => Users}/AdminUsers.php | 4 +- app/Livewire/{ => Users}/UserForm.php | 4 +- app/Livewire/{ => Users}/UserTable.php | 2 +- app/Livewire/{ => Users}/UserView.php | 4 +- resources/views/admin/roles.blade.php | 2 +- resources/views/admin/users.blade.php | 2 +- resources/views/layouts/client.blade.php | 2 +- resources/views/layouts/guest.blade.php | 2 +- .../{ => common}/language-switcher.blade.php | 0 .../{ => common}/notification-bell.blade.php | 0 .../{ => companies}/company-form.blade.php | 0 .../company-management.blade.php | 2 +- .../{ => companies}/company-view.blade.php | 0 .../template-manager.blade.php | 0 .../livewire/issues/issue-manager.blade.php | 2 +- .../livewire/layout/navigation.blade.php | 6 +- .../{ => media}/media-manager.blade.php | 0 .../{ => phases}/phase-list.blade.php | 2 +- .../{ => phases}/phase-progress.blade.php | 0 .../project-companies.blade.php | 2 +- .../livewire/projects/project-form.blade.php | 6 +- .../projects/project-map-editor-tab.blade.php | 2 +- .../livewire/projects/project-map.blade.php | 4 +- .../{ => projects}/project-users.blade.php | 2 +- .../role-permission-manager.blade.php | 0 .../{ => users}/admin-users.blade.php | 0 .../livewire/{ => users}/user-form.blade.php | 0 .../livewire/{ => users}/user-view.blade.php | 84 +++++++++++++++++++ resources/views/projects/index.blade.php | 2 +- resources/views/projects/map.blade.php | 2 +- resources/views/projects/media.blade.php | 2 +- routes/web.php | 48 +++++------ tests/Feature/IssuesEnhancementsTest.php | 6 +- tests/Feature/IssuesTablePageTest.php | 4 +- tests/Feature/PhaseManagementTest.php | 4 +- tests/Feature/ProjectAssignmentsTest.php | 8 +- tests/Feature/UserLocaleTest.php | 2 +- 68 files changed, 191 insertions(+), 107 deletions(-) rename app/Livewire/{ => Admin}/RoleForm.php (98%) rename app/Livewire/{ => Admin}/RolePermissionManager.php (97%) rename app/Livewire/{ => Admin}/RoleTable.php (99%) rename app/Livewire/{ => Admin}/RoleView.php (99%) rename app/Livewire/{ => Common}/LanguageSwitcher.php (91%) rename app/Livewire/{ => Common}/NotificationBell.php (90%) rename app/Livewire/{ => Companies}/CompanyForm.php (97%) rename app/Livewire/{ => Companies}/CompanyManagement.php (95%) rename app/Livewire/{ => Companies}/CompanyTable.php (99%) rename app/Livewire/{ => Companies}/CompanyView.php (98%) rename app/Livewire/{ => Inspections}/TemplateManager.php (99%) rename app/Livewire/{ => Issues}/IssueChecklistManager.php (98%) rename app/Livewire/{ => Issues}/IssueDetail.php (99%) rename app/Livewire/{ => Issues}/IssueForm.php (99%) rename app/Livewire/{ => Issues}/IssueManager.php (98%) rename app/Livewire/{ => Issues}/IssueTable.php (99%) rename app/Livewire/{ => Layers}/LayerManager.php (99%) rename app/Livewire/{ => Media}/MediaManager.php (98%) rename app/Livewire/{ => Phases}/PhaseGantt.php (99%) rename app/Livewire/{ => Phases}/PhaseList.php (98%) rename app/Livewire/{ => Phases}/PhaseProgress.php (91%) rename app/Livewire/{ => Phases}/PhaseTable.php (99%) rename app/Livewire/{ => Projects}/ProjectCompanies.php (94%) rename app/Livewire/{ => Projects}/ProjectCompaniesTable.php (99%) rename app/Livewire/{ => Projects}/ProjectDashboard.php (99%) rename app/Livewire/{ => Projects}/ProjectForm.php (99%) rename app/Livewire/{ => Projects}/ProjectList.php (96%) rename app/Livewire/{ => Projects}/ProjectMap.php (99%) rename app/Livewire/{ => Projects}/ProjectTable.php (99%) rename app/Livewire/{ => Projects}/ProjectUsers.php (94%) rename app/Livewire/{ => Projects}/ProjectUsersTable.php (99%) rename app/Livewire/{ => Users}/AdminUsers.php (93%) rename app/Livewire/{ => Users}/UserForm.php (98%) rename app/Livewire/{ => Users}/UserTable.php (99%) rename app/Livewire/{ => Users}/UserView.php (98%) rename resources/views/livewire/{ => common}/language-switcher.blade.php (100%) rename resources/views/livewire/{ => common}/notification-bell.blade.php (100%) rename resources/views/livewire/{ => companies}/company-form.blade.php (100%) rename resources/views/livewire/{ => companies}/company-management.blade.php (94%) rename resources/views/livewire/{ => companies}/company-view.blade.php (100%) rename resources/views/livewire/{ => inspections}/template-manager.blade.php (100%) rename resources/views/livewire/{ => media}/media-manager.blade.php (100%) rename resources/views/livewire/{ => phases}/phase-list.blade.php (98%) rename resources/views/livewire/{ => phases}/phase-progress.blade.php (100%) rename resources/views/livewire/{ => projects}/project-companies.blade.php (91%) rename resources/views/livewire/{ => projects}/project-users.blade.php (92%) rename resources/views/livewire/{ => roles}/role-permission-manager.blade.php (100%) rename resources/views/livewire/{ => users}/admin-users.blade.php (100%) rename resources/views/livewire/{ => users}/user-form.blade.php (100%) rename resources/views/livewire/{ => users}/user-view.blade.php (88%) diff --git a/app/Livewire/RoleForm.php b/app/Livewire/Admin/RoleForm.php similarity index 98% rename from app/Livewire/RoleForm.php rename to app/Livewire/Admin/RoleForm.php index 3a48dc3..43c5649 100644 --- a/app/Livewire/RoleForm.php +++ b/app/Livewire/Admin/RoleForm.php @@ -1,6 +1,6 @@ Role::with('permissions')->orderBy('name')->get(), 'permissions' => Permission::orderBy('name')->get(), ]); diff --git a/app/Livewire/RoleTable.php b/app/Livewire/Admin/RoleTable.php similarity index 99% rename from app/Livewire/RoleTable.php rename to app/Livewire/Admin/RoleTable.php index f2f595d..7e1e443 100644 --- a/app/Livewire/RoleTable.php +++ b/app/Livewire/Admin/RoleTable.php @@ -1,6 +1,6 @@ class_basename($this->entity) . ': ' . ($this->entity->name ?? $this->entity->id), 'images' => $this->mediaItems->filter(fn($m) => $m->is_image), 'documents' => $this->mediaItems->filter(fn($m) => !$m->is_image), diff --git a/app/Livewire/PhaseGantt.php b/app/Livewire/Phases/PhaseGantt.php similarity index 99% rename from app/Livewire/PhaseGantt.php rename to app/Livewire/Phases/PhaseGantt.php index 2862b03..5580d60 100644 --- a/app/Livewire/PhaseGantt.php +++ b/app/Livewire/Phases/PhaseGantt.php @@ -1,5 +1,5 @@ ProjectCompaniesTable::ROLES, ]); } diff --git a/app/Livewire/ProjectCompaniesTable.php b/app/Livewire/Projects/ProjectCompaniesTable.php similarity index 99% rename from app/Livewire/ProjectCompaniesTable.php rename to app/Livewire/Projects/ProjectCompaniesTable.php index bf1ad8d..716320f 100644 --- a/app/Livewire/ProjectCompaniesTable.php +++ b/app/Livewire/Projects/ProjectCompaniesTable.php @@ -1,6 +1,6 @@ ProjectUsersTable::ROLES, ]); } diff --git a/app/Livewire/ProjectUsersTable.php b/app/Livewire/Projects/ProjectUsersTable.php similarity index 99% rename from app/Livewire/ProjectUsersTable.php rename to app/Livewire/Projects/ProjectUsersTable.php index c7feb36..37f6def 100644 --- a/app/Livewire/ProjectUsersTable.php +++ b/app/Livewire/Projects/ProjectUsersTable.php @@ -1,6 +1,6 @@ $grouped, 'directPerms' => $this->user->getDirectPermissions()->pluck('name')->toArray(), 'rolePerms' => $this->user->getPermissionsViaRoles()->pluck('name')->toArray(), diff --git a/resources/views/admin/roles.blade.php b/resources/views/admin/roles.blade.php index 19fe7cc..6b520c6 100644 --- a/resources/views/admin/roles.blade.php +++ b/resources/views/admin/roles.blade.php @@ -18,7 +18,7 @@
- +
diff --git a/resources/views/admin/users.blade.php b/resources/views/admin/users.blade.php index c9ac290..9301597 100644 --- a/resources/views/admin/users.blade.php +++ b/resources/views/admin/users.blade.php @@ -20,7 +20,7 @@
- +
diff --git a/resources/views/layouts/client.blade.php b/resources/views/layouts/client.blade.php index c2f9be2..f1e2dba 100644 --- a/resources/views/layouts/client.blade.php +++ b/resources/views/layouts/client.blade.php @@ -84,7 +84,7 @@ diff --git a/resources/views/layouts/guest.blade.php b/resources/views/layouts/guest.blade.php index ff92e42..68d23bc 100644 --- a/resources/views/layouts/guest.blade.php +++ b/resources/views/layouts/guest.blade.php @@ -17,7 +17,7 @@ diff --git a/resources/views/livewire/company-view.blade.php b/resources/views/livewire/companies/company-view.blade.php similarity index 100% rename from resources/views/livewire/company-view.blade.php rename to resources/views/livewire/companies/company-view.blade.php diff --git a/resources/views/livewire/template-manager.blade.php b/resources/views/livewire/inspections/template-manager.blade.php similarity index 100% rename from resources/views/livewire/template-manager.blade.php rename to resources/views/livewire/inspections/template-manager.blade.php diff --git a/resources/views/livewire/issues/issue-manager.blade.php b/resources/views/livewire/issues/issue-manager.blade.php index 2897668..fae76df 100644 --- a/resources/views/livewire/issues/issue-manager.blade.php +++ b/resources/views/livewire/issues/issue-manager.blade.php @@ -60,5 +60,5 @@ {{-- ================================================================ ISSUES TABLE (Rappasoft) ================================================================ --}} - + diff --git a/resources/views/livewire/layout/navigation.blade.php b/resources/views/livewire/layout/navigation.blade.php index 3071626..ff34331 100644 --- a/resources/views/livewire/layout/navigation.blade.php +++ b/resources/views/livewire/layout/navigation.blade.php @@ -60,12 +60,12 @@ new class extends Component @@ -127,7 +127,7 @@ new class extends Component
- @livewire('language-switcher') + @livewire('common.language-switcher')
{{ __('Profile') }} diff --git a/resources/views/livewire/media-manager.blade.php b/resources/views/livewire/media/media-manager.blade.php similarity index 100% rename from resources/views/livewire/media-manager.blade.php rename to resources/views/livewire/media/media-manager.blade.php diff --git a/resources/views/livewire/phase-list.blade.php b/resources/views/livewire/phases/phase-list.blade.php similarity index 98% rename from resources/views/livewire/phase-list.blade.php rename to resources/views/livewire/phases/phase-list.blade.php index cff490b..76e0c4c 100644 --- a/resources/views/livewire/phase-list.blade.php +++ b/resources/views/livewire/phases/phase-list.blade.php @@ -12,7 +12,7 @@
{{-- Tabla Rappasoft de fases --}} - + {{-- ================================================================ MODAL crear / editar fase diff --git a/resources/views/livewire/phase-progress.blade.php b/resources/views/livewire/phases/phase-progress.blade.php similarity index 100% rename from resources/views/livewire/phase-progress.blade.php rename to resources/views/livewire/phases/phase-progress.blade.php diff --git a/resources/views/livewire/project-companies.blade.php b/resources/views/livewire/projects/project-companies.blade.php similarity index 91% rename from resources/views/livewire/project-companies.blade.php rename to resources/views/livewire/projects/project-companies.blade.php index 45fe938..131a3bf 100644 --- a/resources/views/livewire/project-companies.blade.php +++ b/resources/views/livewire/projects/project-companies.blade.php @@ -25,5 +25,5 @@ @endcan {{-- Tabla Rappasoft de empresas asignadas --}} - + diff --git a/resources/views/livewire/projects/project-form.blade.php b/resources/views/livewire/projects/project-form.blade.php index 3c06c25..7bba82b 100644 --- a/resources/views/livewire/projects/project-form.blade.php +++ b/resources/views/livewire/projects/project-form.blade.php @@ -21,13 +21,13 @@ @include('livewire.projects.partials.project-data-form')
- +
- +
- +
@else diff --git a/resources/views/livewire/projects/project-map-editor-tab.blade.php b/resources/views/livewire/projects/project-map-editor-tab.blade.php index 7a7eb2c..aaa21bd 100644 --- a/resources/views/livewire/projects/project-map-editor-tab.blade.php +++ b/resources/views/livewire/projects/project-map-editor-tab.blade.php @@ -30,7 +30,7 @@ 📎 {{ __("Files of element") }}
- @livewire('media-manager', [ + @livewire('media.media-manager', [ 'mediableType' => 'App\\Models\\Feature', 'mediableId' => $selectedFeature->id, ], key('media-feature-' . $selectedFeature->id)) diff --git a/resources/views/livewire/projects/project-map.blade.php b/resources/views/livewire/projects/project-map.blade.php index 57e33b9..8e74be5 100644 --- a/resources/views/livewire/projects/project-map.blade.php +++ b/resources/views/livewire/projects/project-map.blade.php @@ -181,7 +181,7 @@ {{ __('Files of element') }}
- @livewire('media-manager', [ + @livewire('media.media-manager', [ 'mediableType' => 'App\\Models\\Feature', 'mediableId' => $selectedFeature->id, ], key('media-feature-' . $selectedFeature->id)) @@ -351,7 +351,7 @@ @endif @elseif($activeTab === 'issues') - @livewire('issue-manager', ['project' => $project], key('issues-tab-' . $project->id)) + @livewire('issues.issue-manager', ['project' => $project], key('issues-tab-' . $project->id)) @endif
diff --git a/resources/views/livewire/project-users.blade.php b/resources/views/livewire/projects/project-users.blade.php similarity index 92% rename from resources/views/livewire/project-users.blade.php rename to resources/views/livewire/projects/project-users.blade.php index 41b1c33..70ef8d2 100644 --- a/resources/views/livewire/project-users.blade.php +++ b/resources/views/livewire/projects/project-users.blade.php @@ -25,5 +25,5 @@ @endcan {{-- Tabla Rappasoft de usuarios asignados --}} - +
diff --git a/resources/views/livewire/role-permission-manager.blade.php b/resources/views/livewire/roles/role-permission-manager.blade.php similarity index 100% rename from resources/views/livewire/role-permission-manager.blade.php rename to resources/views/livewire/roles/role-permission-manager.blade.php diff --git a/resources/views/livewire/admin-users.blade.php b/resources/views/livewire/users/admin-users.blade.php similarity index 100% rename from resources/views/livewire/admin-users.blade.php rename to resources/views/livewire/users/admin-users.blade.php diff --git a/resources/views/livewire/user-form.blade.php b/resources/views/livewire/users/user-form.blade.php similarity index 100% rename from resources/views/livewire/user-form.blade.php rename to resources/views/livewire/users/user-form.blade.php diff --git a/resources/views/livewire/user-view.blade.php b/resources/views/livewire/users/user-view.blade.php similarity index 88% rename from resources/views/livewire/user-view.blade.php rename to resources/views/livewire/users/user-view.blade.php index 6145e31..aac97ec 100644 --- a/resources/views/livewire/user-view.blade.php +++ b/resources/views/livewire/users/user-view.blade.php @@ -320,6 +320,90 @@ + {{-- Validez y estado --}} +
+
+

+ + Validez de acceso +

+
+
+ Estado + {{ $statusBadge[1] }} +
+
+ Válido desde + + {{ $user->valid_from ? $user->valid_from->format('d/m/Y') : '— (sin límite)' }} + +
+
+ Válido hasta + + {{ $user->valid_until ? $user->valid_until->format('d/m/Y') : '— (sin límite)' }} + +
+
+ Email verificado + @if($user->email_verified_at) + + + {{ $user->email_verified_at->format('d/m/Y') }} + + @else + + + Pendiente + + @endif +
+
+
+
+ + {{-- Empresa --}} + @if($user->company) +
+
+

+ + Empresa +

+
+ @if($user->company->logo_path && \Illuminate\Support\Facades\Storage::disk('public')->exists($user->company->logo_path)) + + @else +
+ +
+ @endif +
+

{{ $user->company->name }}

+ @if($user->company->apodo) +

{{ $user->company->apodo }}

+ @endif + @if($user->company->email) +

{{ $user->company->email }}

+ @endif +
+ @php + $typeBadge = match($user->company->type) { + 'owner' => ['badge-success', 'Promotor'], + 'constructor' => ['badge-primary', 'Constructor'], + 'subcontractor' => ['badge-secondary','Subcontratista'], + 'consultant' => ['badge-info', 'Consultor'], + 'supplier' => ['badge-warning', 'Proveedor'], + default => ['badge-ghost', 'Otro'], + }; + @endphp + {{ $typeBadge[1] }} +
+
+
+ @endif + {{-- Permisos directos del usuario --}}
diff --git a/resources/views/projects/index.blade.php b/resources/views/projects/index.blade.php index 598abad..d359a62 100644 --- a/resources/views/projects/index.blade.php +++ b/resources/views/projects/index.blade.php @@ -22,7 +22,7 @@ @endif
- +
diff --git a/resources/views/projects/map.blade.php b/resources/views/projects/map.blade.php index 9bd8c1b..074a148 100644 --- a/resources/views/projects/map.blade.php +++ b/resources/views/projects/map.blade.php @@ -1,5 +1,5 @@
- +
\ No newline at end of file diff --git a/resources/views/projects/media.blade.php b/resources/views/projects/media.blade.php index e5f2a4b..62050ac 100644 --- a/resources/views/projects/media.blade.php +++ b/resources/views/projects/media.blade.php @@ -11,7 +11,7 @@ ← {{ __('Back to map') }} - @livewire('media-manager', [ + @livewire('media.media-manager', [ 'mediableType' => 'App\Models\Project', 'mediableId' => $project->id, ]) diff --git a/routes/web.php b/routes/web.php index 29a3c46..a5f9a93 100644 --- a/routes/web.php +++ b/routes/web.php @@ -4,10 +4,10 @@ use App\Http\Controllers\ProfileController; use App\Livewire\Reports\ReportsDashboard; use App\Http\Controllers\ProjectController; use App\Http\Controllers\OfflineSyncController; -use App\Livewire\ProjectMap; -use App\Livewire\ProjectList; -use App\Livewire\PhaseProgress; -use App\Livewire\PhaseGantt; +use App\Livewire\Projects\ProjectMap; +use App\Livewire\Projects\ProjectList; +use App\Livewire\Phases\PhaseProgress; +use App\Livewire\Phases\PhaseGantt; use App\Http\Controllers\ProjectReportController; use Illuminate\Support\Facades\Route; @@ -97,8 +97,8 @@ Route::get('/reports/dashboard', ReportsDashboard::class)->name('reports.dashboa // Gestión de proyectos // ------------------------------------------------------------ // Create/Edit handled by unified Livewire component - Route::get('/projects/create', \App\Livewire\ProjectForm::class)->name('projects.create'); - Route::get('/projects/{project}/edit', \App\Livewire\ProjectForm::class)->name('projects.edit'); + Route::get('/projects/create', \App\Livewire\Projects\ProjectForm::class)->name('projects.create'); + Route::get('/projects/{project}/edit', \App\Livewire\Projects\ProjectForm::class)->name('projects.edit'); Route::resource('projects', ProjectController::class)->except(['create', 'edit']); // Ruta personalizada para ver el mapa de un proyecto específico Route::get('/projects/{project}/map', [ProjectController::class, 'map'])->name('projects.map'); @@ -111,21 +111,21 @@ Route::get('/reports/dashboard', ReportsDashboard::class)->name('reports.dashboa })->name('projects.templates')->middleware('can:edit projects'); // Rutas para el LayerManager: - Route::get('/projects/{project}/phases/{phase}/layers/manage', \App\Livewire\LayerManager::class)->name('layers.manage'); + Route::get('/projects/{project}/phases/{phase}/layers/manage', \App\Livewire\Layers\LayerManager::class)->name('layers.manage'); // Cronograma Gantt y reporte del proyecto Route::get('/projects/{project}/gantt', PhaseGantt::class)->name('projects.gantt'); Route::get('/projects/{project}/report', [ProjectReportController::class, 'show'])->name('projects.report'); // Issues del proyecto - Route::get('/projects/{project}/issues', \App\Livewire\IssueManager::class)->name('projects.issues'); - Route::get('/projects/{project}/issues/create', \App\Livewire\IssueForm::class)->name('projects.issues.create'); - Route::get('/projects/{project}/issues/checklists', \App\Livewire\IssueChecklistManager::class)->name('projects.issues.checklists'); - Route::get('/projects/{project}/issues/{issue}', \App\Livewire\IssueDetail::class)->name('projects.issues.show'); - Route::get('/projects/{project}/issues/{issue}/edit', \App\Livewire\IssueForm::class)->name('projects.issues.edit'); + Route::get('/projects/{project}/issues', \App\Livewire\Issues\IssueManager::class)->name('projects.issues'); + Route::get('/projects/{project}/issues/create', \App\Livewire\Issues\IssueForm::class)->name('projects.issues.create'); + Route::get('/projects/{project}/issues/checklists', \App\Livewire\Issues\IssueChecklistManager::class)->name('projects.issues.checklists'); + Route::get('/projects/{project}/issues/{issue}', \App\Livewire\Issues\IssueDetail::class)->name('projects.issues.show'); + Route::get('/projects/{project}/issues/{issue}/edit', \App\Livewire\Issues\IssueForm::class)->name('projects.issues.edit'); // Dashboard por proyecto - Route::get('/projects/{project}/dashboard', \App\Livewire\ProjectDashboard::class)->name('projects.dashboard'); + Route::get('/projects/{project}/dashboard', \App\Livewire\Projects\ProjectDashboard::class)->name('projects.dashboard'); // Cliente: portal cliente Route::middleware(['auth', 'role:client'])->prefix('client')->name('client.')->group(function () { @@ -137,24 +137,24 @@ Route::get('/reports/dashboard', ReportsDashboard::class)->name('reports.dashboa // Admin: gestión de usuarios y roles (cada ruta protegida por su permiso) Route::prefix('admin')->name('admin.')->group(function () { Route::get('/users', function () { return view('admin.users'); })->middleware('can:view users')->name('users'); - Route::get('/users/create', \App\Livewire\UserForm::class)->middleware('can:create users')->name('users.create'); - Route::get('/users/{user}', \App\Livewire\UserView::class)->middleware('can:view users')->name('users.show'); - Route::get('/users/{user}/edit', \App\Livewire\UserForm::class)->middleware('can:edit users')->name('users.edit'); + Route::get('/users/create', \App\Livewire\Users\UserForm::class)->middleware('can:create users')->name('users.create'); + Route::get('/users/{user}', \App\Livewire\Users\UserView::class)->middleware('can:view users')->name('users.show'); + Route::get('/users/{user}/edit', \App\Livewire\Users\UserForm::class)->middleware('can:edit users')->name('users.edit'); Route::get('/roles', function () { return view('admin.roles'); })->middleware('can:manage roles')->name('roles'); - Route::get('/roles/create', \App\Livewire\RoleForm::class)->middleware('can:manage roles')->name('roles.create'); - Route::get('/roles/{role}/edit', \App\Livewire\RoleForm::class)->middleware('can:manage roles')->name('roles.edit'); - Route::get('/roles/{role}', \App\Livewire\RoleView::class)->middleware('can:manage roles')->name('roles.show'); - Route::get('/permissions', \App\Livewire\RolePermissionManager::class)->middleware('can:manage roles')->name('permissions'); + Route::get('/roles/create', \App\Livewire\Admin\RoleForm::class)->middleware('can:manage roles')->name('roles.create'); + Route::get('/roles/{role}/edit', \App\Livewire\Admin\RoleForm::class)->middleware('can:manage roles')->name('roles.edit'); + Route::get('/roles/{role}', \App\Livewire\Admin\RoleView::class)->middleware('can:manage roles')->name('roles.show'); + Route::get('/permissions', \App\Livewire\Admin\RolePermissionManager::class)->middleware('can:manage roles')->name('permissions'); }); // Gestor de medios Route::get('/projects/{project}/media', function (\App\Models\Project $project) { return view('projects.media', compact('project')); })->name('projects.media'); - Route::get('/companies', \App\Livewire\CompanyManagement::class)->name('companies.manage'); - Route::get('/companies/create', \App\Livewire\CompanyForm::class)->name('companies.create'); - Route::get('/companies/{company}', \App\Livewire\CompanyView::class)->name('companies.show'); - Route::get('/companies/{company}/edit', \App\Livewire\CompanyForm::class)->name('companies.edit'); + Route::get('/companies', \App\Livewire\Companies\CompanyManagement::class)->name('companies.manage'); + Route::get('/companies/create', \App\Livewire\Companies\CompanyForm::class)->name('companies.create'); + Route::get('/companies/{company}', \App\Livewire\Companies\CompanyView::class)->name('companies.show'); + Route::get('/companies/{company}/edit', \App\Livewire\Companies\CompanyForm::class)->name('companies.edit'); // ------------------------------------------------------------ // Sincronización offline (para trabajadores en campo) diff --git a/tests/Feature/IssuesEnhancementsTest.php b/tests/Feature/IssuesEnhancementsTest.php index c20fe42..869a0d6 100644 --- a/tests/Feature/IssuesEnhancementsTest.php +++ b/tests/Feature/IssuesEnhancementsTest.php @@ -2,9 +2,9 @@ namespace Tests\Feature; -use App\Livewire\IssueChecklistManager; -use App\Livewire\IssueDetail; -use App\Livewire\IssueForm; +use App\Livewire\Issues\IssueChecklistManager; +use App\Livewire\Issues\IssueDetail; +use App\Livewire\Issues\IssueForm; use App\Models\Feature; use App\Models\Issue; use App\Models\IssueChecklistTemplate; diff --git a/tests/Feature/IssuesTablePageTest.php b/tests/Feature/IssuesTablePageTest.php index 6891112..530374f 100644 --- a/tests/Feature/IssuesTablePageTest.php +++ b/tests/Feature/IssuesTablePageTest.php @@ -2,8 +2,8 @@ namespace Tests\Feature; -use App\Livewire\IssueManager; -use App\Livewire\IssueTable; +use App\Livewire\Issues\IssueManager; +use App\Livewire\Issues\IssueTable; use App\Models\Issue; use App\Models\Project; use App\Models\User; diff --git a/tests/Feature/PhaseManagementTest.php b/tests/Feature/PhaseManagementTest.php index 28aacda..4cd66ec 100644 --- a/tests/Feature/PhaseManagementTest.php +++ b/tests/Feature/PhaseManagementTest.php @@ -2,8 +2,8 @@ namespace Tests\Feature; -use App\Livewire\PhaseList; -use App\Livewire\PhaseTable; +use App\Livewire\Phases\PhaseList; +use App\Livewire\Phases\PhaseTable; use App\Models\Phase; use App\Models\Project; use App\Models\User; diff --git a/tests/Feature/ProjectAssignmentsTest.php b/tests/Feature/ProjectAssignmentsTest.php index 7d2c6c3..ccdc70a 100644 --- a/tests/Feature/ProjectAssignmentsTest.php +++ b/tests/Feature/ProjectAssignmentsTest.php @@ -2,10 +2,10 @@ namespace Tests\Feature; -use App\Livewire\ProjectCompanies; -use App\Livewire\ProjectCompaniesTable; -use App\Livewire\ProjectUsers; -use App\Livewire\ProjectUsersTable; +use App\Livewire\Projects\ProjectCompanies; +use App\Livewire\Projects\ProjectCompaniesTable; +use App\Livewire\Projects\ProjectUsers; +use App\Livewire\Projects\ProjectUsersTable; use App\Models\Company; use App\Models\Project; use App\Models\User; diff --git a/tests/Feature/UserLocaleTest.php b/tests/Feature/UserLocaleTest.php index cfa34f8..efda61f 100644 --- a/tests/Feature/UserLocaleTest.php +++ b/tests/Feature/UserLocaleTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature; -use App\Livewire\UserForm; +use App\Livewire\Users\UserForm; use App\Models\Company; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase;