diff --git a/proyek-frontend/app/pages/form/undangan-pernikahan-premium.vue b/proyek-frontend/app/pages/form/undangan-pernikahan-premium.vue
index bc1b6ab..80449e9 100644
--- a/proyek-frontend/app/pages/form/undangan-pernikahan-premium.vue
+++ b/proyek-frontend/app/pages/form/undangan-pernikahan-premium.vue
@@ -12,12 +12,26 @@
@@ -29,20 +43,41 @@
@@ -50,45 +85,205 @@
+
+
+ 📅 Detail Acara
+
+
+
+
+
+
+
+
+
+
Hitung Mundur
+
+
+
+
+
+
+
+
@@ -107,7 +302,7 @@
/>
-
-
-
+
+ const removeFile = (index) => {
+ form.value.foto.splice(index, 1)
+ previews.value.splice(index, 1)
+ }
+
+ const konfirmasi = async () => {
+ try {
+ // Basic client-side validation
+ if (!form.value.nama_pemesan || !form.value.email) {
+ alert('Harap isi semua kolom wajib (Nama Pemesan, Email)!')
+ return
+ }
+
+ const data = new FormData()
+ data.append('nama_pemesan', form.value.nama_pemesan)
+ data.append('email', form.value.email)
+ data.append('no_tlpn', form.value.no_tlpn)
+ data.append('template_slug', 'undangan-pernikahan-premium')
+
+ // Append form fields individually to ensure Laravel receives them as an array
+ for (const [key, value] of Object.entries(form.value.form)) {
+ data.append(`form[${key}]`, value)
+ }
+
+ form.value.foto.forEach((file, index) => {
+ data.append(`foto[${index}]`, file)
+ })
+
+ console.log([...data]) // untuk debugging
+
+ const res = await fetch('http://localhost:8000/api/pelanggans', {
+ method: 'POST',
+ body: data
+ })
+
+ const result = await res.json()
+
+ if (!res.ok) {
+ if (res.status === 422) {
+ const errors = result.errors || {}
+ const errorMessages = Object.values(errors).flat().join('\n')
+ throw new Error(errorMessages || result.message || 'Validasi gagal')
+ }
+ if (res.status === 404) {
+ throw new Error(result.message || 'Template tidak ditemukan')
+ }
+ throw new Error(result.message || 'Gagal mengirim data')
+ }
+
+ alert(result.message || 'Data berhasil disimpan!')
+ router.push('/')
+ } catch (err) {
+ console.error(err)
+ alert('Terjadi kesalahan: ' + err.message)
+ }
+ }
+
+ const batal = () => router.back()
+
\ No newline at end of file