// Protège toute l'API (sauf login/me) derrière la session mot de passe partagé.
import { isAuthenticated } from '../lib/session'

const PUBLIC_API = new Set(['/api/auth/login', '/api/auth/me'])

export default defineEventHandler((event) => {
  const path = event.path.split('?')[0]
  if (!path.startsWith('/api/')) return
  if (PUBLIC_API.has(path)) return
  // Vue publique : /api/public/* est ouvert (chaque endpoint vérifie lui-même
  // que le portfolio ciblé a publicShare actif).
  if (path.startsWith('/api/public/')) return
  if (!isAuthenticated(event)) {
    throw createError({ statusCode: 401, statusMessage: 'Authentification requise' })
  }
})
