From fbabc034a59da39643c79282c2f2e469ec933617 Mon Sep 17 00:00:00 2001 From: shahrzad011 Date: Mon, 17 Aug 2026 19:40:43 +0330 Subject: [PATCH] feat: add admin request validation --- app/Http/Requests/AdminStoreRequest.php | 78 +++++++++++++++++++++++ app/Http/Requests/AdminUpdateRequest.php | 81 ++++++++++++++++++++++++ 2 files changed, 159 insertions(+) create mode 100644 app/Http/Requests/AdminStoreRequest.php create mode 100644 app/Http/Requests/AdminUpdateRequest.php diff --git a/app/Http/Requests/AdminStoreRequest.php b/app/Http/Requests/AdminStoreRequest.php new file mode 100644 index 0000000..8fcaac8 --- /dev/null +++ b/app/Http/Requests/AdminStoreRequest.php @@ -0,0 +1,78 @@ +|string> + */ + public function rules(): array + { + return [ + 'full_name' => [ + 'required', + 'string', + 'max:100', + ], + + 'username' => [ + 'required', + 'string', + 'alpha_num', + 'min:3', + 'max:32', + 'unique:admins,username', + ], + + 'email' => [ + 'required', + 'email', + 'max:150', + 'unique:admins,email', + ], + + 'mobile' => [ + 'required', + 'string', + 'digits:11', + 'unique:admins,mobile', + ], + + 'password' => [ + 'required', + 'string', + 'min:8', + 'max:255', + ], + + 'status' => [ + 'required', + 'boolean', + ], + + 'permissions' => [ + 'nullable', + 'array', + ], + + 'permissions.*' => [ + 'exists:permissions,id', + ], + + ]; + } +} diff --git a/app/Http/Requests/AdminUpdateRequest.php b/app/Http/Requests/AdminUpdateRequest.php new file mode 100644 index 0000000..dc58623 --- /dev/null +++ b/app/Http/Requests/AdminUpdateRequest.php @@ -0,0 +1,81 @@ +|string> + */ + public function rules(): array + { + $admin = $this->route('admin'); + + return [ + 'full_name' => [ + 'required', + 'string', + 'max:100', + ], + + 'username' => [ + 'required', + 'string', + 'alpha_num', + 'min:3', + 'max:32', + Rule::unique('admins', 'username')->ignore($admin), + ], + + 'email' => [ + 'required', + 'email', + 'max:150', + Rule::unique('admins', 'email')->ignore($admin), + ], + + 'mobile' => [ + 'required', + 'string', + 'digits:11', + Rule::unique('admins', 'mobile')->ignore($admin), + ], + + 'password' => [ + 'nullable', + 'string', + 'min:8', + 'max:255', + ], + + 'status' => [ + 'required', + 'boolean', + ], + + 'permissions' => [ + 'nullable', + 'array', + ], + + 'permissions.*' => [ + 'exists:permissions,id', + ], + + ]; + } +}