Tambah request validasi PersetujuanPenawaranRequest

Menambahkan file request baru bernama PersetujuanPenawaranRequest untuk melakukan validasi terhadap data persetujuan penawaran. Meliputi aturan validasi, pesan kustom untuk kesalahan validasi, serta pengaturan otorisasi. File ini akan memastikan data yang diterima sesuai dengan yang diharapkan sebelum diproses lebih lanjut.
This commit is contained in:
Daeng Deni Mardaeni
2024-11-20 22:46:50 +07:00
parent d4dc39b47e
commit f2ed8321e1

View File

@@ -0,0 +1,76 @@
<?php
namespace Modules\Lpj\app\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class PersetujuanPenawaranRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize()
: bool
{
return true; // Adjust this based on your authorization logic
}
/**
* Get the validation rules that apply to the request.
*/
/**
* Get the validation rules that apply to the request.
*/
public function rules()
: array
{
return [
'penawaran_id' => 'required|exists:penawaran_tender,id',
'nomor_proposal_penawaran' => 'nullable|string|max:255',
'tanggal_proposal_penawaran' => 'nullable|date',
'biaya_final' => 'nullable|numeric|min:0',
'sla_resume' => 'nullable|date',
'sla_final' => 'nullable|date|after_or_equal:sla_resume',
'catatan' => 'nullable|string',
'attachment' => 'nullable|file|mimes:pdf,doc,docx|max:10240', // Max 10MB
'region_id' => 'nullable|exists:regions,id',
'status' => 'nullable|boolean',
'authorized_status' => 'nullable|boolean',
'authorized_at' => 'nullable|date',
'authorized_by' => 'nullable|exists:users,id',
];
}
/**
* Get custom messages for validator errors.
*/
public function messages()
: array
{
return [
'penawaran_id.required' => 'Penawaran ID wajib diisi.',
'penawaran_id.exists' => 'Penawaran ID tidak valid.',
'nomor_proposal_penawaran.required' => 'Nomor proposal penawaran wajib diisi.',
'tanggal_proposal_penawaran.required' => 'Tanggal proposal penawaran wajib diisi.',
'tanggal_proposal_penawaran.date' => 'Tanggal proposal penawaran harus berupa tanggal yang valid.',
'biaya_final.required' => 'Biaya final wajib diisi.',
'biaya_final.numeric' => 'Biaya final harus berupa angka.',
'biaya_final.min' => 'Biaya final tidak boleh kurang dari 0.',
'sla_resume.required' => 'SLA Resume wajib diisi.',
'sla_resume.date' => 'SLA Resume harus berupa tanggal yang valid.',
'sla_final.required' => 'SLA Final wajib diisi.',
'sla_final.date' => 'SLA Final harus berupa tanggal yang valid.',
'sla_final.after_or_equal' => 'SLA Final harus sama dengan atau setelah SLA Resume.',
'attachment.file' => 'Attachment harus berupa file.',
'attachment.mimes' => 'Attachment harus berupa file PDF, DOC, atau DOCX.',
'attachment.max' => 'Ukuran attachment tidak boleh lebih dari 10MB.',
'region_id.required' => 'Region ID wajib diisi.',
'region_id.exists' => 'Region ID tidak valid.',
'status.required' => 'Status wajib diisi.',
'status.boolean' => 'Status harus berupa nilai boolean.',
'authorized_status.boolean' => 'Status otorisasi harus berupa nilai boolean.',
'authorized_at.date' => 'Tanggal otorisasi harus berupa tanggal yang valid.',
'authorized_by.exists' => 'ID pengguna yang mengotorisasi tidak valid.',
];
}
}