refactor(bootstrap): separate event category data

This commit is contained in:
2026-09-21 09:24:18 -03:00
parent d61a5d459d
commit c665222837
2 changed files with 25 additions and 19 deletions

View File

@@ -2,14 +2,14 @@
namespace App\Domains\Core\Tenant\Resources;
use App\Shared\Attachable\Models\Attachment;
use App\Shared\Attachable\Models\AttachmentCrop;
use App\Domains\Commerce\Catalog\Models\Category;
use App\Domains\Ticketing\Event\Models\EventDate;
use App\Domains\Ticketing\Event\Models\Event;
use App\Domains\Ticketing\Event\Services\EventDateInfoFormatter;
use App\Domains\Core\Menu\Models\Menu;
use App\Domains\Core\Tenant\Models\Tenant;
use App\Domains\Ticketing\Event\Models\Event;
use App\Domains\Ticketing\Event\Models\EventDate;
use App\Domains\Ticketing\Event\Services\EventDateInfoFormatter;
use App\Shared\Attachable\Models\Attachment;
use App\Shared\Attachable\Models\AttachmentCrop;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Collection;
@@ -99,14 +99,19 @@ class TenantResource extends JsonResource
'menues',
fn () => $this->menuTree($this->menues)
),
'categories' => $this->storefront_website_type_code === 'onticket_multi_event'
? $this->whenLoaded('eventCategories', fn () => $this->eventCategories
'categories' => $this->when(
$this->storefront_website_type_code !== 'onticket_multi_event',
fn () => $this->whenLoaded('categories', fn () => $this->categoryTree($this->categories))
),
'event_categories' => $this->when(
$this->storefront_website_type_code === 'onticket_multi_event',
fn () => $this->whenLoaded('eventCategories', fn () => $this->eventCategories
->map(fn ($category) => [
'id' => $category->id,
'nombre' => $category->nombre,
'subcategories' => [],
])->values())
: $this->whenLoaded('categories', fn () => $this->categoryTree($this->categories)),
),
];
}

View File

@@ -2,16 +2,16 @@
namespace Tests\Feature\Tenant;
use App\Domains\Commerce\Catalog\Models\Category;
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\AdminWebsiteType;
use App\Domains\Core\Tenant\Models\StorefrontWebsiteType;
use App\Domains\Core\Tenant\Models\Tenant;
use App\Shared\Attachable\Enums\AttachmentType;
use App\Shared\Attachable\Models\Attachment;
use App\Shared\Attachable\Models\AttachmentCrop;
use App\Domains\Core\Authorization\Enums\RoleCode;
use App\Domains\Core\Authorization\Models\Role;
use App\Domains\Commerce\Catalog\Models\Category;
use App\Domains\Core\Menu\Models\Menu;
use App\Domains\Core\Tenant\Models\Tenant;
use App\Domains\Core\Tenant\Models\AdminWebsiteType;
use App\Domains\Core\Tenant\Models\StorefrontWebsiteType;
use Database\Seeders\WebsiteTypeSeeder;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Http\UploadedFile;
@@ -33,10 +33,11 @@ class BootstrapTenantControllerTest extends TestCase
$this->getJson('/api/tenants/bootstrap?dominio=acme.com&path=%2F')
->assertOk()
->assertJsonCount(1, 'data.categories')
->assertJsonPath('data.categories.0.id', $eventCategory->id)
->assertJsonPath('data.categories.0.nombre', 'Música')
->assertJsonPath('data.categories.0.subcategories', []);
->assertJsonMissingPath('data.categories')
->assertJsonCount(1, 'data.event_categories')
->assertJsonPath('data.event_categories.0.id', $eventCategory->id)
->assertJsonPath('data.event_categories.0.nombre', 'Música')
->assertJsonPath('data.event_categories.0.subcategories', []);
}
public function test_it_bootstraps_a_tenant_by_domain(): void