<?php
// profile/history.php
// Devuelve el historial de cambios del distribuidor (banco y contacto).
require_once dirname(__FILE__) . '/../config.php';

if ($_SERVER['REQUEST_METHOD'] !== 'GET') { jsonErr(405, 'Metodo no permitido.'); }
$jwt   = auth();
$idinv = (int)$jwt['idinv'];
$db    = getDB();

// Crear tabla si no existe aún
$db->exec("CREATE TABLE IF NOT EXISTS audit_cambios (
    id          INT UNSIGNED NOT NULL AUTO_INCREMENT,
    id_inver    INT NOT NULL,
    tipo        VARCHAR(30) NOT NULL,
    campo       VARCHAR(50) NOT NULL,
    valor_ant   TEXT,
    valor_nuevo TEXT,
    ip          VARCHAR(45),
    fecha       DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    KEY idx_inver_tipo (id_inver, tipo),
    KEY idx_fecha (fecha)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");

$stmt = $db->prepare(
    'SELECT id, tipo, campo, valor_ant, valor_nuevo, ip, fecha
     FROM audit_cambios
     WHERE id_inver = ?
     ORDER BY fecha DESC
     LIMIT 100'
);
$stmt->execute([$idinv]);
$rows = $stmt->fetchAll();

// Normalizar
$result = array_map(function($r) {
    return [
        'id'          => (int)$r['id'],
        'tipo'        => $r['tipo'],
        'campo'       => $r['campo'],
        'valor_ant'   => $r['valor_ant'],
        'valor_nuevo' => $r['valor_nuevo'],
        'ip'          => $r['ip'],
        'fecha'       => $r['fecha'],
    ];
}, $rows);

jsonOk(['historial' => $result]);
