'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', ]; } }