<?php

namespace App\Nova\Resources\Order\Loan\Concerns;

use App\Repos\Order\Loan\BranchRepo;
use App\Repos\Order\Loan\LoanTypeRepo;
use App\Repos\Order\OrderRepo;
use App\Repos\System\Settings\Location\RegionRepo;
use Laravel\Nova\Fields\Badge;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\Select;
use Laravel\Nova\Fields\Text;

class LoanOrderFieldsForIndex
{
    /**
     * Loan Order fields for "create"
     */
    public static function make(): array
    {
        return [
            ID::make()->hide(),

            Text::make(__('ID'), 'unique_id')->sortable(),

            Select::make(__('Loan type'), 'loan_type')
                ->displayUsingLabels()
                ->options(LoanTypeRepo::values())
                ->sortable(),

            Select::make(__('Region'), 'region')
                ->displayUsingLabels()
                ->options(RegionRepo::values())
                ->sortable(),

            Select::make(__('Branch'), 'branch_id')
                ->displayUsingLabels()
                ->options(BranchRepo::values())
                ->sortable(),

            Text::make(__('Name'), 'customer_name'),

            Text::make(__('Surname'), 'customer_surname'),

            Text::make(__('Phone'), 'phone'),

            Badge::make(__('Status'), 'status')
                ->map(OrderRepo::statusClasses())
                ->addTypes([
                    'primary' => 'dark:bg-gray-900 bg-gray-600 text-white',
                ])
                ->labels(OrderRepo::statusValues())
                ->withIcons()
                ->sortable(),
        ];
    }
}
