// @ts-check
import { defineConfig, envField } from 'astro/config';

import icon from 'astro-icon';
import tailwindcss from '@tailwindcss/vite';

import svelte, { vitePreprocess } from '@astrojs/svelte';

import node from '@astrojs/node';

import inoxToolsRuntimeLogger from '@inox-tools/runtime-logger';

// https://astro.build/config
export default defineConfig({
  output: 'server',
  prefetch: true,
  base: '/varo',

  security: {
    checkOrigin: false
  },

  devToolbar: {
    enabled: false
  },

  vite: {
    plugins: [tailwindcss()]
  },

  integrations: [icon(), svelte({ preprocess: vitePreprocess() }), inoxToolsRuntimeLogger()],

  env: {
    schema: {
      API_SECRET: envField.string({ context: 'server', access: 'secret', optional: true }),

      ADMIN_USER: envField.string({ context: 'server', access: 'secret', optional: true }),
      ADMIN_PASSWORD: envField.string({ context: 'server', access: 'secret', optional: true }),

      START_DATE: envField.string({ context: 'server', access: 'secret', default: '1970-01-01' }),

      WEBHOOK_ENDPOINT: envField.string({ context: 'server', access: 'secret', optional: true }),

      TEAMSPEAK_LINK: envField.string({ context: 'server', access: 'secret', default: 'http://example.com' }),
      DISCORD_LINK: envField.string({ context: 'server', access: 'secret', default: 'http://example.com' }),
      PAYPAL_LINK: envField.string({ context: 'server', access: 'secret', default: 'http://example.com' }),
      SERVER_IP: envField.string({ context: 'server', access: 'secret', default: 'http://example.com' }),

      DATABASE_URI: envField.string({ context: 'server', access: 'secret' }),

      BASE_PATH: envField.string({ context: 'server', access: 'secret', default: '/' })
    }
  },

  adapter: node({
    mode: 'standalone'
  })
});