#!/bin/sh

# Script estricto para archivos nuevos - falla el job si hay problemas
set -eu

. "$(dirname "$0")/common.sh"

PHP_FILES="$(list_new_files \
    '*.php' \
    ':!vendor/**' \
    ':!node_modules/**' \
    ':!storage/**' \
    ':!bootstrap/cache/**' \
    ':!public/**' | tr '\n' ' ')"

if [ -z "${PHP_FILES}" ]; then
    echo "No hay archivos PHP nuevos para validar estilo."
    exit 0
fi

if ! command -v php-cs-fixer >/dev/null 2>&1; then
    echo "php-cs-fixer no esta instalado en la imagen del job."
    exit 1
fi

echo "=== VERIFICACIÓN ESTRICTA - Archivos nuevos ==="
echo "Validando estilo en: ${PHP_FILES}"

ERRORS=0
for file in ${PHP_FILES}; do
    if ! php-cs-fixer fix \
        --dry-run \
        --diff \
        --using-cache=no \
        --allow-risky=yes \
        --rules='@PSR12,array_syntax,no_unused_imports,ordered_imports,single_quote,trailing_comma_in_multiline' \
        "${file}"; then
        ERRORS=$((ERRORS + 1))
        echo "❌ ERROR en archivo nuevo: ${file}"
    fi
done

if [ ${ERRORS} -gt 0 ]; then
    echo ""
    echo "❌ Se encontraron errores de estilo en ${ERRORS} archivo(s) nuevo(s)."
    echo "Los archivos nuevos deben cumplir con PSR12."
    exit 1
fi

echo "✅ Todos los archivos nuevos cumplen con el estilo requerido."
