<?php
/** Propuesta/aplicación segura del backfill de _cita_evangelio. */
/** Uso: wp eval-file scripts/backfill_evangelio_meta.php [--apply] --path=/var/www/html */

// WP-CLI no reenvía de forma consistente argumentos desconocidos a eval-file.
// El modo escritura exige por tanto una intención explícita y auditable:
// FEA_EVANGELIO_APPLY=1 wp eval-file scripts/backfill_evangelio_meta.php
$apply = getenv('FEA_EVANGELIO_APPLY') === '1'
    || in_array('--apply', $_SERVER['argv'] ?? [], true);
$posts = get_posts([
    'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => -1,
    'category__in' => fea_evangelio_comment_categories(),
    'meta_query' => [['key' => '_cita_evangelio', 'compare' => 'NOT EXISTS']],
    'orderby' => 'date', 'order' => 'ASC',
]);
$out = fopen('php://output', 'w');
fputcsv($out, ['post_id', 'fecha', 'carta_id', 'cita_propuesta', 'resultado']);
foreach ($posts as $post) {
    $before_carta = (int) get_post_meta($post->ID, '_carta_id', true);
    // Las cartas deducidas solo se proponen: la cola histórica requiere revisión humana.
    $carta_id = $before_carta ?: fea_evangelio_nearest_carta_id($post);
    $evangelios = $carta_id ? fea_evangelio_from_carta($carta_id) : [];
    $cita = $before_carta && count($evangelios) === 1 ? reset($evangelios) : '';
    $result = $cita ? ($apply ? 'aplicado' : 'propuesta') : (!$before_carta ? 'revision_manual_carta_por_fecha' : (count($evangelios) > 1 ? 'revision_manual_multi_evangelio' : 'sin_evangelio'));
    if ($apply && $cita) {
        update_post_meta($post->ID, '_cita_evangelio', $cita);
        if (!$before_carta) update_post_meta($post->ID, '_carta_id', $carta_id);
    }
    fputcsv($out, [$post->ID, $post->post_date, $carta_id ?: '', $cita, $result]);
}
