<?php

namespace App\Domains\Forms\Services;

use App\Domains\Catalog\Models\Attribute;
use App\Domains\Catalog\Models\AttributeOption;
use App\Domains\Event\Models\EventDate;
use App\Domains\Tenant\Models\Tenant;
use Illuminate\Database\Eloquent\Collection;

class FoodFormService
{
    /**
     * @return array{
     *     event_dates: Collection<int, EventDate>,
     *     schedules: Collection<int, AttributeOption>,
     *     services: Collection<int, AttributeOption>
     * }
     */
    public function get(Tenant $tenant): array
    {
        $attributes = Attribute::query()
            ->where('tenant_codigo', $tenant->codigo)
            ->whereIn('codigo', ['horario', 'servicio'])
            ->with('options')
            ->get()
            ->keyBy('codigo');

        return [
            'event_dates' => $tenant->eventDates()->with('validityTime')->get(),
            'schedules' => $attributes->get('horario')?->options ?? new Collection,
            'services' => $attributes->get('servicio')?->options ?? new Collection,
        ];
    }
}
