<?php
require_once dirname(__FILE__) . '/../config.php';

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

// Acepta tanto los nombres del PHP original como los que envia la app movil
$actual = trim($b['passActual'] ?? ($b['password_actual'] ?? ''));
$nuevo  = trim($b['passNueva'] ?? ($b['password_nuevo'] ?? ''));

if (!$actual || !$nuevo)       { jsonErr(400, 'Se requieren contrasena actual y nueva.'); }
if (strlen($nuevo) < 6)        { jsonErr(400, 'La nueva contrasena debe tener al menos 6 caracteres.'); }

$stmt = $db->prepare('SELECT passw FROM usuario WHERE idusuario = ? LIMIT 1');
$stmt->execute(array($idusuario));
$row  = $stmt->fetch();

if (!$row || $row['passw'] !== $actual) { jsonErr(401, 'La contrasena actual es incorrecta.'); }

$db->prepare('UPDATE usuario SET passw = ? WHERE idusuario = ?')
   ->execute(array($nuevo, $idusuario));

jsonOk(array('mensaje' => 'Contrasena actualizada correctamente.'));
