<?php
/*
    * Created by VahabDev in Aparat Live
    * Website: https://pourfi.ir
    * Aparat Live: https://www.aparat.com/vahabdev/live
    * Aparat Channel: https://www.aparat.com/vahabdev
    * Rubika Channel: https://rubika.ir/vahabdev
    * Donate: https://reymit.ir/vahabdev
    * Telegram: https://t.me/vahabdev
*/


namespace App\Filament\Resources\Clients\Schemas;

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

class ClientForm
{
    public static function configure(Schema $schema): Schema
    {
        return $schema
            ->components([
                Section::make('اطلاعات هویتی')
                    ->schema([
                        TextInput::make('firstname')
                            ->required()
                            ->maxLength(255)
                            ->label('نام'),
                        TextInput::make('lastname')
                            ->required()
                            ->maxLength(255)
                            ->label('نام خانوادگی'),
                        TextInput::make('phone')
                            ->required()
                            ->maxLength(255)
                            ->label('شماره تماس')
                            ->unique(ignoreRecord: true)
                        ->columnSpanFull(),
                    ])->columns(2),

                Section::make('اطلاعات آدرس')
                    ->schema([
                        TextInput::make('state')
                            ->required()
                            ->maxLength(255)
                            ->label('استان'),
                        TextInput::make('city')
                            ->maxLength(255)
                            ->label('شهر'),
                        TextInput::make('ip')
                            ->label('IP')
                            ->readOnly()
                            ->default(request()->ip())
                            ->columnSpanFull(),
                    ])->columns(2),

                Section::make('امنیت')
                    ->schema([
                        TextInput::make('password')
                            ->label('رمز عبور')
                            ->password()
                            ->minLength(8)
                            ->formatStateUsing(fn ($state) => '')
                            ->required(fn (string $context): bool => $context === 'create')
                            ->helperText('فقط در صورت تمایل به تغییر رمز عبور، مقدار جدید را وارد کنید.'),
                    ])
                    ->columnSpanFull(),

                Section::make('وضعیت حساب')
                    ->schema([
                        Select::make('status')
                            ->label('وضعیت')
                            ->options([
                                'active' => 'فعال',
                                'inactive' => 'غیرفعال',
                                'banned' => 'مسدود',
                                'pending' => 'در انتظار تایید',
                                'unverified' => 'تایید نشده',
                            ])
                            ->required()
                            ->default('active'),
                    ])
                    ->columnSpanFull(),
            ]);
    }



}
