/home/bdqbpbxa/dev-subdomains/api-uniferx.goodface.com.ua/app/Nova/Layouts/Pages/HomepageLayout.php
<?php

namespace App\Nova\Layouts\Pages;

use Acme\MultilangText\MultilangText;
use Acme\MultilangTextarea\MultilangTextarea;
use App\Models\Country;
use App\Models\Language;
use Illuminate\Support\Facades\Storage;
use Laravel\Nova\Fields\Heading;
use Laravel\Nova\Fields\Image;
use Laravel\Nova\Fields\Text;
use Whitecube\NovaFlexibleContent\Layouts\Layout;

class HomepageLayout extends Layout
{
    /**
     * The layout's unique identifier
     *
     * @var string
     */
    protected $name = 'title';

    /**
     * The displayed title
     *
     * @var string
     */
    protected $title = 'Content';

    protected $limit = 1;

    /**
     * Get the fields displayed by the layout.
     *
     * @return array
     */
    public function fields()
    {
        $countries = Country::query()->get();
        $languages = Language::query()->get();
        $uploadLink = route('nova.fields.upload.image');

        return [
            Heading::make(__('First screen')),
            Text::make('Title', 'data->first_screen_title')->rules(['max:255']),
            Image::make(__('Title background'), 'data->fs_title_background') ->disk('public')
                ->disableDownload()->deletable()->prunable()->path('posts')
                ->preview(function ($value, $disk) { return $value ? Storage::disk($disk)->url($value) : null; })
                ->thumbnail(function ($value, $disk) { return $value ? Storage::disk($disk)->url($value) : null; }),
            MultilangText::make('Text', 'data->first_screen_name')
                ->fullWidth()
                ->languages($languages)
                ->countries($countries)
                ->uploadLink($uploadLink),
            MultilangTextarea::make(__('Description'), 'data->description')
                ->languages($languages)
                ->countries($countries)
                ->uploadLink($uploadLink)
                ->fullWidth(),
            Heading::make(__('Banner')),
            Text::make('Text', 'data->banner_title')->rules(['max:255']),
            Text::make('Card 1', 'data->banner_card_1')->rules(['max:255']),
            Text::make('Card 2', 'data->banner_card_2')->rules(['max:255']),
            Text::make('Card 3', 'data->banner_card_3')->rules(['max:255']),
            Text::make('Card 4', 'data->banner_card_4')->rules(['max:255']),
            Heading::make(__('About')),
            Text::make('Title', 'data->about_title')->rules(['max:255']),
            Text::make('Text', 'data->about_text')->rules(['max:255']),
            Text::make('Button text', 'data->about_button')->rules(['max:255']),
        ];
    }
}