export async function registerSecurityHeaders(fastify) {
  fastify.addHook('onSend', async (request, reply) => {
    reply.header('X-Content-Type-Options', 'nosniff')
    reply.header('X-Frame-Options', 'DENY')
    reply.header('X-XSS-Protection', '0')
    reply.header('Referrer-Policy', 'strict-origin-when-cross-origin')
    reply.header('Permissions-Policy', 'camera=(), microphone=(), geolocation=()')

    const cspDirectives = [
      "default-src 'self'",
      "script-src 'self' https://*.yookassa.ru https://*.vk.com https://oauth.yandex.ru",
      "style-src 'self' 'unsafe-inline' https://fonts.googleapis.com",
      "img-src 'self' data: blob: https://tile.openstreetmap.org https://*.yookassa.ru https://*.vk.com https://oauth.yandex.ru",
      "font-src 'self' https://fonts.gstatic.com",
      "connect-src 'self' https://*.yookassa.ru https://*.vk.com https://oauth.yandex.ru",
      'frame-src https://*.yookassa.ru',
      "object-src 'none'",
      "base-uri 'self'",
      "form-action 'self'",
    ].join('; ')

    reply.header('Content-Security-Policy', cspDirectives)
  })
}
