const nx = require('@nx/eslint-plugin');
const baseConfig = require('../../eslint.config.js');

module.exports = [
  ...baseConfig,
  ...nx.configs['flat/angular'],
  ...nx.configs['flat/angular-template'],
  {
    files: ['**/*.ts'],
    rules: {
      '@angular-eslint/directive-selector': [
        'error',
        {
          type: 'attribute',
          prefix: 'app',
          style: 'camelCase',
        },
      ],
      '@angular-eslint/component-selector': [
        'error',
        {
          type: 'element',
          prefix: 'app',
          style: 'kebab-case',
        },
      ],
    },
  },
  {
    files: ['**/*.ts'],
    rules: {
      '@typescript-eslint/no-unused-expressions': 'warn',
      'prefer-const': 'warn',
      '@angular-eslint/contextual-lifecycle': 'warn',
      '@typescript-eslint/no-explicit-any': 'warn',
      '@angular-eslint/no-empty-lifecycle-method': 'warn',
      '@typescript-eslint/no-inferrable-types': 'warn',
      '@angular-eslint/component-selector': 'warn',
      '@angular-eslint/prefer-standalone': 'warn',
      '@typescript-eslint/no-inferrable-types': 'warn',
      'no-empty-function': 'warn',
      '@typescript-eslint/no-empty-function': 'warn',
      '@typescript-eslint/no-unused-vars': 'warn',
      '@angular-eslint/directive-selector': 'warn',
    },
  },
  {
    files: ['**/*.html'],
    // Override or add rules here
    rules: {
      '@angular-eslint/template/elements-content': 'warn',
      '@angular-eslint/template/no-autofocus': 'warn',
    },
  },
];
