import { defineConfig } from 'vite'

export default defineConfig({
  plugins: [],

  server: {
    port: 3456,
    open: false,
    strictPort: true,
    cors: true,
    // Proxy configuration for backend API integration
    proxy: {
      '/api': {
        target: 'http://localhost:8002',
        changeOrigin: true,
        secure: false, // Allow proxying to HTTP backend from HTTPS frontend
      }
    },
    // Hot Module Replacement configuration
    hmr: {
      protocol: 'http',
      host: 'localhost',
      port: 3456
    }
  },

  build: {
    outDir: 'dist',
    sourcemap: false,
    minify: 'terser',
    // Treat paths with /admin-ui/ prefix as external (from index.html inline scripts)
    rollupOptions: {
      external: (id) => {
        // External paths starting with /admin-ui/
        if (id.startsWith('/admin-ui/')) {
          return true
        }
        return false
      },
      output: {
        manualChunks: (id) => {
          if (id.includes('/js/core/')) return 'core'
          if (id.includes('/js/services/')) return 'services'
          if (id.includes('/js/components/')) return 'components'
        }
      }
    }
  },

  preview: {
    port: 3456,
    open: false
  },

  resolve: {
    alias: {
      '@': '/js'
    }
  }
})
