feat(events): add event categories and filtering

This commit is contained in:
2026-09-21 09:16:28 -03:00
parent b0702b7e15
commit 79d402e210
13 changed files with 134 additions and 8 deletions

View File

@@ -37,7 +37,8 @@ class TenantBootstrapService
'roles',
fn ($query) => $query->where('codigo', RoleCode::User->value)
),
'categories' => fn ($query) => $query->orderBy('nombre'),
$tenant->storefront_website_type_code === 'onticket_multi_event'
? 'eventCategories' : 'categories' => fn ($query) => $query->orderBy('nombre'),
]
);
}

View File

@@ -11,6 +11,7 @@ use App\Domains\Core\Client\Models\Client;
use App\Domains\Ticketing\Event\Models\EventDate;
use App\Domains\Ticketing\Event\Models\EventDateChange;
use App\Domains\Ticketing\Event\Models\Event;
use App\Domains\Ticketing\Event\Models\EventCategory;
use App\Domains\Core\Menu\Models\Menu;
use App\Domains\Core\Menu\Models\TenantMenu;
use App\Domains\Core\Tenant\Enums\CartEditingPolicy;
@@ -265,6 +266,12 @@ class Tenant extends Model
return $this->hasMany(Category::class, 'tenant_code', 'codigo');
}
/** @return HasMany<EventCategory, $this> */
public function eventCategories(): HasMany
{
return $this->hasMany(EventCategory::class, 'tenant_code', 'codigo');
}
/** @return HasMany<ScanAttempt, $this> */
public function scanAttempts(): HasMany
{

View File

@@ -99,10 +99,14 @@ class TenantResource extends JsonResource
'menues',
fn () => $this->menuTree($this->menues)
),
'categories' => $this->whenLoaded(
'categories',
fn () => $this->categoryTree($this->categories)
),
'categories' => $this->storefront_website_type_code === 'onticket_multi_event'
? $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)),
];
}