<?php
// CORS y headers
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Methods: POST, OPTIONS");
header("Content-Type: application/json");
date_default_timezone_set('America/Bogota');

// Conexión a la base de datos
require_once(__DIR__ . '/../config.php');

// ✅ Establecer utf8mb4 para soporte de emojis
$mysqli->set_charset("utf8mb4");

// Leer JSON del cuerpo
$input = json_decode(file_get_contents("php://input"), true);

// Validar campos requeridos
if (
    !isset($input['slug']) || 
    !isset($input['telefono']) || 
    !isset($input['mensaje']) || 
    !isset($input['tipo']) || 
    !isset($input['de']) || 
    !isset($input['fecha'])
) {
    echo json_encode(['success' => false, 'message' => 'Faltan parámetros obligatorios']);
    exit;
}

// Sanitizar datos
$slug = trim($input['slug']);
$telefono = trim($input['telefono']);
$nombre = trim($input['nombre'] ?? '');
$foto = trim($input['foto'] ?? '');
$mensaje = $input['mensaje'] ?? '';
$tipo = $input['tipo'] ?? '';
$de = $input['de'] ?? '';
$fechaOriginal = $input['fecha'] ?? '';
$archivo = $input['archivo'] ?? '';

// Correcciones lógicas
if ($nombre === '') {
    $nombre = 'SISTEMA';
}
if (strtolower(trim($de)) === 'yo') {
    $de = 'SISTEMA';
}
if ($foto === null) {
    $foto = '';
}

// Convertir fecha ISO a formato MySQL
try {
    $fecha = (new DateTime($fechaOriginal))->format('Y-m-d H:i:s');
} catch (Exception $e) {
    $fecha = date('Y-m-d H:i:s'); // fallback
}

// Insertar mensaje
$stmt = $mysqli->prepare("INSERT INTO mensajes_chat 
(slug_tienda, telefono, nombre, foto, mensaje, tipo, de_quien, fecha, archivo, estado)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NULL)");

if (!$stmt) {
    echo json_encode(['success' => false, 'message' => 'Error en prepare: ' . $mysqli->error]);
    exit;
}

$stmt->bind_param("sssssssss", 
    $slug,
    $telefono,
    $nombre,
    $foto,
    $mensaje,
    $tipo,
    $de,
    $fecha,
    $archivo
);

// Ejecutar
if ($stmt->execute()) {
    echo json_encode(['success' => true, 'message' => 'Mensaje guardado']);
} else {
    echo json_encode(['success' => false, 'message' => 'Error al guardar: ' . $stmt->error]);
}

$stmt->close();
