refactor: reorganize app/Services and app/Support by domain

The app/Services/ directory had grown into 22 flat files at the root plus 7 uneven subdirectories — finding anything required scrolling through an alphabetical mix of small CRUD services, infrastructure drivers, and install-time utilities. This commit groups services by domain, folds Backup into a new Storage namespace, and moves framework-infrastructure and install-time helpers out of Services and into Support where they belong.

New Services layout: Documents/ (Invoice, Estimate, RecurringInvoice, Payment, Expense, Transaction, DocumentItem, SerialNumber, Currency — matches the 'Documents' navigation group); Company/ (Company, Member, Invitation); Mail/ (MailConfiguration, CompanyMailConfig); Storage/ (FileDisk, plus Backup folded in). ExchangeRateProviderService moves next to its drivers in ExchangeRate/; FontService moves into Pdf/ where it belongs. CustomerService, ItemService, CustomFieldService stay at the Services root as standalone single-file domains.

Moves to Support/: Hashids/ (library wrapper — not business logic); Setup/ (one-shot install-time utilities — stateless helpers); Pdf/ (ImageUtils, PdfTemplateUtils, plus the existing PdfHtmlSanitizer consolidated into the same subdir). These are all framework infrastructure and stateless utilities — the 'service' label never really fit them.

Namespace declarations in 29 moved files updated to match new paths. 62 consumer files (controllers, other services, tests, database factories, seeders, routes, bootstrap/providers.php) have their use statements rewritten via a literal-string replacement script — no regex meant no risk of half-matching. Three Documents services needed an explicit 'use App\Services\Mail\CompanyMailConfigService' added because the same-namespace short reference they relied on no longer resolves after the split.

Verified: composer dump-autoload, 350 tests pass (850 assertions), vendor/bin/pint clean, npm run build succeeds.
This commit is contained in:
Darko Gjorgjijoski
2026-04-11 10:00:00 +02:00
parent 5c11147e95
commit 6d1816bd1b
87 changed files with 110 additions and 107 deletions

View File

@@ -2,7 +2,7 @@
namespace App\Console\Commands;
use App\Services\Pdf\PdfTemplateUtils;
use App\Support\Pdf\PdfTemplateUtils;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Storage;

View File

@@ -4,7 +4,7 @@ namespace App\Console\Commands;
use App\Models\FileDisk;
use App\Models\Setting;
use App\Services\FileDiskService;
use App\Services\Storage\FileDiskService;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;

View File

@@ -5,7 +5,7 @@ namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Jobs\CreateBackupJob;
use App\Rules\Backup\PathToZip;
use App\Services\Backup\BackupService;
use App\Services\Storage\BackupService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

View File

@@ -8,7 +8,7 @@ use App\Http\Requests\AdminCompanyUpdateRequest;
use App\Http\Requests\CompaniesRequest;
use App\Http\Resources\CompanyResource;
use App\Models\Company;
use App\Services\CompanyService;
use App\Services\Company\CompanyService;
use Illuminate\Http\Request;
use Silber\Bouncer\BouncerFacade;

View File

@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Resources\CurrencyResource;
use App\Services\CurrencyService;
use App\Services\Documents\CurrencyService;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;

View File

@@ -3,7 +3,7 @@
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Services\FontService;
use App\Services\Pdf\FontService;
use Illuminate\Http\JsonResponse;
class FontController extends Controller

View File

@@ -7,7 +7,7 @@ use App\Http\Requests\DiskEnvironmentRequest;
use App\Http\Resources\FileDiskResource;
use App\Models\FileDisk;
use App\Models\Setting;
use App\Services\FileDiskService;
use App\Services\Storage\FileDiskService;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

View File

@@ -6,7 +6,7 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\MailEnvironmentRequest;
use App\Mail\TestMail;
use App\Models\Setting;
use App\Services\MailConfigurationService;
use App\Services\Mail\MailConfigurationService;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

View File

@@ -5,7 +5,7 @@ namespace App\Http\Controllers\Admin\Settings;
use App\Http\Controllers\Controller;
use App\Http\Requests\PDFConfigurationRequest;
use App\Models\Setting;
use App\Services\Setup\EnvironmentManager;
use App\Support\Setup\EnvironmentManager;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Http\JsonResponse;

View File

@@ -6,7 +6,7 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\LoginRequest;
use App\Models\CompanyInvitation;
use App\Models\User;
use App\Services\InvitationService;
use App\Services\Company\InvitationService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;

View File

@@ -5,7 +5,7 @@ namespace App\Http\Controllers\Company\Auth;
use App\Http\Controllers\Controller;
use App\Models\CompanyInvitation;
use App\Models\User;
use App\Services\InvitationService;
use App\Services\Company\InvitationService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;

View File

@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Company\Estimate;
use App\Http\Controllers\Controller;
use App\Models\Estimate;
use App\Services\Pdf\PdfTemplateUtils;
use App\Support\Pdf\PdfTemplateUtils;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

View File

@@ -11,7 +11,7 @@ use App\Http\Resources\InvoiceResource;
use App\Jobs\GenerateEstimatePdfJob;
use App\Models\Estimate;
use App\Models\Invoice;
use App\Services\EstimateService;
use App\Services\Documents\EstimateService;
use Illuminate\Http\Request;
use Illuminate\Mail\Markdown;

View File

@@ -14,7 +14,7 @@ use App\Models\ExchangeRateProvider;
use App\Models\Invoice;
use App\Models\Payment;
use App\Models\Tax;
use App\Services\ExchangeRateProviderService;
use App\Services\ExchangeRate\ExchangeRateProviderService;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Arr;

View File

@@ -8,7 +8,7 @@ use App\Http\Requests\ExpenseRequest;
use App\Http\Requests\UploadExpenseReceiptRequest;
use App\Http\Resources\ExpenseResource;
use App\Models\Expense;
use App\Services\ExpenseService;
use App\Services\Documents\ExpenseService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

View File

@@ -5,7 +5,7 @@ namespace App\Http\Controllers\Company\General;
use App\Http\Controllers\Controller;
use App\Http\Resources\CompanyInvitationResource;
use App\Models\CompanyInvitation;
use App\Services\InvitationService;
use App\Services\Company\InvitationService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

View File

@@ -6,7 +6,7 @@ use App\Http\Controllers\Controller;
use App\Models\Estimate;
use App\Models\Invoice;
use App\Models\Payment;
use App\Services\SerialNumberService;
use App\Services\Documents\SerialNumberService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

View File

@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Company\Invoice;
use App\Http\Controllers\Controller;
use App\Models\Invoice;
use App\Services\Pdf\PdfTemplateUtils;
use App\Support\Pdf\PdfTemplateUtils;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

View File

@@ -11,7 +11,7 @@ use App\Http\Resources\InvoiceResource;
use App\Jobs\GenerateInvoicePdfJob;
use App\Models\Estimate;
use App\Models\Invoice;
use App\Services\InvoiceService;
use App\Services\Documents\InvoiceService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Mail\Markdown;

View File

@@ -7,7 +7,7 @@ use App\Http\Requests\DeleteMemberRequest;
use App\Http\Requests\MemberRequest;
use App\Http\Resources\UserResource;
use App\Models\User;
use App\Services\MemberService;
use App\Services\Company\MemberService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

View File

@@ -8,7 +8,7 @@ use App\Http\Requests\PaymentRequest;
use App\Http\Requests\SendPaymentRequest;
use App\Http\Resources\PaymentResource;
use App\Models\Payment;
use App\Services\PaymentService;
use App\Services\Documents\PaymentService;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Mail\Markdown;

View File

@@ -6,7 +6,7 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\RecurringInvoiceRequest;
use App\Http\Resources\RecurringInvoiceResource;
use App\Models\RecurringInvoice;
use App\Services\RecurringInvoiceService;
use App\Services\Documents\RecurringInvoiceService;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

View File

@@ -5,8 +5,8 @@ namespace App\Http\Controllers\Company\Settings;
use App\Http\Controllers\Controller;
use App\Http\Requests\CompanyMailConfigurationRequest;
use App\Mail\TestMail;
use App\Services\CompanyMailConfigService;
use App\Services\MailConfigurationService;
use App\Services\Mail\CompanyMailConfigService;
use App\Services\Mail\MailConfigurationService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;

View File

@@ -6,7 +6,7 @@ use App\Http\Controllers\Controller;
use App\Http\Resources\CompanyInvitationResource;
use App\Models\Company;
use App\Models\CompanyInvitation;
use App\Services\InvitationService;
use App\Services\Company\InvitationService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

View File

@@ -6,8 +6,8 @@ use App\Http\Controllers\Controller;
use App\Models\Estimate;
use App\Models\Invoice;
use App\Models\Payment;
use App\Services\EstimateService;
use App\Services\InvoiceService;
use App\Services\Documents\EstimateService;
use App\Services\Documents\InvoiceService;
use Illuminate\Http\Request;
class DocumentPdfController extends Controller

View File

@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Setup;
use App\Http\Controllers\Controller;
use App\Http\Requests\DomainEnvironmentRequest;
use App\Services\Setup\EnvironmentManager;
use App\Support\Setup\EnvironmentManager;
use Illuminate\Support\Facades\Artisan;
class AppDomainController extends Controller

View File

@@ -4,8 +4,8 @@ namespace App\Http\Controllers\Setup;
use App\Http\Controllers\Controller;
use App\Http\Requests\DatabaseEnvironmentRequest;
use App\Services\Setup\EnvironmentManager;
use App\Services\Setup\InstallUtils;
use App\Support\Setup\EnvironmentManager;
use App\Support\Setup\InstallUtils;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Artisan;

View File

@@ -3,7 +3,7 @@
namespace App\Http\Controllers\Setup;
use App\Http\Controllers\Controller;
use App\Services\Setup\FilePermissionChecker;
use App\Support\Setup\FilePermissionChecker;
use Illuminate\Http\JsonResponse;
class FilePermissionsController extends Controller

View File

@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Setup;
use App\Http\Controllers\Controller;
use App\Models\Setting;
use App\Services\Setup\InstallUtils;
use App\Support\Setup\InstallUtils;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

View File

@@ -3,7 +3,7 @@
namespace App\Http\Controllers\Setup;
use App\Http\Controllers\Controller;
use App\Services\Setup\RequirementsChecker;
use App\Support\Setup\RequirementsChecker;
use Illuminate\Http\JsonResponse;
class RequirementsController extends Controller

View File

@@ -3,7 +3,7 @@
namespace App\Http\Middleware;
use App\Models\FileDisk;
use App\Services\Setup\InstallUtils;
use App\Support\Setup\InstallUtils;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

View File

@@ -3,7 +3,7 @@
namespace App\Http\Middleware;
use App\Models\Setting;
use App\Services\Setup\InstallUtils;
use App\Support\Setup\InstallUtils;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

View File

@@ -3,7 +3,7 @@
namespace App\Http\Middleware;
use App\Models\Setting;
use App\Services\Setup\InstallUtils;
use App\Support\Setup\InstallUtils;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

View File

@@ -3,8 +3,8 @@
namespace App\Http\Middleware;
use App\Models\Setting;
use App\Services\Setup\InstallUtils;
use App\Support\InstallWizardAuth;
use App\Support\Setup\InstallUtils;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

View File

@@ -2,7 +2,7 @@
namespace App\Http\Requests;
use App\Services\MailConfigurationService;
use App\Services\Mail\MailConfigurationService;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;

View File

@@ -2,7 +2,7 @@
namespace App\Http\Requests;
use App\Services\MailConfigurationService;
use App\Services\Mail\MailConfigurationService;
use Illuminate\Foundation\Http\FormRequest;
class MailEnvironmentRequest extends FormRequest

View File

@@ -2,7 +2,7 @@
namespace App\Jobs;
use App\Services\Backup\BackupConfigurationFactory;
use App\Services\Storage\BackupConfigurationFactory;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;

View File

@@ -2,9 +2,9 @@
namespace App\Models;
use App\Services\EstimateService;
use App\Services\Pdf\PdfTemplateUtils;
use App\Support\PdfHtmlSanitizer;
use App\Services\Documents\EstimateService;
use App\Support\Pdf\PdfHtmlSanitizer;
use App\Support\Pdf\PdfTemplateUtils;
use App\Traits\GeneratesPdfTrait;
use App\Traits\HasCustomFieldsTrait;
use Carbon\Carbon;

View File

@@ -2,7 +2,7 @@
namespace App\Models;
use App\Services\FileDiskService;
use App\Services\Storage\FileDiskService;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

View File

@@ -2,9 +2,9 @@
namespace App\Models;
use App\Services\InvoiceService;
use App\Services\Pdf\PdfTemplateUtils;
use App\Support\PdfHtmlSanitizer;
use App\Services\Documents\InvoiceService;
use App\Support\Pdf\PdfHtmlSanitizer;
use App\Support\Pdf\PdfTemplateUtils;
use App\Traits\GeneratesPdfTrait;
use App\Traits\HasCustomFieldsTrait;
use Carbon\Carbon;

View File

@@ -3,8 +3,8 @@
namespace App\Models;
use App\Jobs\GeneratePaymentPdfJob;
use App\Services\PaymentService;
use App\Support\PdfHtmlSanitizer;
use App\Services\Documents\PaymentService;
use App\Support\Pdf\PdfHtmlSanitizer;
use App\Traits\GeneratesPdfTrait;
use App\Traits\HasCustomFieldsTrait;
use Carbon\Carbon;

View File

@@ -4,9 +4,9 @@ namespace App\Providers;
use App\Models\FileDisk;
use App\Models\Setting;
use App\Services\FileDiskService;
use App\Services\MailConfigurationService;
use App\Services\Setup\InstallUtils;
use App\Services\Mail\MailConfigurationService;
use App\Services\Storage\FileDiskService;
use App\Support\Setup\InstallUtils;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\ServiceProvider;

View File

@@ -18,9 +18,9 @@ use App\Policies\ReportPolicy;
use App\Policies\RolePolicy;
use App\Policies\SettingsPolicy;
use App\Policies\UserPolicy;
use App\Services\Setup\InstallUtils;
use App\Support\BouncerDefaultScope;
use App\Support\InstallWizardAuth;
use App\Support\Setup\InstallUtils;
use Gate;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Broadcast;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Company;
use App\Models\Company;
use App\Models\CompanySetting;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Company;
use App\Mail\CompanyInvitationMail;
use App\Models\Company;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Company;
use App\Http\Requests\MemberRequest;
use App\Models\User;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Documents;
use App\Models\Currency;
use Illuminate\Database\Eloquent\Collection;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Documents;
use Illuminate\Database\Eloquent\Model;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Documents;
use App;
use App\Facades\Hashids;
@@ -12,7 +12,8 @@ use App\Models\CustomField;
use App\Models\Estimate;
use App\Models\ExchangeRateLog;
use App\Models\Invoice;
use App\Services\Pdf\PdfTemplateUtils;
use App\Services\Mail\CompanyMailConfigService;
use App\Support\Pdf\PdfTemplateUtils;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Documents;
use App\Models\CompanySetting;
use App\Models\ExchangeRateLog;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Documents;
use App;
use App\Facades\Hashids;
@@ -12,7 +12,8 @@ use App\Models\CustomField;
use App\Models\Estimate;
use App\Models\ExchangeRateLog;
use App\Models\Invoice;
use App\Services\Pdf\PdfTemplateUtils;
use App\Services\Mail\CompanyMailConfigService;
use App\Support\Pdf\PdfTemplateUtils;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Documents;
use App\Facades\Hashids;
use App\Facades\Pdf;
@@ -10,6 +10,7 @@ use App\Models\CompanySetting;
use App\Models\ExchangeRateLog;
use App\Models\Invoice;
use App\Models\Payment;
use App\Services\Mail\CompanyMailConfigService;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Documents;
use App\Facades\Hashids;
use App\Http\Requests\RecurringInvoiceRequest;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Documents;
use App\Models\CompanySetting;
use App\Models\Customer;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Documents;
use App\Facades\Hashids;
use App\Models\Transaction;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\ExchangeRate;
use App\Http\Requests\ExchangeRateProviderRequest;
use App\Models\CompanySetting;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Mail;
class CompanyMailConfigService
{

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Mail;
use App\Models\CompanySetting;
use App\Models\Setting;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Pdf;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Http;

View File

@@ -1,9 +1,9 @@
<?php
namespace App\Services\Backup;
namespace App\Services\Storage;
use App\Models\FileDisk;
use App\Services\FileDiskService;
use App\Services\Storage\FileDiskService;
use Exception;
use Spatie\Backup\Config\Config;

View File

@@ -1,10 +1,10 @@
<?php
namespace App\Services\Backup;
namespace App\Services\Storage;
use App\Models\FileDisk;
use App\Models\Setting;
use App\Services\FileDiskService;
use App\Services\Storage\FileDiskService;
use Spatie\Backup\BackupDestination\BackupDestination;
class BackupService

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services;
namespace App\Services\Storage;
use App\Models\FileDisk;
use Illuminate\Http\Request;

View File

@@ -2,7 +2,7 @@
declare(strict_types=1);
namespace App\Services\Hashids;
namespace App\Support\Hashids;
use Hashids\Hashids;
use Illuminate\Support\Arr;

View File

@@ -2,7 +2,7 @@
declare(strict_types=1);
namespace App\Services\Hashids;
namespace App\Support\Hashids;
use Hashids\Hashids;
use Illuminate\Contracts\Config\Repository;

View File

@@ -2,7 +2,7 @@
declare(strict_types=1);
namespace App\Services\Hashids;
namespace App\Support\Hashids;
use Hashids\Hashids as HashidsClient;
use Illuminate\Contracts\Container\Container;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services\Pdf;
namespace App\Support\Pdf;
use Illuminate\Support\Facades\File;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Support;
namespace App\Support\Pdf;
use DOMDocument;
use DOMElement;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services\Pdf;
namespace App\Support\Pdf;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Storage;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services\Setup;
namespace App\Support\Setup;
use App\Http\Requests\DatabaseEnvironmentRequest;
use App\Http\Requests\DomainEnvironmentRequest;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services\Setup;
namespace App\Support\Setup;
class FilePermissionChecker
{

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services\Setup;
namespace App\Support\Setup;
use App\Models\Setting;
use Illuminate\Database\QueryException;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Services\Setup;
namespace App\Support\Setup;
use Illuminate\Support\Str;
use PDO;

View File

@@ -4,7 +4,7 @@ use App\Models\CompanySetting;
use App\Models\Currency;
use App\Models\CustomField;
use App\Models\Setting;
use App\Services\Setup\InstallUtils;
use App\Support\Setup\InstallUtils;
use Illuminate\Support\Str;
/**

View File

@@ -6,8 +6,8 @@ use App\Models\Address;
use App\Models\CompanySetting;
use App\Models\FileDisk;
use App\Models\Setting;
use App\Services\FontService;
use App\Support\PdfHtmlSanitizer;
use App\Services\Pdf\FontService;
use App\Support\Pdf\PdfHtmlSanitizer;
use Carbon\Carbon;
use Illuminate\Support\Facades\App;

View File

@@ -7,7 +7,7 @@ use App\Providers\DropboxServiceProvider;
use App\Providers\PdfServiceProvider;
use App\Providers\RouteServiceProvider;
use App\Providers\ViewServiceProvider;
use App\Services\Hashids\HashidsServiceProvider;
use App\Support\Hashids\HashidsServiceProvider;
return [
HashidsServiceProvider::class,

View File

@@ -3,7 +3,7 @@
/**
* Hashids connection config (per model class).
*
* Wired by App\Services\Hashids\HashidsServiceProvider using the hashids/hashids package.
* Wired by App\Support\Hashids\HashidsServiceProvider using the hashids/hashids package.
*/
use App\Models\Company;

View File

@@ -6,7 +6,7 @@ use App\Models\Currency;
use App\Models\Customer;
use App\Models\Estimate;
use App\Models\User;
use App\Services\SerialNumberService;
use App\Services\Documents\SerialNumberService;
use Illuminate\Database\Eloquent\Factories\Factory;
class EstimateFactory extends Factory

View File

@@ -7,7 +7,7 @@ use App\Models\Customer;
use App\Models\Invoice;
use App\Models\RecurringInvoice;
use App\Models\User;
use App\Services\SerialNumberService;
use App\Services\Documents\SerialNumberService;
use Illuminate\Database\Eloquent\Factories\Factory;
class InvoiceFactory extends Factory

View File

@@ -7,7 +7,7 @@ use App\Models\Customer;
use App\Models\Payment;
use App\Models\PaymentMethod;
use App\Models\User;
use App\Services\SerialNumberService;
use App\Services\Documents\SerialNumberService;
use Illuminate\Database\Eloquent\Factories\Factory;
class PaymentFactory extends Factory

View File

@@ -8,7 +8,7 @@ use App\Models\CompanySetting;
use App\Models\Customer;
use App\Models\Setting;
use App\Models\User;
use App\Services\CompanyService;
use App\Services\Company\CompanyService;
use Illuminate\Database\Seeder;
use Silber\Bouncer\BouncerFacade;

View File

@@ -6,8 +6,8 @@ use App\Facades\Hashids;
use App\Models\Company;
use App\Models\Setting;
use App\Models\User;
use App\Services\CompanyService;
use App\Services\Setup\InstallUtils;
use App\Services\Company\CompanyService;
use App\Support\Setup\InstallUtils;
use Illuminate\Database\Seeder;
use Silber\Bouncer\BouncerFacade;

View File

@@ -2,8 +2,8 @@
use App\Models\CompanySetting;
use App\Models\RecurringInvoice;
use App\Services\RecurringInvoiceService;
use App\Services\Setup\InstallUtils;
use App\Services\Documents\RecurringInvoiceService;
use App\Support\Setup\InstallUtils;
use Illuminate\Support\Facades\Schedule;
// Only run in demo environment

View File

@@ -3,7 +3,7 @@
use App\Jobs\CreateBackupJob;
use App\Models\FileDisk;
use App\Models\User;
use App\Services\Backup\BackupConfigurationFactory;
use App\Services\Storage\BackupConfigurationFactory;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Queue;
use Laravel\Sanctum\Sanctum;

View File

@@ -3,8 +3,8 @@
use App\Models\CompanySetting;
use App\Models\Setting;
use App\Models\User;
use App\Services\CompanyMailConfigService;
use App\Services\MailConfigurationService;
use App\Services\Mail\CompanyMailConfigService;
use App\Services\Mail\MailConfigurationService;
use Illuminate\Support\Facades\Artisan;
use Laravel\Sanctum\Sanctum;

View File

@@ -4,8 +4,8 @@ use App\Http\Requests\EstimatesRequest;
use App\Models\Estimate;
use App\Models\EstimateItem;
use App\Models\Tax;
use App\Services\DocumentItemService;
use App\Services\EstimateService;
use App\Services\Documents\DocumentItemService;
use App\Services\Documents\EstimateService;
use Illuminate\Support\Facades\Artisan;
beforeEach(function () {

View File

@@ -4,8 +4,8 @@ use App\Http\Requests\InvoicesRequest;
use App\Models\Invoice;
use App\Models\InvoiceItem;
use App\Models\Tax;
use App\Services\DocumentItemService;
use App\Services\InvoiceService;
use App\Services\Documents\DocumentItemService;
use App\Services\Documents\InvoiceService;
use Illuminate\Support\Facades\Artisan;
beforeEach(function () {

View File

@@ -1,6 +1,6 @@
<?php
use App\Support\PdfHtmlSanitizer;
use App\Support\Pdf\PdfHtmlSanitizer;
it('removes img tags that could trigger SSRF during PDF rendering', function () {
$html = "<p>Hi</p><img src='http://example.com/x'>";