//File: frontend/app/_auth/drivers/cookieDriver.js
const API = process.env.NEXT_PUBLIC_API_BASE;

export default {
  mode: 'cookie',
  async login({ username, password }) {
    const r = await fetch(`${API}/api/auth/login`, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      credentials: 'include',         // สำคัญสำหรับคุกกี้
      body: JSON.stringify({ username, password })
    });
    if (!r.ok) throw new Error(`Login failed: ${r.status}`);
    return true; // คุกกี้ถูกตั้งแล้วโดย backend
  },
  async me() {
    const r = await fetch(`${API}/api/auth/me`, { credentials: 'include' });
    if (!r.ok) return { ok: false };
    return r.json();
  },
  async refresh() {
    // ถ้า backend ออก access ใหม่ผ่าน refresh (ในคุกกี้) ก็เรียกได้
    const r = await fetch(`${API}/api/auth/refresh`, {
      method: 'POST',
      credentials: 'include'
    });
    return r.ok;
  },
  authHeaders(h = {}) { return h; }, // คุกกี้ไม่ต้องใส่ Authorization
  credentials() { return 'include'; },
  async logout() {
    await fetch(`${API}/api/auth/logout`, { method: 'POST', credentials: 'include' });
  }
};
