#!/usr/bin/env bash
set -euo pipefail
cd /home/iotcuboc/pyme || exit 1

echo "=============================================="
echo " ElaboraPro Venta Directa V4.15.1"
echo " Abrir -> Editar verde"
echo "=============================================="

F="public/venta_directa_v3.php"
[ -f "$F" ] || { echo "ERROR: no existe $F"; exit 1; }

TS=$(date +%Y%m%d_%H%M%S)
B="backups/elaborapro_venta_directa_v4_15_1_$TS"
mkdir -p "$B"
cp -p "$F" "$B/"
echo "Backup: /home/iotcuboc/pyme/$B"

TMP=$(mktemp)
trap 'rm -f "$TMP"' EXIT
cp -p "$F" "$TMP"

if ! TMP="$TMP" php <<'PHP'
<?php
$f=getenv('TMP');
$s=file_get_contents($f);
if($s===false){fwrite(STDERR,"ERROR leyendo archivo.\n");exit(10);}
if(strpos($s,'ELABORAPRO_VENTA_DIRECTA_V4_15_1')!==false){
    fwrite(STDERR,"ERROR: V4.15.1 ya aplicado.\n");exit(11);
}

$old='<a class="badge" href="<?= h(app_url(\'venta_directa_v3.php?id=\'.(int)$fila[\'id\'])) ?>">Abrir</a>';
$new='<a class="btn ep-direct-sale-edit" href="<?= h(app_url(\'venta_directa_v3.php?id=\'.(int)$fila[\'id\'])) ?>">Editar</a>';

$n=substr_count($s,$old);
if($n!==1){
    fwrite(STDERR,"ERROR: patrón exacto Abrir encontrado $n veces.\n");
    exit(12);
}
$s=str_replace($old,$new,$s);

$css=<<<'HTML'

<style>
/* ELABORAPRO_VENTA_DIRECTA_V4_15_1 */
body.op3-body .op3-main a.btn.ep-direct-sale-edit{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:34px !important;
    padding:6px 12px !important;
    border-radius:8px !important;
    background:#BFE3C9 !important;
    border:1px solid #A8D5B5 !important;
    color:#205C36 !important;
    text-decoration:none !important;
    white-space:nowrap !important;
    box-shadow:none !important;
    font-weight:600 !important;
}
body.op3-body .op3-main a.btn.ep-direct-sale-edit:hover{
    background:#AEDAB9 !important;
    border-color:#9BCDAA !important;
    color:#205C36 !important;
}
</style>

HTML;

$footer='~<\?php\s+render_footer_v3\(\);\s*\?>~';
if(preg_match_all($footer,$s)!==1){
    fwrite(STDERR,"ERROR: footer inesperado.\n");exit(13);
}
$s=preg_replace($footer,$css.'<?php render_footer_v3(); ?>',$s,1);

foreach([
    'ELABORAPRO_VENTA_DIRECTA_V4_15_1',
    'class="btn ep-direct-sale-edit"',
    '>Editar</a>',
    "venta_directa_v3.php?id="
] as $x){
    if(strpos($s,$x)===false){
        fwrite(STDERR,"ERROR validación: $x\n");exit(14);
    }
}

if(strpos($s,'>Abrir</a>')!==false){
    fwrite(STDERR,"ERROR: todavía existe el botón Abrir.\n");exit(15);
}

if(file_put_contents($f,$s)===false){
    fwrite(STDERR,"ERROR escribiendo temporal.\n");exit(16);
}
echo "OK: V4.15.1 preparado en temporal.\n";
PHP
then
    echo "ERROR: parche abortado. No se instaló ningún cambio."
    exit 1
fi

echo
echo "===== LINT TEMPORAL ====="
php -l "$TMP"

echo
echo "===== VALIDACION ====="
grep -n -B2 -A3 -E 'Editar|ep-direct-sale-edit|ELABORAPRO_VENTA_DIRECTA_V4_15_1' "$TMP" | tail -40

echo
echo "===== INSTALANDO ====="
cp -p "$TMP" "$F"

echo
echo "===== LINT FINAL ====="
if ! php -l "$F"; then
    echo "ERROR: restaurando respaldo..."
    cp -p "$B/venta_directa_v3.php" "$F"
    exit 1
fi

echo
echo "=============================================="
echo " OK - Venta Directa V4.15.1 instalado"
echo " Abrir -> Editar"
echo " Editar = verde pastel"
echo " Destino original preservado"
echo " Respaldo: /home/iotcuboc/pyme/$B"
echo "=============================================="
