/home/bdqbpbxa/api-uniferx.goodface.com.ua/app/Nova/Vacancy.php
<?php

namespace App\Nova;

use Acme\MultilangLongtext\MultilangLongtext;
use Acme\MultilangText\MultilangText;
use Acme\MultilangTextarea\MultilangTextarea;
use App\Models\Country;
use App\Models\Language;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Laravel\Nova\Fields\Boolean;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\Image;
use Laravel\Nova\Fields\Slug;
use Laravel\Nova\Fields\Tag;
use Laravel\Nova\Http\Requests\NovaRequest;
use Oneduo\NovaFileManager\FileManager;

class Vacancy extends Resource
{
    /**
     * The model the resource corresponds to.
     *
     * @var class-string<\App\Models\Vacancy>
     */
    public static $model = \App\Models\Vacancy::class;

    /**
     * The single value that should be used to represent the resource when being displayed.
     *
     * @var string
     */
    public static $title = 'id';

    /**
     * The columns that should be searched.
     *
     * @var array
     */
    public static $search = [
        'id',
    ];
    public static $trafficCop = false;
    /**
     * Get the fields displayed by the resource.
     *
     * @param NovaRequest $request
     * @return array
     */
    public function fields(NovaRequest $request): array
    {
        $countries = Country::query()->get();
        $languages = Language::query()->get();
        $uploadLink = route('nova.fields.upload.image');
        return [
            ID::make()->sortable()->hide(),
            Boolean::make(__('Visibility'), 'is_enabled'),
            Slug::make(__('Slug'),'slug')
                ->placeholder('chief_accountant'),
            MultilangText::make(__('Title'), 'title')
                ->required()
                ->placeholder('Chief accountant')
                ->slice(25)
                ->fullWidth()
                ->languages($languages)
                ->countries($countries)
                ->uploadLink($uploadLink),
            FileManager::make(__('Title Image'), 'title_image')
                ->hideFromIndex(),
            MultilangText::make(__('Locations'), 'locations')
                ->slice(25)
                ->fullWidth()
                ->languages($languages)
                ->countries($countries)
                ->uploadLink($uploadLink),
            MultilangText::make(__('Experience'), 'experience')
                ->slice(25)
                ->fullWidth()
                ->languages($languages)
                ->countries($countries)
                ->uploadLink($uploadLink),
            MultilangText::make(__('Work_type'), 'work_type')
                ->slice(25)
                ->fullWidth()
                ->languages($languages)
                ->countries($countries)
                ->uploadLink($uploadLink),
            MultilangText::make(__('Button text'), 'fs_button')
                ->fullWidth()
                ->languages($languages)
                ->countries($countries)
                ->hideFromIndex(),
            MultilangLongtext::make(__('Preview description'), 'preview_description')
                ->fullWidth()
                ->hideFromIndex()
                ->languages($languages)
                ->countries($countries)
                ->uploadLink($uploadLink),
            MultilangTextarea::make(__('Content'), 'data')
                ->fullWidth()
                ->hideFromIndex()
                ->languages($languages)
                ->countries($countries)
                ->uploadLink($uploadLink),
        ];
    }

    /**
     * Get the cards available for the request.
     *
     * @param NovaRequest $request
     * @return array
     */
    public function cards(NovaRequest $request)
    {
        return [];
    }

    /**
     * Get the filters available for the resource.
     *
     * @param NovaRequest $request
     * @return array
     */
    public function filters(NovaRequest $request)
    {
        return [];
    }

    /**
     * Get the lenses available for the resource.
     *
     * @param NovaRequest $request
     * @return array
     */
    public function lenses(NovaRequest $request)
    {
        return [];
    }

    /**
     * Get the actions available for the resource.
     *
     * @param NovaRequest $request
     * @return array
     */
    public function actions(NovaRequest $request)
    {
        return [];
    }
}