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

namespace App\Nova;

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

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

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

    /**
     * The columns that should be searched.
     *
     * @var array
     */
    public static $search = [
        'system_name',
    ];
    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(),
            Text::make(__('System name'), 'system_name'),
            MultilangText::make('Title', 'title')->languages($languages)->countries($countries)->uploadLink($uploadLink)
                ->placeholder('')->required()->fullWidth(),
            FileManager::make(__('File'), 'file')
                ->hideFromIndex(),
//            Image::make(__('File'), 'file') ->disk('public')
//                ->deletable()
//                ->prunable()
//                ->path('flyers'),
            Boolean::make(__('Visibility'), 'is_enabled'),
            BelongsToMany::make(__('Field trial in countries'), 'countries', \App\Nova\Country::class)
        ];
    }

    /**
     * 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 [];
    }
}