DONE: layout letter with letterhead and footer, notification for newly...
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Activity\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class ActivityReportRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$isCreate = $this->isMethod('POST');
|
||||
$isUpdate = $this->isMethod('PUT') || $this->isMethod('PATCH');
|
||||
|
||||
if (! $isCreate && ! $isUpdate) {
|
||||
return [
|
||||
'activity_id' => 'nullable|uuid|exists:activities,id',
|
||||
'report_text' => 'nullable|string',
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'activity_id' => 'required|uuid|exists:activities,id',
|
||||
'report_text' => 'required|string',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'activity_id.required' => 'Aktiviti diperlukan.',
|
||||
'activity_id.exists' => 'Aktiviti tidak sah.',
|
||||
'report_text.required' => 'Laporan diperlukan.',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Activity\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class ActivityRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$isCreate = $this->isMethod('POST');
|
||||
$isUpdate = $this->isMethod('PUT') || $this->isMethod('PATCH');
|
||||
|
||||
if (! $isCreate && ! $isUpdate) {
|
||||
return [
|
||||
'activity_type_id' => 'nullable|uuid|exists:activity_types,id',
|
||||
'title' => 'nullable|string|max:255',
|
||||
'reference_number' => 'nullable|string|max:255',
|
||||
'description' => 'nullable|string',
|
||||
'start_datetime' => 'nullable|date',
|
||||
'end_datetime' => 'nullable|date|after_or_equal:start_datetime',
|
||||
'organizer' => 'nullable|string|max:255',
|
||||
'location' => 'nullable|string|max:255',
|
||||
'is_active' => 'nullable|boolean',
|
||||
];
|
||||
}
|
||||
|
||||
$referenceRule = Rule::unique('activities', 'reference_number');
|
||||
|
||||
if ($isUpdate) {
|
||||
$referenceRule = $referenceRule->ignore($this->route('activity'));
|
||||
}
|
||||
|
||||
return [
|
||||
'activity_type_id' => 'required|uuid|exists:activity_types,id',
|
||||
'title' => 'required|string|max:255',
|
||||
'reference_number' => ['nullable', 'string', 'max:255', $referenceRule],
|
||||
'description' => 'nullable|string',
|
||||
'start_datetime' => 'nullable|date',
|
||||
'end_datetime' => 'nullable|date|after_or_equal:start_datetime',
|
||||
'organizer' => 'nullable|string|max:255',
|
||||
'location' => 'nullable|string|max:255',
|
||||
'is_active' => 'required|boolean',
|
||||
'documents' => 'nullable|array',
|
||||
'documents.*' => 'file|mimes:pdf,jpg,jpeg,png,doc,docx|max:10240',
|
||||
'gallery' => 'nullable|array',
|
||||
'gallery.*' => 'file|mimes:jpg,jpeg,png,webp,gif|max:10240',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'activity_type_id.required' => 'Jenis aktiviti diperlukan.',
|
||||
'activity_type_id.exists' => 'Jenis aktiviti tidak sah.',
|
||||
'title.required' => 'Tajuk aktiviti diperlukan.',
|
||||
'title.max' => 'Tajuk aktiviti tidak boleh melebihi 255 aksara.',
|
||||
'reference_number.unique' => 'Nombor rujukan sudah wujud.',
|
||||
'end_datetime.after_or_equal' => 'Tarikh tamat mestilah selepas atau sama dengan tarikh mula.',
|
||||
'is_active.required' => 'Status aktif diperlukan.',
|
||||
'is_active.boolean' => 'Status aktif tidak sah.',
|
||||
'documents.*.file' => 'Dokumen mestilah fail yang sah.',
|
||||
'documents.*.mimes' => 'Format dokumen tidak disokong.',
|
||||
'documents.*.max' => 'Saiz dokumen melebihi had maksimum 10MB.',
|
||||
'gallery.*.file' => 'Imej galeri mestilah fail yang sah.',
|
||||
'gallery.*.mimes' => 'Format imej galeri tidak disokong. Gunakan jpg, jpeg, png, webp atau gif.',
|
||||
'gallery.*.max' => 'Saiz imej galeri melebihi had maksimum 10MB.',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Activity\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class ActivityTypeRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$isCreate = $this->isMethod('POST');
|
||||
$isUpdate = $this->isMethod('PUT') || $this->isMethod('PATCH');
|
||||
|
||||
if (! $isCreate && ! $isUpdate) {
|
||||
return [
|
||||
'name' => 'nullable|string|max:255',
|
||||
'code' => 'nullable|string|max:255',
|
||||
];
|
||||
}
|
||||
|
||||
$codeRule = Rule::unique('activity_types', 'code');
|
||||
|
||||
if ($isUpdate) {
|
||||
$codeRule = $codeRule->ignore($this->route('activity_type'));
|
||||
}
|
||||
|
||||
return [
|
||||
'name' => 'required|string|max:255',
|
||||
'code' => ['nullable', 'string', 'max:255', $codeRule],
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'name.required' => 'Nama jenis aktiviti diperlukan.',
|
||||
'name.max' => 'Nama jenis aktiviti tidak boleh melebihi 255 aksara.',
|
||||
'code.max' => 'Kod jenis aktiviti tidak boleh melebihi 255 aksara.',
|
||||
'code.unique' => 'Kod jenis aktiviti sudah wujud.',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Activity\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Modules\Activity\Entities\Activity;
|
||||
|
||||
class UploadActivityDocumentRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'type' => [
|
||||
'nullable',
|
||||
'string',
|
||||
'max:255',
|
||||
Rule::notIn([Activity::GALLERY_DOCUMENT_TYPE]),
|
||||
],
|
||||
'description' => 'nullable|string|max:1000',
|
||||
'file' => 'required|file|mimes:pdf,jpg,jpeg,png,doc,docx|max:10240',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'type.not_in' => 'Imej galeri mesti dimuat naik melalui endpoint galeri aktiviti.',
|
||||
'file.required' => 'Fail diperlukan.',
|
||||
'file.mimes' => 'Format fail tidak disokong.',
|
||||
'file.max' => 'Saiz fail melebihi had maksimum 10MB.',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Activity\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UploadActivityGalleryImageRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'file' => 'required|file|mimes:jpg,jpeg,png,webp,gif|max:10240',
|
||||
'description' => 'nullable|string|max:1000',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'file.required' => 'Imej diperlukan.',
|
||||
'file.mimes' => 'Format imej tidak disokong. Gunakan jpg, jpeg, png, webp atau gif.',
|
||||
'file.max' => 'Saiz imej melebihi had maksimum 10MB.',
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user