refactor(backend): reorganize domains into Core, Commerce, Ticketing and Shared

This commit is contained in:
2026-09-18 10:15:57 -03:00
parent 1241e1f7e8
commit 1e67d27a90
563 changed files with 2302 additions and 2230 deletions

View File

@@ -2,7 +2,7 @@
namespace Database\Factories;
use App\Domains\Auth\Models\User;
use App\Domains\Core\Auth\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Catalog\Enums\InventoryPolicy;
use App\Domains\Commerce\Catalog\Enums\InventoryPolicy;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Catalog\Enums\InventoryPolicy;
use App\Domains\Commerce\Catalog\Enums\InventoryPolicy;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;

View File

@@ -1,7 +1,7 @@
<?php
use App\Domains\Catalog\Models\CatalogItem;
use App\Domains\Catalog\Models\Variant;
use App\Domains\Commerce\Catalog\Models\CatalogItem;
use App\Domains\Commerce\Catalog\Models\Variant;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
@@ -15,6 +15,10 @@ return new class extends Migration
private const PREVIOUS_VARIANT = 'App\\Domains\\CatalogNew\\Models\\Variant';
private const ORIGINAL_CATALOG_ITEM = 'App\\Domains\\Catalog\\Models\\CatalogItem';
private const ORIGINAL_VARIANT = 'App\\Domains\\Catalog\\Models\\Variant';
public function up(): void
{
Schema::table('compra_items', function (Blueprint $table): void {
@@ -29,7 +33,7 @@ return new class extends Migration
});
DB::table('compra_items')->orderBy('id')->each(function (object $purchaseItem): void {
if (in_array($purchaseItem->buyable_type, [CatalogItem::class, self::PREVIOUS_CATALOG_ITEM], true)) {
if (in_array($purchaseItem->buyable_type, [CatalogItem::class, self::ORIGINAL_CATALOG_ITEM, self::PREVIOUS_CATALOG_ITEM], true)) {
$catalogItem = DB::table('catalog_items')
->where('id', $purchaseItem->buyable_id)
->first();
@@ -48,7 +52,7 @@ return new class extends Migration
}
}
if (in_array($purchaseItem->buyable_type, [self::LEGACY_PRODUCT_VARIANT, Variant::class, self::PREVIOUS_VARIANT], true)) {
if (in_array($purchaseItem->buyable_type, [self::LEGACY_PRODUCT_VARIANT, Variant::class, self::ORIGINAL_VARIANT, self::PREVIOUS_VARIANT], true)) {
$variant = DB::table('variantes')
->select(['id', 'catalog_item_id'])
->where('id', $purchaseItem->buyable_id)

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Catalog\Enums\ProductLayout;
use App\Domains\Commerce\Catalog\Enums\ProductLayout;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

View File

@@ -1,7 +1,7 @@
<?php
use App\Domains\Catalog\Enums\CatalogItemType;
use App\Domains\Catalog\Enums\InventoryPolicy;
use App\Domains\Commerce\Catalog\Enums\CatalogItemType;
use App\Domains\Commerce\Catalog\Enums\InventoryPolicy;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Catalog\Enums\GroupLayout;
use App\Domains\Commerce\Catalog\Enums\GroupLayout;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Menu\Models\Menu;
use App\Domains\Core\Menu\Models\Menu;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;

View File

@@ -1,7 +1,7 @@
<?php
use App\Domains\Catalog\Enums\GroupLayout;
use App\Domains\Catalog\Enums\ProductLayout;
use App\Domains\Commerce\Catalog\Enums\GroupLayout;
use App\Domains\Commerce\Catalog\Enums\ProductLayout;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Authorization\Enums\RoleCode;
use App\Domains\Core\Authorization\Enums\RoleCode;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Authorization\Enums\RoleCode;
use App\Domains\Core\Authorization\Enums\RoleCode;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Purchase\Models\Purchase;
use App\Domains\Commerce\Purchase\Models\Purchase;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
@@ -21,7 +21,10 @@ return new class extends Migration
});
DB::table('value_changes')
->where('trackable_type', (new Purchase)->getMorphClass())
->whereIn('trackable_type', [
'App\\Domains\\Purchase\\Models\\Purchase',
(new Purchase)->getMorphClass(),
])
->whereNull('tenant_code')
->orderBy('id')
->chunkById(500, function ($changes): void {

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Catalog\Enums\FeaturedGroupSource;
use App\Domains\Commerce\Catalog\Enums\FeaturedGroupSource;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Event\Services\EventDateTextFormatter;
use App\Domains\Ticketing\Event\Services\EventDateTextFormatter;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;

View File

@@ -1,7 +1,7 @@
<?php
use App\Domains\Catalog\Enums\GroupLayout;
use App\Domains\Catalog\Enums\ProductLayout;
use App\Domains\Commerce\Catalog\Enums\GroupLayout;
use App\Domains\Commerce\Catalog\Enums\ProductLayout;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Catalog\Enums\InventorySubject;
use App\Domains\Commerce\Catalog\Enums\InventorySubject;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;

View File

@@ -1,7 +1,7 @@
<?php
use App\Domains\Cart\Models\CartItem;
use App\Domains\Catalog\Services\StockReservationService;
use App\Domains\Commerce\Cart\Models\CartItem;
use App\Domains\Commerce\Catalog\Services\StockReservationService;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Desfile\Services\InvitationPurchaseProvisioner;
use App\Domains\Ticketing\Desfile\Services\InvitationPurchaseProvisioner;
use Illuminate\Database\Migrations\Migration;
return new class extends Migration

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Desfile\Services\InvitationPurchaseProvisioner;
use App\Domains\Ticketing\Desfile\Services\InvitationPurchaseProvisioner;
use Illuminate\Database\Migrations\Migration;
return new class extends Migration

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Auth\Models\ResetPasswordAttempt;
use App\Domains\Core\Auth\Models\ResetPasswordAttempt;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;

View File

@@ -1,6 +1,6 @@
<?php
use App\Domains\Purchase\Services\DniDistanceService;
use App\Domains\Commerce\Purchase\Services\DniDistanceService;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;

View File

@@ -1,7 +1,7 @@
<?php
use App\Domains\Authorization\Enums\PermissionCode;
use App\Domains\Authorization\Enums\RoleCode;
use App\Domains\Core\Authorization\Enums\PermissionCode;
use App\Domains\Core\Authorization\Enums\RoleCode;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;

View File

@@ -0,0 +1,49 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
private const TYPE_CHANGES = [
'personal_access_tokens' => [
'tokenable_type' => [
'App\\Domains\\Auth\\Models\\User' => 'App\\Domains\\Core\\Auth\\Models\\User',
],
],
'value_changes' => [
'trackable_type' => [
'App\\Domains\\Purchase\\Models\\Purchase' => 'App\\Domains\\Commerce\\Purchase\\Models\\Purchase',
'App\\Domains\\Ticket\\Models\\Ticket' => 'App\\Domains\\Ticketing\\Ticket\\Models\\Ticket',
],
],
];
public function up(): void
{
$this->rewriteTypes(false);
}
public function down(): void
{
$this->rewriteTypes(true);
}
private function rewriteTypes(bool $reverse): void
{
foreach (self::TYPE_CHANGES as $table => $columns) {
if (! Schema::hasTable($table)) {
continue;
}
foreach ($columns as $column => $changes) {
foreach ($changes as $oldType => $newType) {
DB::table($table)
->where($column, $reverse ? $newType : $oldType)
->update([$column => $reverse ? $oldType : $newType]);
}
}
}
}
};

View File

@@ -2,11 +2,11 @@
namespace Database\Seeders;
use App\Domains\Catalog\Models\Attribute;
use App\Domains\Shared\Enums\FieldType;
use App\Domains\Tenant\Models\Tenant;
use App\Domains\Ticket\Enums\ValidityTimeType;
use App\Domains\Ticket\Models\ValidityTime;
use App\Domains\Commerce\Catalog\Models\Attribute;
use App\Shared\Enums\FieldType;
use App\Domains\Core\Tenant\Models\Tenant;
use App\Domains\Ticketing\Ticket\Enums\ValidityTimeType;
use App\Domains\Ticketing\Ticket\Models\ValidityTime;
use Illuminate\Database\Seeder;
class AttributeSeeder extends Seeder

View File

@@ -2,10 +2,10 @@
namespace Database\Seeders;
use App\Domains\Authorization\Enums\PermissionCode;
use App\Domains\Authorization\Enums\RoleCode;
use App\Domains\Authorization\Models\Permission;
use App\Domains\Authorization\Models\Role;
use App\Domains\Core\Authorization\Enums\PermissionCode;
use App\Domains\Core\Authorization\Enums\RoleCode;
use App\Domains\Core\Authorization\Models\Permission;
use App\Domains\Core\Authorization\Models\Role;
use Illuminate\Database\Seeder;
class AuthorizationSeeder extends Seeder

View File

@@ -2,8 +2,8 @@
namespace Database\Seeders;
use App\Domains\Catalog\Models\Brand;
use App\Domains\Tenant\Models\Tenant;
use App\Domains\Commerce\Catalog\Models\Brand;
use App\Domains\Core\Tenant\Models\Tenant;
use Illuminate\Database\Seeder;
class BrandSeeder extends Seeder

View File

@@ -2,8 +2,8 @@
namespace Database\Seeders;
use App\Domains\Catalog\Models\Category;
use App\Domains\Tenant\Models\Tenant;
use App\Domains\Commerce\Catalog\Models\Category;
use App\Domains\Core\Tenant\Models\Tenant;
use Illuminate\Database\Seeder;
class CategorySeeder extends Seeder

View File

@@ -2,7 +2,7 @@
namespace Database\Seeders;
use App\Domains\Auth\Models\User;
use App\Domains\Core\Auth\Models\User;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;

View File

@@ -2,19 +2,19 @@
namespace Database\Seeders;
use App\Domains\Catalog\Enums\FeaturedGroupSource;
use App\Domains\Catalog\Enums\GroupLayout;
use App\Domains\Catalog\Enums\InventoryPolicy;
use App\Domains\Catalog\Enums\InventorySubject;
use App\Domains\Catalog\Enums\ProductLayout;
use App\Domains\Catalog\Models\Attribute;
use App\Domains\Catalog\Models\CatalogItem;
use App\Domains\Catalog\Models\FeaturedGroup;
use App\Domains\Catalog\Services\CatalogService;
use App\Domains\Client\Models\Client;
use App\Domains\Desfile\Services\InvitationPurchaseProvisioner;
use App\Domains\Tenant\Models\Tenant;
use App\Domains\Tenant\Services\TenantService;
use App\Domains\Commerce\Catalog\Enums\FeaturedGroupSource;
use App\Domains\Commerce\Catalog\Enums\GroupLayout;
use App\Domains\Commerce\Catalog\Enums\InventoryPolicy;
use App\Domains\Commerce\Catalog\Enums\InventorySubject;
use App\Domains\Commerce\Catalog\Enums\ProductLayout;
use App\Domains\Commerce\Catalog\Models\Attribute;
use App\Domains\Commerce\Catalog\Models\CatalogItem;
use App\Domains\Commerce\Catalog\Models\FeaturedGroup;
use App\Domains\Commerce\Catalog\Services\CatalogService;
use App\Domains\Core\Client\Models\Client;
use App\Domains\Ticketing\Desfile\Services\InvitationPurchaseProvisioner;
use App\Domains\Core\Tenant\Models\Tenant;
use App\Domains\Core\Tenant\Services\TenantService;
use Illuminate\Database\Seeder;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\DB;

View File

@@ -2,7 +2,7 @@
namespace Database\Seeders;
use App\Domains\Integration\Models\Integration;
use App\Shared\Integration\Models\Integration;
use Illuminate\Database\Seeder;
class EmailIntegrationSeeder extends Seeder

View File

@@ -2,18 +2,18 @@
namespace Database\Seeders;
use App\Domains\Catalog\Enums\FeaturedGroupSource;
use App\Domains\Catalog\Enums\GroupLayout;
use App\Domains\Catalog\Enums\InventoryPolicy;
use App\Domains\Catalog\Enums\ProductLayout;
use App\Domains\Catalog\Models\CatalogItem;
use App\Domains\Catalog\Models\Category;
use App\Domains\Catalog\Models\FeaturedGroup;
use App\Domains\Catalog\Services\CatalogService;
use App\Domains\Event\Models\EventDate;
use App\Domains\Tenant\Models\Tenant;
use App\Domains\Ticket\Enums\ValidityTimeType;
use App\Domains\Ticket\Models\ValidityTime;
use App\Domains\Commerce\Catalog\Enums\FeaturedGroupSource;
use App\Domains\Commerce\Catalog\Enums\GroupLayout;
use App\Domains\Commerce\Catalog\Enums\InventoryPolicy;
use App\Domains\Commerce\Catalog\Enums\ProductLayout;
use App\Domains\Commerce\Catalog\Models\CatalogItem;
use App\Domains\Commerce\Catalog\Models\Category;
use App\Domains\Commerce\Catalog\Models\FeaturedGroup;
use App\Domains\Commerce\Catalog\Services\CatalogService;
use App\Domains\Ticketing\Event\Models\EventDate;
use App\Domains\Core\Tenant\Models\Tenant;
use App\Domains\Ticketing\Ticket\Enums\ValidityTimeType;
use App\Domains\Ticketing\Ticket\Models\ValidityTime;
use Illuminate\Database\Seeder;
use RuntimeException;

View File

@@ -2,10 +2,10 @@
namespace Database\Seeders;
use App\Domains\Authorization\Enums\RoleCode;
use App\Domains\Authorization\Models\Role;
use App\Domains\Menu\Models\Menu;
use App\Domains\Tenant\Models\Tenant;
use App\Domains\Core\Authorization\Enums\RoleCode;
use App\Domains\Core\Authorization\Models\Role;
use App\Domains\Core\Menu\Models\Menu;
use App\Domains\Core\Tenant\Models\Tenant;
use Illuminate\Database\Seeder;
class MenuSeeder extends Seeder

View File

@@ -2,8 +2,8 @@
namespace Database\Seeders;
use App\Domains\Tenant\Models\Tenant;
use App\Domains\Tenant\Services\WebsiteExtraService;
use App\Domains\Core\Tenant\Models\Tenant;
use App\Domains\Core\Tenant\Services\WebsiteExtraService;
use Illuminate\Database\Seeder;
use Illuminate\Http\UploadedFile;
use RuntimeException;

View File

@@ -2,17 +2,17 @@
namespace Database\Seeders;
use App\Domains\Catalog\Enums\FeaturedGroupSource;
use App\Domains\Catalog\Enums\GroupLayout;
use App\Domains\Catalog\Enums\InventoryPolicy;
use App\Domains\Catalog\Enums\ProductLayout;
use App\Domains\Catalog\Models\Attribute;
use App\Domains\Catalog\Models\Brand;
use App\Domains\Catalog\Models\CatalogItem;
use App\Domains\Catalog\Models\Category;
use App\Domains\Catalog\Models\FeaturedGroup;
use App\Domains\Catalog\Services\CatalogService;
use App\Domains\Tenant\Models\Tenant;
use App\Domains\Commerce\Catalog\Enums\FeaturedGroupSource;
use App\Domains\Commerce\Catalog\Enums\GroupLayout;
use App\Domains\Commerce\Catalog\Enums\InventoryPolicy;
use App\Domains\Commerce\Catalog\Enums\ProductLayout;
use App\Domains\Commerce\Catalog\Models\Attribute;
use App\Domains\Commerce\Catalog\Models\Brand;
use App\Domains\Commerce\Catalog\Models\CatalogItem;
use App\Domains\Commerce\Catalog\Models\Category;
use App\Domains\Commerce\Catalog\Models\FeaturedGroup;
use App\Domains\Commerce\Catalog\Services\CatalogService;
use App\Domains\Core\Tenant\Models\Tenant;
use Illuminate\Database\Seeder;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\File;

View File

@@ -2,7 +2,7 @@
namespace Database\Seeders;
use App\Domains\Tenant\Models\SocialMedia;
use App\Domains\Core\Tenant\Models\SocialMedia;
use Illuminate\Database\Seeder;
class SocialMediaSeeder extends Seeder

View File

@@ -2,7 +2,7 @@
namespace Database\Seeders;
use App\Domains\Integration\Models\Integration;
use App\Shared\Integration\Models\Integration;
use Illuminate\Database\Seeder;
class TelepagosIntegrationSeeder extends Seeder

View File

@@ -2,13 +2,13 @@
namespace Database\Seeders;
use App\Domains\Attachable\Models\Attachment;
use App\Domains\Attachable\Services\AttachmentService;
use App\Domains\Client\Models\Client;
use App\Domains\Tenant\Models\Tenant;
use App\Domains\Tenant\Models\AdminWebsiteType;
use App\Domains\Tenant\Services\TenantService;
use App\Domains\Tenant\Services\WebsiteExtraService;
use App\Shared\Attachable\Models\Attachment;
use App\Shared\Attachable\Services\AttachmentService;
use App\Domains\Core\Client\Models\Client;
use App\Domains\Core\Tenant\Models\Tenant;
use App\Domains\Core\Tenant\Models\AdminWebsiteType;
use App\Domains\Core\Tenant\Services\TenantService;
use App\Domains\Core\Tenant\Services\WebsiteExtraService;
use Illuminate\Database\Seeder;
use Illuminate\Http\UploadedFile;
use RuntimeException;

View File

@@ -2,8 +2,8 @@
namespace Database\Seeders;
use App\Domains\Tenant\Services\AdminWebsiteTypeService;
use App\Domains\Tenant\Models\StorefrontWebsiteType;
use App\Domains\Core\Tenant\Services\AdminWebsiteTypeService;
use App\Domains\Core\Tenant\Models\StorefrontWebsiteType;
use Illuminate\Database\Seeder;
use Illuminate\Http\UploadedFile;
use RuntimeException;