import PocketBase from 'https://cdnjs.cloudflare.com/ajax/libs/pocketbase/0.21.1/pocketbase.es.mjs';

// 1. PocketBase Bağlantısı
// 'https://pocketbase.batuhanerkek.com' kısmını kendi domaininle değiştir
const pb = new PocketBase('https://pocketbase.batuhanerkek.com');

const loginCard = document.getElementById("login-card");
const adminPanel = document.getElementById("admin-panel");
const loginForm = document.getElementById("login-form");
const blogForm = document.getElementById("blog-form");
const logoutBtn = document.getElementById("logout-btn");
const postsList = document.getElementById("posts-list");
const tagsInput = document.getElementById("tags-input");
const tagsList = document.getElementById("tags-list");

let currentTags = [];

// Panel Görünümünü Ayarla
function setAuthState(isLoggedIn) {
  if (isLoggedIn) {
    loginCard.classList.add("hidden");
    adminPanel.classList.remove("hidden");
    loadPosts();
  } else {
    loginCard.classList.remove("hidden");
    adminPanel.classList.add("hidden");
  }
}

// 2. Giriş Yapma (PocketBase Auth)
loginForm.addEventListener("submit", async (event) => {
  event.preventDefault();
  const formData = new FormData(loginForm);
  try {
    await pb.collection('users').authWithPassword(
      formData.get("email"),
      formData.get("password")
    );
    loginForm.reset();
    setAuthState(true);
  } catch (error) {
    alert("Giriş başarısız: " + error.message);
  }
});

// 3. Çıkış Yapma
logoutBtn.addEventListener("click", () => {
  pb.authStore.clear();
  setAuthState(false);
});

// 4. Yeni Yazı Kaydetme
blogForm.addEventListener("submit", async (event) => {
  event.preventDefault();
  const formData = new FormData(blogForm);
  
  const newPost = {
    title: formData.get("title").trim(),
    tags: JSON.stringify(currentTags), // PocketBase için dizi formatı
    summary: formData.get("summary").trim(),
    content: formData.get("content").trim(),
    date: formData.get("date"),
    image: formData.get("image").trim(),
  };

  try {
    await pb.collection('posts').create(newPost);
    blogForm.reset();
    currentTags = [];
    renderTags();
    loadPosts();
    alert("Yazı başarıyla kaydedildi!");
  } catch (error) {
    alert("Kaydedilemedi: " + error.message);
  }
});

// 5. Yazıları Listeleme
async function loadPosts() {
  try {
    const records = await pb.collection('posts').getFullList({
      sort: '-created',
    });
    
    postsList.innerHTML = records.map(post => `
      <div class="post-item">
        <span>${post.title}</span>
        <button onclick="deletePost('${post.id}')">Sil</button>
      </div>
    `).join('');
  } catch (error) {
    console.error("Yazılar yüklenemedi:", error);
  }
}

// Yazı Silme Fonksiyonu (Global yapıyoruz)
window.deletePost = async (id) => {
  if (confirm("Bu yazıyı silmek istediğinize emin misiniz?")) {
    try {
      await pb.collection('posts').delete(id);
      loadPosts();
    } catch (error) {
      alert("Silinemedi: " + error.message);
    }
  }
};

// Etiket Yönetimi
function renderTags() {
  tagsList.innerHTML = currentTags.map((tag, index) => `
    <span class="tag">${tag} <i onclick="removeTag(${index})">&times;</i></span>
  `).join('');
}

window.removeTag = (index) => {
  currentTags.splice(index, 1);
  renderTags();
};

tagsInput.addEventListener("keydown", (event) => {
  if (event.key === "Enter") {
    event.preventDefault();
    const tag = tagsInput.value.trim();
    if (tag && !currentTags.includes(tag)) {
      currentTags.push(tag);
      renderTags();
    }
    tagsInput.value = "";
  }
});

// Sayfa yüklendiğinde oturum kontrolü
if (pb.authStore.isValid) {
  setAuthState(true);
}