// ESLint del monorepo: reglas CAZA-BUGS, no estetica (el formato lo cuida el
// editor). Sin reglas type-aware a proposito: la pasada queda rapida y el
// typecheck estricto ya cubre esa parte. Corre en el CI en cada push.
module.exports = {
  root: true,
  env: { es2022: true, node: true, browser: true },
  parser: '@typescript-eslint/parser',
  parserOptions: { ecmaVersion: 2022, sourceType: 'module', ecmaFeatures: { jsx: true } },
  plugins: ['@typescript-eslint', 'react-hooks'],
  extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'],
  ignorePatterns: [
    'dist',
    'dist-exe',
    'node_modules',
    // Generado por supabase gen types: no se lintea lo que no se edita a mano.
    '**/database.types.ts',
  ],
  rules: {
    // Variables/argumentos que empiezan con _ son "ignorado a proposito".
    '@typescript-eslint/no-unused-vars': [
      'error',
      { argsIgnorePattern: '^_', varsIgnorePattern: '^_', caughtErrors: 'none' },
    ],
  },
  overrides: [
    {
      // Solo las apps React llevan las reglas de hooks (bugs reales de renders).
      files: ['apps/restaurante/**/*.{ts,tsx}', 'apps/cliente/**/*.{ts,tsx}', 'apps/repartidor/**/*.{ts,tsx}'],
      rules: {
        'react-hooks/rules-of-hooks': 'error',
        'react-hooks/exhaustive-deps': 'warn',
      },
    },
  ],
};
