<?php

namespace App\Filament\Resources\Accounting\JournalEntries\Schemas;

use Filament\Forms\Components\DatePicker;
use Filament\Forms\Components\DateTimePicker;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\Toggle;
use Filament\Schemas\Schema;

class JournalEntryForm
{
    public static function configure(Schema $schema): Schema
    {
        return $schema
            ->components([
                TextInput::make('entry_number')
                    ->required(),
                DatePicker::make('entry_date')
                    ->required(),
                Textarea::make('description')
                    ->required()
                    ->columnSpanFull(),
                Textarea::make('description_ar')
                    ->default(null)
                    ->columnSpanFull(),
                Select::make('reference_type')
                    ->options([
            'manual' => 'Manual',
            'sale' => 'Sale',
            'purchase' => 'Purchase',
            'sale_return' => 'Sale return',
            'purchase_return' => 'Purchase return',
            'payment_received' => 'Payment received',
            'payment_paid' => 'Payment paid',
            'adjustment' => 'Adjustment',
            'opening' => 'Opening',
            'closing' => 'Closing',
        ])
                    ->default('manual')
                    ->required(),
                TextInput::make('reference_id')
                    ->numeric()
                    ->default(null),
                Toggle::make('posted')
                    ->required(),
                DateTimePicker::make('posted_at'),
                TextInput::make('posted_by')
                    ->numeric()
                    ->default(null),
                TextInput::make('created_by')
                    ->required()
                    ->numeric(),
                Textarea::make('notes')
                    ->default(null)
                    ->columnSpanFull(),
            ]);
    }
}
