diff --git a/src/pages/kaza.js b/src/pages/kaza.js index e8b89f7..8e8be9f 100755 --- a/src/pages/kaza.js +++ b/src/pages/kaza.js @@ -149,13 +149,14 @@ export function renderKaza(pb) { new CustomEvent("navigate", { detail: "kaza" }), ); } catch (err) { - alert("Profil kaydedilemedi."); + alert( + "Profil kaydedilemedi. PocketBase alan adlarını kontrol edin.", + ); } }); } else { refreshKazaStats(container, pb); - // Hesapla & Kaydet Butonu Tıklanması container .querySelector("#calcAndSaveBtn") ?.addEventListener("click", async () => { @@ -164,13 +165,21 @@ export function renderKaza(pb) { "Kaza borçlarınız doğum tarihinize göre yeniden hesaplanıp veritabanına sabitlenecek. Onaylıyor musunuz?", ) ) { - await initAndSaveInitialKaza(pb, birthDate, gender); - await refreshKazaStats(container, pb); - showKazaMsg( - container.querySelector("#kazaMsg"), - "Kaza borçları hesaplandı ve PocketBase'e kaydedildi!", - true, - ); + const res = await initAndSaveInitialKaza(pb, birthDate, gender); + if (res.success) { + await refreshKazaStats(container, pb); + showKazaMsg( + container.querySelector("#kazaMsg"), + `✓ Kaza borçları hesaplandı (${res.days} gün = ${res.fajr} vakit) ve PocketBase'e kaydedildi!`, + true, + ); + } else { + showKazaMsg( + container.querySelector("#kazaMsg"), + `Hata: ${res.error}`, + false, + ); + } } }); @@ -190,38 +199,60 @@ export function renderKaza(pb) { }; } -// Otomatik hesaplayıp PocketBase'e toplam borç olarak kaydetme async function initAndSaveInitialKaza(pb, birthDate, gender) { - const calc = calculateMissedPrayers(birthDate, gender, 12); - const userId = pb.authStore.model.id; - - let userRecord = null; try { - userRecord = await pb - .collection("kaza_logs") - .getFirstListItem(`user = "${userId}"`); - } catch {} + const calc = calculateMissedPrayers(birthDate, gender, 12); - const initialData = { - user: userId, - target_fajr: calc.fajr, - target_dhuhr: calc.dhuhr, - target_asr: calc.asr, - target_maghrib: calc.maghrib, - target_isha: calc.isha, - target_vitr: calc.vitr, - fajr: userRecord?.fajr || 0, - dhuhr: userRecord?.dhuhr || 0, - asr: userRecord?.asr || 0, - maghrib: userRecord?.maghrib || 0, - isha: userRecord?.isha || 0, - vitr: userRecord?.vitr || 0, - }; + if (!calc || calc.fajr === 0) { + return { + success: false, + error: + "Hesaplanan gün sayısı 0 çıktı. Doğum tarihinizin doğrulunu kontrol edin.", + }; + } - if (userRecord) { - await pb.collection("kaza_logs").update(userRecord.id, initialData); - } else { - await pb.collection("kaza_logs").create(initialData); + const userId = pb.authStore.model.id; + let userRecord = null; + + try { + userRecord = await pb + .collection("kaza_logs") + .getFirstListItem(`user = "${userId}"`); + } catch (e) { + // Kayıt bulunamazsa sorun yok, yenisini oluşturacağız + } + + const initialData = { + user: userId, + target_fajr: calc.fajr, + target_dhuhr: calc.dhuhr, + target_asr: calc.asr, + target_maghrib: calc.maghrib, + target_isha: calc.isha, + target_vitr: calc.vitr, + fajr: userRecord?.fajr || 0, + dhuhr: userRecord?.dhuhr || 0, + asr: userRecord?.asr || 0, + maghrib: userRecord?.maghrib || 0, + isha: userRecord?.isha || 0, + vitr: userRecord?.vitr || 0, + }; + + if (userRecord) { + await pb.collection("kaza_logs").update(userRecord.id, initialData); + } else { + await pb.collection("kaza_logs").create(initialData); + } + + return { success: true, days: calc.days, fajr: calc.fajr }; + } catch (err) { + console.error("PocketBase Kayıt Hatası:", err); + return { + success: false, + error: + err?.message || + "PocketBase kayıt yaparken hata oluştu. kaza_logs koleksiyon izinlerini (API Rules) ve alan adlarını kontrol edin.", + }; } } @@ -239,8 +270,10 @@ async function updateKazaCount(container, pb, direction) { .getFirstListItem(`user = "${userId}"`); if (!userRecord) { - alert( - "Önce 'Kaza Borçlarını Otomatik Hesapla & Kaydet' butonuna basmalısınız.", + showKazaMsg( + msg, + "Önce yukarıdaki 'Hesapla & Kaydet' butonuna tıklamalısınız.", + false, ); return; } @@ -264,7 +297,7 @@ async function updateKazaCount(container, pb, direction) { await refreshKazaStats(container, pb); } catch (err) { console.error("Güncelleme hatası:", err); - showKazaMsg(msg, "Güncelleme başarısız. Lütfen kontrol edin.", false); + showKazaMsg(msg, "Güncelleme başarısız.", false); } } @@ -279,7 +312,6 @@ async function refreshKazaStats(container, pb) { } catch (err) {} if (!userRecord) { - // Kayıt yoksa kartları sıfır göster PRAYERS.forEach((p) => { const remainEl = container.querySelector(`#remaining-${p.id}`); const completedEl = container.querySelector(`#completed-${p.id}`); @@ -341,6 +373,6 @@ async function refreshKazaStats(container, pb) { function showKazaMsg(el, text, success) { if (!el) return; el.textContent = text; - el.className = `text-xs mt-3 ${success ? "text-emerald-400 font-medium" : "text-rose-400"}`; + el.className = `text-xs mt-3 ${success ? "text-emerald-400 font-medium" : "text-rose-400 font-medium"}`; el.classList.remove("hidden"); }