diff --git a/app/Http/Controllers/User/PesanBuketController.php b/app/Http/Controllers/User/PesanBuketController.php index 8637ef3..2142c2e 100755 --- a/app/Http/Controllers/User/PesanBuketController.php +++ b/app/Http/Controllers/User/PesanBuketController.php @@ -10,6 +10,8 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; +use App\Http\Requests\User\PesanBuketRequest; +use App\Services\WhatsAppService; class PesanBuketController extends Controller { diff --git a/app/Http/Requests/User/PesanBuketRequest.php b/app/Http/Requests/User/PesanBuketRequest.php new file mode 100644 index 0000000..b4f88a6 --- /dev/null +++ b/app/Http/Requests/User/PesanBuketRequest.php @@ -0,0 +1,63 @@ + 'required|exists:bukets,id_buket', // Tambahan validasi keamanan + 'nama' => 'required|string|min:3|max:100', + '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:255', + 'ucapan' => 'nullable|string|max:500', + ]; + } + + public function messages(): array + { + return [ + 'required' => 'Kolom :attribute wajib diisi.', + 'string' => 'Input :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.', + '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', + ]; + } +}