#!/bin/sh

# Script permisivo para archivos modificados - reporta warnings sin fallar el job
set -eu

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

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

if [ -z "${PHP_FILES}" ]; then
    echo "No hay archivos PHP modificados 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 CON WARNING - Archivos modificados ==="
echo "Validando estilo en: ${PHP_FILES}"

WARNINGS=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
        WARNINGS=$((WARNINGS + 1))
        echo "⚠️  WARNING en archivo modificado: ${file}"
    fi
done

if [ ${WARNINGS} -gt 0 ]; then
    echo ""
    echo "⚠️  Se encontraron ${WARNINGS} archivo(s) modificado(s) con problemas de estilo."
    echo "Se recomienda aplicar: php-cs-fixer fix <archivo>"
    echo "Este es un WARNING para archivos existentes."
    exit 0
fi

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