import { dirname } from "path";
import { fileURLToPath } from "url";
import { FlatCompat } from "@eslint/eslintrc";

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const compat = new FlatCompat({
  baseDirectory: __dirname,
});

const eslintConfig = [
  ...compat.extends('next/core-web-vitals', 'next/typescript'),
  {
    rules: {
      // Désactiver les avertissements de console
      'no-console': 'off',
      // Désactiver les avertissements de variables non utilisées
      '@typescript-eslint/no-unused-vars': 'off',
      // Désactiver les avertissements de type any
      '@typescript-eslint/no-explicit-any': 'off',
      // Désactiver les avertissements de promesses non gérées
      '@typescript-eslint/no-floating-promises': 'off',
      // Désactiver les avertissements de try-catch vides
      'no-empty': 'off',
      // Désactiver les avertissements de variables any implicites
      '@typescript-eslint/no-unsafe-assignment': 'off',
      '@typescript-eslint/no-unsafe-member-access': 'off',
      // Désactiver les avertissements de return async
      '@typescript-eslint/return-await': 'off',
      // Désactiver les avertissements de dépendances dans useEffect
      'react-hooks/exhaustive-deps': 'off',
      // Désactiver les avertissements d'interfaces vides
      '@typescript-eslint/no-empty-interface': 'off',
      '@typescript-eslint/no-empty-object-type': 'off',
      // Désactiver les erreurs de "escaped"
      'no-useless-escape': 'off',
      // Désactiver les erreurs d'échappement des apostrophes
      'react/no-unescaped-entities': 'off',
    },
  },
]

export default eslintConfig;
