66 lines
2.5 KiB
PHP
66 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests\User;
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
class PesanBuketRequest extends FormRequest
|
|
{
|
|
public function authorize(): bool
|
|
{
|
|
return true; // Pastikan ini true agar request diizinkan
|
|
}
|
|
|
|
public function rules(): array
|
|
{
|
|
return [
|
|
'id_buket' => 'required|exists:bukets,id_buket',
|
|
'nama' => 'required|string|min:3|max:30|regex:/^[a-zA-Z\s]+$/',
|
|
'no_wa' => 'required|numeric|digits_between:10,15',
|
|
'tgl_ambil' => 'required|date|after_or_equal:today',
|
|
'waktu_ambil' => [
|
|
'required',
|
|
'date_format:H:i',
|
|
'after_or_equal:09:00',
|
|
'before_or_equal:21:00',
|
|
],
|
|
'bukti_bayar' => 'required|image|mimes:jpeg,png,jpg|max:2048',
|
|
'request_khusus' => 'nullable|string|max:150',
|
|
'ucapan' => 'nullable|string|max:150',
|
|
];
|
|
}
|
|
|
|
public function messages(): array
|
|
{
|
|
return [
|
|
'required' => ':attribute harus diisi.',
|
|
'string' => ':attribute harus berupa teks valid.',
|
|
'min' => ':attribute terlalu pendek, minimal :min karakter.',
|
|
'max' => ':attribute terlalu panjang, maksimal :max karakter.',
|
|
'numeric' => ':attribute harus berupa angka.',
|
|
'digits_between' => ':attribute harus antara :min sampai :max digit.',
|
|
'regex' => ':attribute hanya boleh berisi huruf dan spasi.',
|
|
'date' => 'Format tanggal pada :attribute tidak valid.',
|
|
'after_or_equal' => ':attribute tidak boleh tanggal yang sudah lewat.',
|
|
'image' => ':attribute harus berupa file gambar.',
|
|
'mimes' => 'Format :attribute harus jpeg, png, atau jpg.',
|
|
'bukti_bayar.max' => 'Ukuran :attribute maksimal adalah 2MB.',
|
|
'waktu_ambil.after_or_equal' => 'Jam operasional kami mulai pukul 09:00.',
|
|
'waktu_ambil.before_or_equal' => 'Jam operasional kami berakhir pukul 21:00.',
|
|
|
|
];
|
|
}
|
|
|
|
public function attributes(): array
|
|
{
|
|
return [
|
|
'nama' => 'nama pemesan',
|
|
'no_wa' => 'nomor WhatsApp',
|
|
'tgl_ambil' => 'tanggal pengambilan',
|
|
'waktu_ambil' => 'waktu pengambilan',
|
|
'bukti_bayar' => 'bukti pembayaran',
|
|
'ucapan' => 'kartu ucapan',
|
|
];
|
|
}
|
|
}
|