<?php

namespace App\View\Components;

use App\Models\Category;
use App\Models\Language;
use Closure;
use Illuminate\Contracts\View\View;
use Illuminate\View\Component;

class CategorySelector extends Component
{

    public $categories;

    /**f
     * Create a new component instance.
     */
    public function __construct(
        public string $section,
        public array $selected = [],
        public bool $required = true,
        public bool $news = false
    )
    {
        $this->categories = Category::query()
            ->where(function ($query) {
                $query->whereJsonContains('restricted_to', $this->section)
                    ->orWhereNull('restricted_to');
            })
            ->orderBy('name')
            ->get();
    }

    /**
     * Get the view / contents that represent the component.
     */
    public function render(): View|Closure|string
    {
        return $this->news === true ? view('components.news-category-selector' ) : view('components.category-selector');
    }
}
