<?php

namespace App\Filament\Resources\Cashboxes\Schemas;

use Filament\Schemas\Schema;
use App\Filament\Helpers\FormHelper;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Components\Section;
use Filament\Forms\Components\ToggleButtons;

class CashboxForm
{
    public static function configure(Schema $schema): Schema
    {
        return $schema
            ->components([
                Section::make(__('filament/admin/cashbox_resource.basic_information'))
                    ->description(__('filament/admin/cashbox_resource.basic_information_description'))
                    ->collapsible()
                    ->collapsed(false)
                    ->schema([
                        TextInput::make('name')
                            ->label(__('filament/admin/cashbox_resource.name'))
                            ->placeholder(__('filament/admin/cashbox_resource.name_placeholder'))
                            ->helperText(__('filament/admin/cashbox_resource.name_help'))
                            ->required()
                            ->minLength(2)
                            ->maxLength(255),
                        TextInput::make('currency')
                            ->label(__('filament/admin/cashbox_resource.currency'))
                            ->placeholder(__('filament/admin/cashbox_resource.currency_placeholder'))
                            ->helperText(__('filament/admin/cashbox_resource.currency_help'))
                            ->required()
                            ->default('EGP')
                            ->maxLength(3),
                    ]),
                Section::make(__('filament/admin/cashbox_resource.balance_information'))
                    ->description(__('filament/admin/cashbox_resource.balance_information_description'))
                    ->collapsible()
                    ->collapsed(false)
                    ->schema([
                        TextInput::make('opening_balance')
                            ->label(__('filament/admin/cashbox_resource.opening_balance'))
                            ->placeholder(__('filament/admin/cashbox_resource.opening_balance_placeholder'))
                            ->helperText(__('filament/admin/cashbox_resource.opening_balance_help'))
                            ->required()
                            ->numeric()
                            ->minValue(0)
                            ->step(1)
                            ->default(0.0)
                            ->prefix('EGP'),
                        TextInput::make('current_balance')
                            ->label(__('filament/admin/cashbox_resource.current_balance'))
                            ->placeholder(__('filament/admin/cashbox_resource.current_balance_placeholder'))
                            ->helperText(__('filament/admin/cashbox_resource.current_balance_help'))
                            ->required()
                            ->numeric()
                            ->minValue(0)
                            ->step(1)
                            ->default(0.0)
                            ->prefix('EGP')
                            ->disabled(),
                    ]),
                Section::make(__('filament/admin/cashbox_resource.settings'))
                    ->description(__('filament/admin/cashbox_resource.settings_description'))
                    ->collapsible()
                    ->collapsed(false)
                    ->schema([
                        ToggleButtons::make('is_active')
                            ->label(__('filament/admin/cashbox_resource.is_active'))
                            ->helperText(__('filament/admin/cashbox_resource.is_active_help'))
                            ->boolean()
                            ->required(),
                    ]),
            ]);
    }
}
