*/ public static $model = BranchModel::class; /** * The single value that should be used to represent the resource when being displayed. * * @var string */ public static $title = 'name'; /** * The columns that should be searched. * * @var array */ public static $search = [ 'name', 'unique_code', 'billing_username', 'billing_sber_username', 'billing_visa_master_username', ]; /** * Get the displayable label of the resource. */ public static function label(): string { return __('Branches'); } /** * Get the displayable singular label of the resource. */ public static function singularLabel(): string { return __('Branch'); } /** * Get the fields displayed by the resource. * * @return array */ public function fields(NovaRequest $request): array { return [ ID::make()->sortable(), Text::make(__('Name'), 'name') ->rules('required', 'string', 'max:255') ->translatable(), Select::make(__('Region'), 'region') ->displayUsingLabels() ->searchable() ->options(RegionRepo::values()) ->default(RegionRepo::default()) ->rules('required') ->sortable(), Select::make(__('Province'), 'province_id') ->displayUsingLabels() ->searchable() ->dependsOn('region', NovaRepo::dependsOnRegion('region')), Text::make(__('Unique code'), 'unique_code') ->rules('required', 'string', 'max:255'), Textarea::make(__('Address'), 'address'), Boolean::make(__('Active'), 'active') ->default(true), new Panel(__('Billing'), [ Text::make(__('Billing username'), 'billing_username') ->rules('nullable', 'string', 'max:255'), Text::make(__('Billing password'), 'billing_password') ->rules('nullable', 'string', 'max:255') ->hideFromIndex(), Text::make(__('Billing username (Sber)'), 'billing_sber_username') ->rules('nullable', 'string', 'max:255'), Text::make(__('Billing password (Sber)'), 'billing_sber_password') ->rules('nullable', 'string', 'max:255') ->hideFromIndex(), Text::make(__('Billing username (Visa/Master)'), 'billing_visa_master_username') ->rules('nullable', 'string', 'max:255'), Text::make(__('Billing password (Visa/Master)'), 'billing_visa_master_password') ->rules('nullable', 'string', 'max:255') ->hideFromIndex(), ]), ]; } /** * Get the filters available for the resource. * * @return array */ public function filters(NovaRequest $request): array { return [ new RegionFilter, new ActiveFilter, ]; } }