<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Models\Chronology;
use App\Http\Resources\ChronologiesFilterCollection;
use App\Http\Requests\Api\ChronologiesIndex;

class ChronologyController extends Controller
{
    public function index(ChronologiesIndex $request)
    {
        $data = $request->validated();
        $dateStart = $data['s'] ?? null;
        $dateEnd = $data['e'] ?? null;
        $query = Chronology::full()
            ->where('status', 'published')
            ->orderBy('website_objects.position', 'asc')
            ->has('properties')
            ->with([
                'properties' => function($query) {
                    $query->full();
                }
            ]);
        if ($dateStart) {
            $query->where('date_start', '>=', $dateStart);
        }

        if ($dateEnd) {
            $query->where('date_end', '<=', $dateEnd);
        }

        $chronologies = $query->get();

        return new ChronologiesFilterCollection($chronologies);
    }
}
