add all controllers logic
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Attendance;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class LateSlipLogIndexRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'school_year' => ['nullable', 'string', 'max:9'],
|
||||
'semester' => ['nullable', 'string', 'max:255'],
|
||||
'q' => ['nullable', 'string', 'max:120'],
|
||||
'date_from' => ['nullable', 'date'],
|
||||
'date_to' => ['nullable', 'date'],
|
||||
'sort_by' => ['nullable', 'string', 'in:id,slip_date,student_name,printed_at,updated_at'],
|
||||
'sort_dir' => ['nullable', 'string', 'in:asc,desc'],
|
||||
'page' => ['nullable', 'integer', 'min:1'],
|
||||
'per_page' => ['nullable', 'integer', 'min:1', 'max:200'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Auth;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class SessionTimeoutCheckRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return auth()->check();
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Auth;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class SessionTimeoutConfigRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return auth()->check();
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Auth;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class SessionTimeoutPingRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return auth()->check();
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\ClassPreparation;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class ClassPreparationAdjustmentRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'class_section_id' => ['required', 'string', 'max:32'],
|
||||
'school_year' => ['nullable', 'string', 'max:9'],
|
||||
'adjustments' => ['required', 'array'],
|
||||
'adjustments.*' => ['required', 'integer'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\ClassPreparation;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class ClassPreparationIndexRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'school_year' => ['nullable', 'string', 'max:9'],
|
||||
'semester' => ['nullable', 'string', 'max:255'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\ClassPreparation;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class ClassPreparationMarkPrintedRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'school_year' => ['required', 'string', 'max:9'],
|
||||
'semester' => ['nullable', 'string', 'max:255'],
|
||||
'class_section_ids' => ['required', 'array'],
|
||||
'class_section_ids.*' => ['required', 'string', 'max:32'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\ClassPreparation;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class ClassPreparationPrintRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
protected function prepareForValidation(): void
|
||||
{
|
||||
parent::prepareForValidation();
|
||||
|
||||
$this->merge([
|
||||
'class_section_id' => $this->route('classSectionId'),
|
||||
'school_year' => $this->route('schoolYear'),
|
||||
]);
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'class_section_id' => ['required', 'string', 'max:32'],
|
||||
'school_year' => ['required', 'string', 'max:9'],
|
||||
'semester' => ['nullable', 'string', 'max:255'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Classes;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class ClassSectionIndexRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'search' => ['nullable', 'string', 'max:120'],
|
||||
'class_id' => ['nullable', 'integer', 'min:1'],
|
||||
'school_year' => ['nullable', 'string', 'max:9'],
|
||||
'semester' => ['nullable', 'string', 'max:255'],
|
||||
'sort_by' => ['nullable', 'string', 'in:class_section_name,class_section_id,class_id,school_year,semester,class_name'],
|
||||
'sort_dir' => ['nullable', 'string', 'in:asc,desc'],
|
||||
'page' => ['nullable', 'integer', 'min:1'],
|
||||
'per_page' => ['nullable', 'integer', 'min:1', 'max:200'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Classes;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class ClassSectionStoreRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'class_id' => ['required', 'integer', 'min:1'],
|
||||
'class_section_id' => ['required', 'integer', 'min:1', Rule::unique('classSection', 'class_section_id')],
|
||||
'class_section_name' => ['required', 'string', 'max:100'],
|
||||
'semester' => ['required', 'string', 'max:255'],
|
||||
'school_year' => ['required', 'string', 'max:9'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Classes;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class ClassSectionUpdateRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$section = $this->route('classSection');
|
||||
$sectionId = is_object($section) ? $section->id : $section;
|
||||
|
||||
return [
|
||||
'class_id' => ['sometimes', 'integer', 'min:1'],
|
||||
'class_section_id' => [
|
||||
'sometimes',
|
||||
'integer',
|
||||
'min:1',
|
||||
Rule::unique('classSection', 'class_section_id')->ignore($sectionId),
|
||||
],
|
||||
'class_section_name' => ['sometimes', 'string', 'max:100'],
|
||||
'semester' => ['sometimes', 'string', 'max:255'],
|
||||
'school_year' => ['sometimes', 'string', 'max:9'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Frontend;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class ContactSubmitRequest extends ApiFormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'email' => ['required', 'email', 'max:255'],
|
||||
'message' => ['required', 'string', 'min:10'],
|
||||
'subject' => ['nullable', 'string', 'max:255'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Frontend;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class LandingTeacherRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'class_section_id' => ['nullable', 'integer', 'min:1'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Messaging;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class MessageIndexRequest extends ApiFormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'page' => ['nullable', 'integer', 'min:1'],
|
||||
'per_page' => ['nullable', 'integer', 'min:1', 'max:100'],
|
||||
'priority' => ['nullable', 'in:low,normal,high'],
|
||||
'read_status' => ['nullable', 'in:0,1'],
|
||||
'search' => ['nullable', 'string', 'max:255'],
|
||||
'sort_by' => ['nullable', 'in:sent_datetime,subject,priority'],
|
||||
'sort_dir' => ['nullable', 'in:asc,desc'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Messaging;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class MessageSendRequest extends ApiFormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'recipient_id' => ['nullable', 'integer', 'min:1', 'required_without:recipient_role'],
|
||||
'recipient_role' => ['nullable', 'string', 'required_without:recipient_id', 'in:teacher,parent,admin,student,guest,administrator'],
|
||||
'subject' => ['required', 'string', 'max:255'],
|
||||
'message' => ['required', 'string'],
|
||||
'priority' => ['nullable', 'in:low,normal,high'],
|
||||
'status' => ['nullable', 'in:sent,received,draft,trashed'],
|
||||
'semester' => ['nullable', 'string', 'max:255'],
|
||||
'school_year' => ['nullable', 'string', 'max:20'],
|
||||
'attachment' => ['nullable', 'file', 'max:10240'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Messaging;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class MessageUpdateRequest extends ApiFormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'status' => ['nullable', 'in:sent,received,draft,trashed'],
|
||||
'priority' => ['nullable', 'in:low,normal,high'],
|
||||
'read_status' => ['nullable', 'in:0,1'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,7 @@ class PaypalExecuteRequest extends ApiFormRequest
|
||||
return [
|
||||
'payer_id' => ['required', 'string', 'max:100'],
|
||||
'paypal_payment_id' => ['nullable', 'string', 'max:100'],
|
||||
'payment_id' => ['nullable', 'integer', 'min:1'],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Preferences;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class PreferencesIndexRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'user_id' => ['nullable', 'integer', 'min:1'],
|
||||
'q' => ['nullable', 'string', 'max:120'],
|
||||
'sort_by' => ['nullable', 'string', 'in:updated_at,created_at,user_id'],
|
||||
'sort_dir' => ['nullable', 'string', 'in:asc,desc'],
|
||||
'page' => ['nullable', 'integer', 'min:1'],
|
||||
'per_page' => ['nullable', 'integer', 'min:1', 'max:200'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Preferences;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
use App\Services\Preferences\PreferencesOptionsService;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class PreferencesUpsertRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$options = app(PreferencesOptionsService::class);
|
||||
|
||||
return [
|
||||
'receive_email_notifications' => ['nullable', 'boolean'],
|
||||
'receive_sms_notifications' => ['nullable', 'boolean'],
|
||||
'notification_email' => ['nullable', 'boolean'],
|
||||
'notification_sms' => ['nullable', 'boolean'],
|
||||
'theme' => ['nullable', 'string', Rule::in(['light', 'dark'])],
|
||||
'language' => ['nullable', 'string', Rule::in(['en', 'fr', 'es'])],
|
||||
'style_color' => ['nullable', 'string', Rule::in($options->styleOptions())],
|
||||
'menu_color' => ['nullable', 'string', Rule::in($options->menuOptions())],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Security;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class IpBanIndexRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'status' => ['nullable', 'string', 'in:all,active'],
|
||||
'search' => ['nullable', 'string', 'max:100'],
|
||||
'sort_by' => ['nullable', 'string', 'in:updated_at,blocked_until,attempts,ip_address,last_attempt_at'],
|
||||
'sort_dir' => ['nullable', 'string', 'in:asc,desc'],
|
||||
'page' => ['nullable', 'integer', 'min:1'],
|
||||
'per_page' => ['nullable', 'integer', 'min:1', 'max:200'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Security;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
use Illuminate\Contracts\Validation\Validator;
|
||||
|
||||
class IpBanRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'id' => ['nullable', 'integer', 'min:1'],
|
||||
'ip' => ['nullable', 'ip'],
|
||||
'hours' => ['nullable', 'integer', 'min:1', 'max:720'],
|
||||
];
|
||||
}
|
||||
|
||||
public function withValidator(Validator $validator): void
|
||||
{
|
||||
$validator->after(function (Validator $validator) {
|
||||
$id = $this->input('id');
|
||||
$ip = $this->input('ip');
|
||||
if (!$id && !$ip) {
|
||||
$validator->errors()->add('id', 'Either id or ip is required.');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Security;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
use Illuminate\Contracts\Validation\Validator;
|
||||
|
||||
class IpUnbanRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'id' => ['nullable', 'integer', 'min:1'],
|
||||
'ip' => ['nullable', 'ip'],
|
||||
'all' => ['nullable', 'boolean'],
|
||||
];
|
||||
}
|
||||
|
||||
public function withValidator(Validator $validator): void
|
||||
{
|
||||
$validator->after(function (Validator $validator) {
|
||||
$id = $this->input('id');
|
||||
$ip = $this->input('ip');
|
||||
$all = filter_var($this->input('all'), FILTER_VALIDATE_BOOLEAN);
|
||||
|
||||
if (!$all && !$id && !$ip) {
|
||||
$validator->errors()->add('id', 'Either id, ip, or all=true is required.');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Settings;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class PolicyShowRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'format' => ['nullable', 'in:html'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Settings;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class SettingsUpdateRequest extends ApiFormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'site_name' => ['nullable', 'string', 'max:255'],
|
||||
'administrator_email' => ['nullable', 'email', 'max:255'],
|
||||
'timezone' => ['nullable', 'string', 'max:80'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Staff;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class StaffIndexRequest extends ApiFormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'page' => ['nullable', 'integer', 'min:1'],
|
||||
'per_page' => ['nullable', 'integer', 'min:1', 'max:100'],
|
||||
'role' => ['nullable', 'string', 'max:100'],
|
||||
'school_year' => ['nullable', 'string', 'max:20'],
|
||||
'semester' => ['nullable', 'string', 'max:20'],
|
||||
'sort_by' => ['nullable', 'in:created_at,lastname,firstname'],
|
||||
'sort_dir' => ['nullable', 'in:asc,desc'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Staff;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class StaffStoreRequest extends ApiFormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'user_id' => ['nullable', 'integer', 'min:1'],
|
||||
'firstname' => ['required', 'string', 'max:100'],
|
||||
'lastname' => ['required', 'string', 'max:100'],
|
||||
'email' => ['required', 'email', 'max:150'],
|
||||
'phone' => ['nullable', 'string', 'max:20'],
|
||||
'role_name' => ['required', 'string', 'max:100'],
|
||||
'school_year' => ['nullable', 'string', 'max:20'],
|
||||
'status' => ['nullable', 'string', 'max:40'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Staff;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class StaffUpdateRequest extends ApiFormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'firstname' => ['nullable', 'string', 'max:100'],
|
||||
'lastname' => ['nullable', 'string', 'max:100'],
|
||||
'email' => ['nullable', 'email', 'max:150'],
|
||||
'phone' => ['nullable', 'string', 'max:20'],
|
||||
'role_name' => ['nullable', 'string', 'max:100'],
|
||||
'school_year' => ['nullable', 'string', 'max:20'],
|
||||
'status' => ['nullable', 'string', 'max:40'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Support;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class ContactSendRequest extends ApiFormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' => ['required', 'string', 'min:3', 'max:255'],
|
||||
'email' => ['required', 'email', 'max:255'],
|
||||
'subject' => ['required', 'string', 'min:3', 'max:255'],
|
||||
'message' => ['required', 'string', 'min:10'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Support;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class SupportRequestIndexRequest extends ApiFormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'page' => ['nullable', 'integer', 'min:1'],
|
||||
'per_page' => ['nullable', 'integer', 'min:1', 'max:100'],
|
||||
'status' => ['nullable', 'string', 'max:25'],
|
||||
'user_id' => ['nullable', 'integer', 'min:1'],
|
||||
'sort_by' => ['nullable', 'in:created_at,status,subject'],
|
||||
'sort_dir' => ['nullable', 'in:asc,desc'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Support;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class SupportRequestStoreRequest extends ApiFormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'subject' => ['required', 'string', 'min:3', 'max:255'],
|
||||
'message' => ['required', 'string', 'min:10'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\System;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class NavItemReorderRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'orders' => ['required', 'array'],
|
||||
'orders.*' => ['integer'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\System;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class NavItemStoreRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'id' => ['nullable', 'integer', 'min:1', 'exists:nav_items,id'],
|
||||
'menu_parent_id' => ['nullable', 'integer', 'min:1', 'exists:nav_items,id'],
|
||||
'parent_id' => ['nullable', 'integer', 'min:1', 'exists:nav_items,id'],
|
||||
'label' => ['required', 'string', 'max:255'],
|
||||
'url' => ['nullable', 'string', 'max:255'],
|
||||
'icon_class' => ['nullable', 'string', 'max:255'],
|
||||
'target' => ['nullable', 'string', 'max:50'],
|
||||
'sort_order' => ['nullable', 'integer'],
|
||||
'is_enabled' => ['nullable', 'boolean'],
|
||||
'roles' => ['nullable', 'array'],
|
||||
'roles.*' => ['integer', 'min:1', 'exists:roles,id'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Ui;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class UiStyleRequest extends ApiFormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'accent' => ['nullable', 'string', 'max:50'],
|
||||
'menu' => ['nullable', 'string', 'max:50'],
|
||||
'menu_bg' => ['nullable', 'string', 'max:20'],
|
||||
'menu_text' => ['nullable', 'string', 'max:20'],
|
||||
'menu_mode' => ['nullable', 'in:light,dark,auto'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Utilities;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
|
||||
class PhoneFormatRequest extends ApiFormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user() !== null;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'number' => ['required', 'string', 'max:50'],
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user