<?php

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

use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;

class JournalMappingForm
{
    public static function configure(Schema $schema): Schema
    {
        return $schema
            ->components([
                Select::make('transaction_type')
                    ->label(__('filament/admin/journal_mapping_resource.transaction_type'))
                    ->options(['payment_received' => __('filament/admin/journal_mapping_resource.transaction_type.filament/admin/journal_mapping_resource.transaction_type.payment_received'), 'payment_paid' => __('filament/admin/journal_mapping_resource.transaction_type.filament/admin/journal_mapping_resource.transaction_type.payment_paid'), 'cash_movement' => __('filament/admin/journal_mapping_resource.transaction_type.filament/admin/journal_mapping_resource.transaction_type.cash_movement'), 'work_order' => __('filament/admin/journal_mapping_resource.transaction_type.work_order'), 'execution_summary' => __('filament/admin/journal_mapping_resource.transaction_type.execution_summary'), 'extract' => __('filament/admin/journal_mapping_resource.transaction_type.extract'), 'advance_expense' => __('filament/admin/journal_mapping_resource.transaction_type.advance_expense'), 'stock_issue_request' => __('filament/admin/journal_mapping_resource.transaction_type.stock_issue_request'), 'spare_part_installation' => __('filament/admin/journal_mapping_resource.transaction_type.spare_part_installation'), 'contract' => __('filament/admin/journal_mapping_resource.transaction_type.contract')])
                    ->required(),
                TextInput::make('field_name')
                    ->label(__('filament/admin/journal_mapping_resource.field_name'))
                    ->required(),
                Select::make('account_id')
                    ->label(__('filament/admin/journal_mapping_resource.account_id'))
                    ->relationship('account', 'name')
                    ->required(),
            ]);
    }
}
