<?php
require_once dirname(__FILE__) . '/../config.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') { jsonErr(405, 'Metodo no permitido.'); }
$b    = body();
$user = strtoupper(trim($b['nombre_usuario'] ?? ''));
$pass = trim($b['password'] ?? '');
if (!$user || !$pass) { jsonErr(400, 'Usuario y contrasena requeridos.'); }
$db   = getDB();
$stmt = $db->prepare(
    'SELECT u.idusuario, u.nom_usr, u.passw, u.rango_idrango AS rango,
            u.inversionista_id_inver AS idinv,
            i.nombre, i.appat, i.apmat, i.referencia,
            i.email, i.tel1, i.tel2, i.wa,
            i.domicilio, i.colonia, i.cp, i.ciudad,
            i.estados_idestado, i.pais_idpais,
            i.edociv_idedociv, i.nocuenta,
            i.banco_idbanco, i.isVip, i.tipo,
            i.estatus_idestatus AS estatus, i.depo,
            i.idprom, i.estampa, i.rfc,
            i.centros_idcd, i.califico,
            b.nombre AS nombre_banco,
            e.nombre AS nombre_estado
     FROM usuario u
     INNER JOIN inversionista i ON u.inversionista_id_inver = i.id_inver
     LEFT  JOIN banco   b       ON i.banco_idbanco    = b.idbanco
     LEFT  JOIN estados e       ON e.idestado          = i.estados_idestado
     WHERE u.nom_usr = ?
     LIMIT 1'
);
$stmt->execute(array($user));
$row = $stmt->fetch();
if (!$row)                         { jsonErr(401, 'Usuario no encontrado.'); }
if ($row['passw'] !== $pass)       { jsonErr(401, 'Contrasena incorrecta.'); }
if ((int)$row['estatus'] === 0)    { jsonErr(403, 'Cuenta inactiva. Contacta a tu centro de distribucion.'); }
$token = makeJWT(array(
    'idusuario' => $row['idusuario'],
    'idinv'     => $row['idinv'],
    'nom_usr'   => $row['nom_usr'],
    'rango'     => $row['rango'],
));
jsonOk(array(
    'token' => $token,
    'distribuidor' => array(
        // Identificadores
        'id_inver'          => (int)$row['idinv'],
        'idinv'             => (int)$row['idinv'],
        'idusuario'         => (int)$row['idusuario'],
        'nombre_usuario'    => $row['nom_usr'],
        'rfc'               => $row['rfc'],
        // Nombre
        'nombre'            => $row['nombre'],
        'appat'             => $row['appat'],
        'apmat'             => $row['apmat'],
        'nombre_completo'   => trim($row['nombre'] . ' ' . $row['appat'] . ' ' . $row['apmat']),
        'referencia'        => $row['referencia'],
        // Contacto (nombres reales de columna)
        'email'             => $row['email'],
        'tel1'              => $row['tel1'],
        'tel2'              => $row['tel2'],
        'wa'                => $row['wa'],
        // Dirección (nombres reales de columna)
        'domicilio'         => $row['domicilio'],
        'colonia'           => $row['colonia'],
        'cp'                => (int)$row['cp'],
        'ciudad'            => $row['ciudad'],
        'estados_idestados' => (int)$row['estados_idestado'],
        'estados_idestado'  => (int)$row['estados_idestado'],
        'nombre_estado'     => $row['nombre_estado'],
        'pais_idpais'       => (int)$row['pais_idpais'],
        'edociv_idedociv'   => (int)$row['edociv_idedociv'],
        // Banco
        'nocuenta'          => $row['nocuenta'],
        'banco_idbanco'     => (int)$row['banco_idbanco'],
        'nombre_banco'      => $row['nombre_banco'],
        // Estado y tipo
        'isVip'             => (bool)$row['isVip'],
        'tipo'              => (int)$row['tipo'],
        'estatus'           => (int)$row['estatus'],
        'estatus_idestatus' => (int)$row['estatus'],
        'depo'              => $row['depo'],
        'idprom'            => (int)$row['idprom'],
        'estampa'           => $row['estampa'],
        'rango'             => (int)$row['rango'],
        'centros_idcd'      => (int)$row['centros_idcd'],
        'califico'          => $row['califico'],
    ),
));
