components([ Hidden::make('user_id')->default(Auth::id()), Section::make(__('Order details')) ->columnSpan(4) ->columns(4) ->components([ Select::make('status') ->label(__('Status')) ->options(VisaMasterPaymentOrderRepository::statusValues()) ->default(VisaMasterPaymentOrderRepository::defaultStatus()) ->native(false) ->columnSpan(2), Toggle::make('paid') ->label(__('Paid')) ->inline(false) ->disabled(true) ->onIcon(Heroicon::CheckCircle) ->offIcon(Heroicon::XCircle) ->onColor('success') ->offColor('danger'), RichEditor::make('notes') ->label(__('Bellik')) ->columnSpanFull(), ]), Wizard::make([ Step::make(__('General information')) ->schema([ Select::make('type') ->label(__('Type')) ->options(VisaMasterPaymentOrder::applicationTypes()) ->native(false) ->required(), Select::make('branch_id') ->label(__('Branch')) ->relationship('branch', 'name', fn (Builder $query) => $query->orderByTranslation('name')) ->native(false) ->required(), ]), Step::make(__('Personal information')) ->columns(2) ->schema([ TextInput::make('passport_name') ->label(__('Name')) ->required() ->maxLength(255), TextInput::make('passport_surname') ->label(__('Surname')) ->required() ->maxLength(255), TextInput::make('phone') ->label(__('Phone')) ->required() ->tel(), TextInput::make('email') ->label(__('Email')) ->email(), Select::make('region') ->label(__('Region')) ->options(RegionRepository::values()) ->native(false) ->required(), Textarea::make('address') ->label(__('Address')) ->columnSpanFull(), ]), Step::make(__('Sender information')) ->schema([ TextInput::make('sender_full_name') ->label(__('Sender full name')) ->required(), TextInput::make('sender_passport_serie') ->label(__('Sender passport serie')) ->required(), TextInput::make('sender_passport_number') ->label(__('Sender passport number')) ->required(), TextInput::make('sender_deposit_account') ->label(__('Sender deposit account')) ->required(), ]), Step::make(__('JSON data')) ->schema([ KeyValue::make('sender_datas') ->label(__('Sender data')), KeyValue::make('payment_reciever') ->label(__('Payment receiver')), ]), Step::make(__('Receiver documents')) ->schema( collect(VisaMasterPaymentOrder::reciverFiles()) ->map(function (array $file) { return FileUpload::make('documents.'.$file['code']) ->label($file['name']) ->required($file['required']); }) ->toArray() ), Step::make(__('Sender documents')) ->schema( collect(VisaMasterPaymentOrder::senderFiles()) ->map(function (array $file) { return FileUpload::make('documents.sender.'.$file['code']) ->label($file['name']) ->required($file['required']); }) ->toArray() ), ])->columnSpanFull(), ]); } }