From 64c481e9638485a2e5e01f42e44b5bfd7f0f2c1d Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Fri, 3 Apr 2026 19:15:20 +0200 Subject: [PATCH] Rename controller namespaces: drop V1 prefix, clarify roles V1/Admin -> Company (company-scoped controllers) V1/SuperAdmin -> Admin (platform-wide admin controllers) V1/Customer -> CustomerPortal (customer-facing portal) V1/Installation -> Setup (installation wizard) V1/PDF -> Pdf (consistent casing) V1/Modules -> Modules (drop V1 prefix) V1/Webhook -> Webhook (drop V1 prefix) The V1 prefix served no purpose - API versioning is in the route prefix (/api/v1/), not the controller namespace. "Admin" was misleading for company-scoped controllers. "SuperAdmin" is now simply "Admin" for platform administration. --- .../Backup/ApiController.php | 2 +- .../Backup/BackupsController.php | 2 +- .../Backup/DownloadBackupController.php | 2 +- .../CompaniesController.php | 2 +- .../CountriesController.php | 2 +- .../CurrenciesController.php | 2 +- .../Modules/ApiTokenController.php | 2 +- .../CompleteModuleInstallationController.php | 2 +- .../Modules/CopyModuleController.php | 2 +- .../Modules/DisableModuleController.php | 2 +- .../Modules/DownloadModuleController.php | 2 +- .../Modules/EnableModuleController.php | 2 +- .../Modules/ModuleController.php | 2 +- .../Modules/ModulesController.php | 2 +- .../Modules/UnzipModuleController.php | 2 +- .../Modules/UploadModuleController.php | 2 +- .../Settings/DiskController.php | 2 +- .../Settings/GetSettingsController.php | 2 +- .../Settings/MailConfigurationController.php | 2 +- .../Settings/PDFConfigurationController.php | 2 +- .../Settings/UpdateSettingsController.php | 2 +- .../Update/CheckVersionController.php | 2 +- .../Update/CopyFilesController.php | 2 +- .../Update/DeleteFilesController.php | 2 +- .../Update/DownloadUpdateController.php | 2 +- .../Update/FinishUpdateController.php | 2 +- .../Update/MigrateUpdateController.php | 2 +- .../Update/UnzipUpdateController.php | 2 +- .../Update/UpdateController.php | 2 +- .../SuperAdmin => Admin}/UsersController.php | 2 +- .../Auth/ConfirmPasswordController.php | 2 +- .../Auth/ForgotPasswordController.php | 2 +- .../Auth/LoginController.php | 2 +- .../Auth/RegisterController.php | 2 +- .../Auth/ResetPasswordController.php | 2 +- .../Auth/VerificationController.php | 2 +- .../Company/CompaniesController.php | 2 +- .../Config/FiscalYearsController.php | 2 +- .../Config/LanguagesController.php | 2 +- .../Config/RetrospectiveEditsController.php | 2 +- .../CustomField/CustomFieldsController.php | 2 +- .../Customer/CustomerStatsController.php | 2 +- .../Customer/CustomersController.php | 2 +- .../Dashboard/DashboardController.php | 2 +- .../Estimate/EstimateTemplatesController.php | 2 +- .../Estimate/EstimatesController.php | 2 +- .../ExchangeRateProviderController.php | 2 +- .../Expense/ExpenseCategoriesController.php | 2 +- .../Expense/ExpensesController.php | 2 +- .../General/BootstrapController.php | 2 +- .../General/ConfigController.php | 2 +- .../General/FormatsController.php | 2 +- .../General/NotesController.php | 2 +- .../General/SearchController.php | 2 +- .../General/SerialNumberController.php | 2 +- .../Invoice/InvoiceTemplatesController.php | 2 +- .../Invoice/InvoicesController.php | 2 +- .../Item/ItemsController.php | 2 +- .../Item/UnitsController.php | 2 +- .../Mobile/AuthController.php | 2 +- .../Payment/PaymentMethodsController.php | 2 +- .../Payment/PaymentsController.php | 2 +- .../RecurringInvoiceController.php | 2 +- .../RecurringInvoiceFrequencyController.php | 2 +- .../Report/CustomerSalesReportController.php | 2 +- .../Report/ExpensesReportController.php | 2 +- .../Report/ItemSalesReportController.php | 2 +- .../Report/ProfitLossReportController.php | 2 +- .../Report/TaxSummaryReportController.php | 2 +- .../Role/AbilitiesController.php | 2 +- .../Role/RolesController.php | 2 +- .../Settings/CompanyController.php | 2 +- ...anyCurrencyCheckTransactionsController.php | 2 +- .../CompanyMailConfigurationController.php | 2 +- .../Settings/CompanySettingsController.php | 2 +- .../Settings/TaxTypesController.php | 2 +- .../Settings/UserProfileController.php | 2 +- .../Settings/UserSettingsController.php | 2 +- .../Users/UsersController.php | 2 +- .../Auth/ForgotPasswordController.php | 2 +- .../Auth/LoginController.php | 2 +- .../Auth/ResetPasswordController.php | 2 +- .../Estimate/AcceptEstimateController.php | 2 +- .../Estimate/EstimatesController.php | 2 +- .../EstimatePdfController.php | 2 +- .../Expense/ExpensesController.php | 2 +- .../General/BootstrapController.php | 2 +- .../General/DashboardController.php | 2 +- .../General/ProfileController.php | 2 +- .../Invoice/InvoicesController.php | 2 +- .../InvoicePdfController.php | 2 +- .../Payment/PaymentMethodController.php | 2 +- .../Payment/PaymentsController.php | 2 +- .../PaymentPdfController.php | 2 +- .../{V1 => }/Modules/ScriptController.php | 2 +- .../{V1 => }/Modules/StyleController.php | 2 +- .../DownloadInvoicePdfController.php | 2 +- .../DownloadPaymentPdfController.php | 2 +- .../PDF => Pdf}/DownloadReceiptController.php | 2 +- .../{V1/PDF => Pdf}/EstimatePdfController.php | 2 +- .../{V1/PDF => Pdf}/InvoicePdfController.php | 2 +- .../{V1/PDF => Pdf}/PaymentPdfController.php | 2 +- .../AppDomainController.php | 2 +- .../DatabaseConfigurationController.php | 2 +- .../FilePermissionsController.php | 2 +- .../FinishController.php | 2 +- .../LanguagesController.php | 2 +- .../LoginController.php | 2 +- .../OnboardingWizardController.php | 2 +- .../RequirementsController.php | 2 +- .../{V1 => }/Webhook/CronJobController.php | 2 +- routes/api.php | 182 +++++++++--------- routes/web.php | 34 ++-- tests/Feature/Admin/CompanySettingTest.php | 4 +- tests/Feature/Admin/CompanyTest.php | 2 +- tests/Feature/Admin/CustomFieldTest.php | 2 +- tests/Feature/Admin/CustomerTest.php | 2 +- tests/Feature/Admin/EstimateTest.php | 2 +- tests/Feature/Admin/ExpenseCategoryTest.php | 2 +- tests/Feature/Admin/ExpenseTest.php | 2 +- tests/Feature/Admin/InvoiceTest.php | 2 +- tests/Feature/Admin/ItemTest.php | 2 +- tests/Feature/Admin/PaymentMethodTest.php | 2 +- tests/Feature/Admin/PaymentTest.php | 2 +- tests/Feature/Admin/RecurringInvoiceTest.php | 2 +- tests/Feature/Admin/TaxTypeTest.php | 2 +- tests/Feature/Admin/UnitTest.php | 2 +- tests/Feature/Admin/UserTest.php | 2 +- tests/Feature/Customer/ProfileTest.php | 2 +- 129 files changed, 236 insertions(+), 236 deletions(-) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Backup/ApiController.php (87%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Backup/BackupsController.php (98%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Backup/DownloadBackupController.php (97%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/CompaniesController.php (97%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/CountriesController.php (90%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/CurrenciesController.php (91%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Modules/ApiTokenController.php (89%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Modules/CompleteModuleInstallationController.php (91%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Modules/CopyModuleController.php (91%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Modules/DisableModuleController.php (93%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Modules/DownloadModuleController.php (90%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Modules/EnableModuleController.php (93%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Modules/ModuleController.php (93%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Modules/ModulesController.php (89%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Modules/UnzipModuleController.php (91%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Modules/UploadModuleController.php (90%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Settings/DiskController.php (98%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Settings/GetSettingsController.php (91%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Settings/MailConfigurationController.php (99%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Settings/PDFConfigurationController.php (98%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Settings/UpdateSettingsController.php (91%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Update/CheckVersionController.php (94%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Update/CopyFilesController.php (93%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Update/DeleteFilesController.php (93%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Update/DownloadUpdateController.php (93%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Update/FinishUpdateController.php (93%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Update/MigrateUpdateController.php (92%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Update/UnzipUpdateController.php (95%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/Update/UpdateController.php (97%) rename app/Http/Controllers/{V1/SuperAdmin => Admin}/UsersController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/Auth/ConfirmPasswordController.php (95%) rename app/Http/Controllers/{V1/Admin => Company}/Auth/ForgotPasswordController.php (97%) rename app/Http/Controllers/{V1/Admin => Company}/Auth/LoginController.php (95%) rename app/Http/Controllers/{V1/Admin => Company}/Auth/RegisterController.php (97%) rename app/Http/Controllers/{V1/Admin => Company}/Auth/ResetPasswordController.php (97%) rename app/Http/Controllers/{V1/Admin => Company}/Auth/VerificationController.php (95%) rename app/Http/Controllers/{V1/Admin => Company}/Company/CompaniesController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/Config/FiscalYearsController.php (89%) rename app/Http/Controllers/{V1/Admin => Company}/Config/LanguagesController.php (89%) rename app/Http/Controllers/{V1/Admin => Company}/Config/RetrospectiveEditsController.php (90%) rename app/Http/Controllers/{V1/Admin => Company}/CustomField/CustomFieldsController.php (97%) rename app/Http/Controllers/{V1/Admin => Company}/Customer/CustomerStatsController.php (94%) rename app/Http/Controllers/{V1/Admin => Company}/Customer/CustomersController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/Dashboard/DashboardController.php (99%) rename app/Http/Controllers/{V1/Admin => Company}/Estimate/EstimateTemplatesController.php (92%) rename app/Http/Controllers/{V1/Admin => Company}/Estimate/EstimatesController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/ExchangeRate/ExchangeRateProviderController.php (99%) rename app/Http/Controllers/{V1/Admin => Company}/Expense/ExpenseCategoriesController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/Expense/ExpensesController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/General/BootstrapController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/General/ConfigController.php (89%) rename app/Http/Controllers/{V1/Admin => Company}/General/FormatsController.php (93%) rename app/Http/Controllers/{V1/Admin => Company}/General/NotesController.php (97%) rename app/Http/Controllers/{V1/Admin => Company}/General/SearchController.php (95%) rename app/Http/Controllers/{V1/Admin => Company}/General/SerialNumberController.php (97%) rename app/Http/Controllers/{V1/Admin => Company}/Invoice/InvoiceTemplatesController.php (93%) rename app/Http/Controllers/{V1/Admin => Company}/Invoice/InvoicesController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/Item/ItemsController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/Item/UnitsController.php (97%) rename app/Http/Controllers/{V1/Admin => Company}/Mobile/AuthController.php (95%) rename app/Http/Controllers/{V1/Admin => Company}/Payment/PaymentMethodsController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/Payment/PaymentsController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/RecurringInvoice/RecurringInvoiceController.php (97%) rename app/Http/Controllers/{V1/Admin => Company}/RecurringInvoice/RecurringInvoiceFrequencyController.php (88%) rename app/Http/Controllers/{V1/Admin => Company}/Report/CustomerSalesReportController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/Report/ExpensesReportController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/Report/ItemSalesReportController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/Report/ProfitLossReportController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/Report/TaxSummaryReportController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/Role/AbilitiesController.php (89%) rename app/Http/Controllers/{V1/Admin => Company}/Role/RolesController.php (98%) rename app/Http/Controllers/{V1/Admin => Company}/Settings/CompanyController.php (96%) rename app/Http/Controllers/{V1/Admin => Company}/Settings/CompanyCurrencyCheckTransactionsController.php (91%) rename app/Http/Controllers/{V1/Admin => Company}/Settings/CompanyMailConfigurationController.php (99%) rename app/Http/Controllers/{V1/Admin => Company}/Settings/CompanySettingsController.php (96%) rename app/Http/Controllers/{V1/Admin => Company}/Settings/TaxTypesController.php (97%) rename app/Http/Controllers/{V1/Admin => Company}/Settings/UserProfileController.php (96%) rename app/Http/Controllers/{V1/Admin => Company}/Settings/UserSettingsController.php (92%) rename app/Http/Controllers/{V1/Admin => Company}/Users/UsersController.php (98%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/Auth/ForgotPasswordController.php (96%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/Auth/LoginController.php (95%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/Auth/ResetPasswordController.php (97%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/Estimate/AcceptEstimateController.php (93%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/Estimate/EstimatesController.php (96%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/EstimatePdfController.php (97%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/Expense/ExpensesController.php (96%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/General/BootstrapController.php (95%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/General/DashboardController.php (96%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/General/ProfileController.php (96%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/Invoice/InvoicesController.php (96%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/InvoicePdfController.php (97%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/Payment/PaymentMethodController.php (90%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/Payment/PaymentsController.php (96%) rename app/Http/Controllers/{V1/Customer => CustomerPortal}/PaymentPdfController.php (92%) rename app/Http/Controllers/{V1 => }/Modules/ScriptController.php (95%) rename app/Http/Controllers/{V1 => }/Modules/StyleController.php (95%) rename app/Http/Controllers/{V1/PDF => Pdf}/DownloadInvoicePdfController.php (92%) rename app/Http/Controllers/{V1/PDF => Pdf}/DownloadPaymentPdfController.php (92%) rename app/Http/Controllers/{V1/PDF => Pdf}/DownloadReceiptController.php (95%) rename app/Http/Controllers/{V1/PDF => Pdf}/EstimatePdfController.php (94%) rename app/Http/Controllers/{V1/PDF => Pdf}/InvoicePdfController.php (94%) rename app/Http/Controllers/{V1/PDF => Pdf}/PaymentPdfController.php (92%) rename app/Http/Controllers/{V1/Installation => Setup}/AppDomainController.php (93%) rename app/Http/Controllers/{V1/Installation => Setup}/DatabaseConfigurationController.php (98%) rename app/Http/Controllers/{V1/Installation => Setup}/FilePermissionsController.php (94%) rename app/Http/Controllers/{V1/Installation => Setup}/FinishController.php (88%) rename app/Http/Controllers/{V1/Installation => Setup}/LanguagesController.php (88%) rename app/Http/Controllers/{V1/Installation => Setup}/LoginController.php (92%) rename app/Http/Controllers/{V1/Installation => Setup}/OnboardingWizardController.php (96%) rename app/Http/Controllers/{V1/Installation => Setup}/RequirementsController.php (94%) rename app/Http/Controllers/{V1 => }/Webhook/CronJobController.php (90%) diff --git a/app/Http/Controllers/V1/SuperAdmin/Backup/ApiController.php b/app/Http/Controllers/Admin/Backup/ApiController.php similarity index 87% rename from app/Http/Controllers/V1/SuperAdmin/Backup/ApiController.php rename to app/Http/Controllers/Admin/Backup/ApiController.php index 5d65e6c7..d052dd08 100644 --- a/app/Http/Controllers/V1/SuperAdmin/Backup/ApiController.php +++ b/app/Http/Controllers/Admin/Backup/ApiController.php @@ -2,7 +2,7 @@ // Implementation taken from nova-backup-tool - https://github.com/spatie/nova-backup-tool/ -namespace App\Http\Controllers\V1\SuperAdmin\Backup; +namespace App\Http\Controllers\Admin\Backup; use App\Http\Controllers\Controller; use Illuminate\Http\JsonResponse; diff --git a/app/Http/Controllers/V1/SuperAdmin/Backup/BackupsController.php b/app/Http/Controllers/Admin/Backup/BackupsController.php similarity index 98% rename from app/Http/Controllers/V1/SuperAdmin/Backup/BackupsController.php rename to app/Http/Controllers/Admin/Backup/BackupsController.php index 2db8a625..24749a41 100644 --- a/app/Http/Controllers/V1/SuperAdmin/Backup/BackupsController.php +++ b/app/Http/Controllers/Admin/Backup/BackupsController.php @@ -2,7 +2,7 @@ // Implementation taken from nova-backup-tool - https://github.com/spatie/nova-backup-tool/ -namespace App\Http\Controllers\V1\SuperAdmin\Backup; +namespace App\Http\Controllers\Admin\Backup; use App\Jobs\CreateBackupJob; use App\Models\FileDisk; diff --git a/app/Http/Controllers/V1/SuperAdmin/Backup/DownloadBackupController.php b/app/Http/Controllers/Admin/Backup/DownloadBackupController.php similarity index 97% rename from app/Http/Controllers/V1/SuperAdmin/Backup/DownloadBackupController.php rename to app/Http/Controllers/Admin/Backup/DownloadBackupController.php index 3e86258e..e8dee0f8 100644 --- a/app/Http/Controllers/V1/SuperAdmin/Backup/DownloadBackupController.php +++ b/app/Http/Controllers/Admin/Backup/DownloadBackupController.php @@ -2,7 +2,7 @@ // Implementation taken from nova-backup-tool - https://github.com/spatie/nova-backup-tool/ -namespace App\Http\Controllers\V1\SuperAdmin\Backup; +namespace App\Http\Controllers\Admin\Backup; use App\Rules\Backup\PathToZip; use Illuminate\Http\Request; diff --git a/app/Http/Controllers/V1/SuperAdmin/CompaniesController.php b/app/Http/Controllers/Admin/CompaniesController.php similarity index 97% rename from app/Http/Controllers/V1/SuperAdmin/CompaniesController.php rename to app/Http/Controllers/Admin/CompaniesController.php index fc301aab..6e628832 100644 --- a/app/Http/Controllers/V1/SuperAdmin/CompaniesController.php +++ b/app/Http/Controllers/Admin/CompaniesController.php @@ -1,6 +1,6 @@ group(function () { // ---------------------------------- Route::middleware(['auth:sanctum', 'super-admin'])->prefix('super-admin')->group(function () { - Route::get('companies', [App\Http\Controllers\V1\SuperAdmin\CompaniesController::class, 'index']); - Route::get('companies/{company}', [App\Http\Controllers\V1\SuperAdmin\CompaniesController::class, 'show']); - Route::put('companies/{company}', [App\Http\Controllers\V1\SuperAdmin\CompaniesController::class, 'update']); + Route::get('companies', [App\Http\Controllers\Admin\CompaniesController::class, 'index']); + Route::get('companies/{company}', [App\Http\Controllers\Admin\CompaniesController::class, 'show']); + Route::put('companies/{company}', [App\Http\Controllers\Admin\CompaniesController::class, 'update']); - Route::get('users', [App\Http\Controllers\V1\SuperAdmin\UsersController::class, 'index']); - Route::get('users/{user}', [App\Http\Controllers\V1\SuperAdmin\UsersController::class, 'show']); - Route::put('users/{user}', [App\Http\Controllers\V1\SuperAdmin\UsersController::class, 'update']); - Route::post('users/{user}/impersonate', [App\Http\Controllers\V1\SuperAdmin\UsersController::class, 'impersonate']); + Route::get('users', [App\Http\Controllers\Admin\UsersController::class, 'index']); + Route::get('users/{user}', [App\Http\Controllers\Admin\UsersController::class, 'show']); + Route::put('users/{user}', [App\Http\Controllers\Admin\UsersController::class, 'update']); + Route::post('users/{user}/impersonate', [App\Http\Controllers\Admin\UsersController::class, 'impersonate']); }); // Stop impersonation - uses auth:sanctum only (the impersonated user's token, not super-admin) Route::middleware(['auth:sanctum'])->prefix('super-admin')->group(function () { - Route::post('stop-impersonating', [App\Http\Controllers\V1\SuperAdmin\UsersController::class, 'stopImpersonating']); + Route::post('stop-impersonating', [App\Http\Controllers\Admin\UsersController::class, 'stopImpersonating']); }); Route::middleware(['auth:sanctum', 'company'])->group(function () { diff --git a/routes/web.php b/routes/web.php index 4b1d541a..f11c8eba 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,22 +1,22 @@