import { verifyToken, getUserFromToken } from '../utils/auth.js'

export default defineEventHandler(async (event) => {
  try {
    const token = getCookie(event, 'auth_token')

    if (!token) {
      throw createError({ statusCode: 401, message: 'Nicht authentifiziert.' })
    }

    const decoded = verifyToken(token)
    if (!decoded) {
      throw createError({ statusCode: 401, message: 'Ungültiges Token.' })
    }

    const user = await getUserFromToken(token)
    if (!user) {
      throw createError({ statusCode: 404, message: 'Benutzer nicht gefunden.' })
    }

    // Rückgabe des eigenen Profils inkl. Sichtbarkeitspräferenzen
    return {
      success: true,
      user: {
        id: user.id,
        name: user.name,
        email: user.email,
        phone: user.phone || '',
        geburtsdatum: user.geburtsdatum || '',
  visibility: Object.assign({ showBirthday: true }, (user.visibility || {}))
      }
    }
  } catch (error) {
    console.error('Fehler beim Laden des Profil:', error)
    throw error
  }
})

