/**
 * Configuration Lighthouse pour Veza V5 Ultra
 * Objectif: Score 100/100 sur tous les critères
 */

module.exports = {
  ci: {
    collect: {
      url: ['http://localhost:5173'],
      numberOfRuns: 3,
      settings: {
        chromeFlags: '--no-sandbox --disable-dev-shm-usage',
        preset: 'desktop',
      },
    },
    assert: {
      assertions: {
        'categories:performance': ['error', { minScore: 1.0 }],
        'categories:accessibility': ['error', { minScore: 1.0 }],
        'categories:best-practices': ['error', { minScore: 1.0 }],
        'categories:seo': ['error', { minScore: 1.0 }],
        'categories:pwa': ['error', { minScore: 1.0 }],
        
        // Performance spécifique
        'first-contentful-paint': ['error', { maxNumericValue: 800 }],
        'largest-contentful-paint': ['error', { maxNumericValue: 1500 }],
        'speed-index': ['error', { maxNumericValue: 1000 }],
        'cumulative-layout-shift': ['error', { maxNumericValue: 0.1 }],
        'total-blocking-time': ['error', { maxNumericValue: 200 }],
        'interactive': ['error', { maxNumericValue: 1500 }],
        
        // Bundle size
        'unused-javascript': ['warn', { maxLength: 0 }],
        'unused-css-rules': ['warn', { maxLength: 0 }],
        'render-blocking-resources': ['error', { maxLength: 0 }],
        
        // PWA
        'service-worker': 'error',
        'viewport': 'error',
        'apple-touch-icon': 'error',
        'maskable-icon': 'error',
        'splash-screen': 'error',
        'themed-omnibox': 'error',
        'content-width': 'error',
        'image-aspect-ratio': 'error',
        'installable-manifest': 'error',
        'pwa-cross-browser': 'error',
        'pwa-page-transitions': 'error',
        'pwa-each-page-has-url': 'error',
      },
    },
    upload: {
      target: 'temporary-public-storage',
    },
  },
};
