|string> */ public function rules(): array { return [ 'first_name' => [ 'required', 'persian_alpha', 'min:2', 'max:100', ], 'last_name' => [ 'required', 'persian_alpha', 'min:3', 'max:100', ], 'username' => [ 'required', 'regex:/^[a-zA-Z0-9\x{0600}-\x{06FF}]+$/u', 'min:3', 'max:20', 'unique:users,username' ], 'national_code' => [ 'required', 'ir_national_id', 'digits:10', 'unique:users,national_code', ], 'gender'=>[ 'required', new Enum(UserGender::class), ], 'marital_status'=>[ 'required', new Enum(UserMaritalStatus::class), ], 'spouse_name'=>[ 'nullable', 'string', 'persian_alpha', 'max:256', ], 'image_id ' => [ 'nullable', 'image', 'mimes:jpg,jpeg,png,webp', 'max:800', ], 'province_id' => [ 'nullable', 'exists:provinces,id', ], 'city_id' => [ 'nullable', 'exists:cities,id', ], 'password' => [ 'required', 'string', 'min:6', 'max:255', 'confirmed' ], 'mobile' => [ 'required', 'ir_mobile:zero', 'unique:users,mobile', ], 'email' => [ 'required', 'max:150', 'email', 'unique:users,mobile', ] ]; } }