<?php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Methods: POST, OPTIONS");
header("Content-Type: application/json");

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit;
}

// ✅ Conexión a la BD

require_once(__DIR__ . '/../config.php');

// --- 1. OBTENER DATOS DE LA PETICIÓN ---
 $data = json_decode(file_get_contents("php://input"), true);

// Validar que los campos requeridos existan
 $required_fields = [
    'NOMBRE_EMPRESA', 'RUT_EMPRESA', 'CORREO_EMPRESA', 
    'TELEFONO_EMPRESA', 'DIRECCION_EMPRESA', 'ESTADO_EMPRESA'
];

foreach ($required_fields as $field) {
    if (!isset($data[$field]) || trim($data[$field]) === '') {
        http_response_code(400); // Bad Request
        echo json_encode(["success" => false, "message" => "Datos incompletos: el campo '$field' es requerido."]);
        exit;
    }
}


 $imagePath = ''; // Valor por defecto si no se envía imagen
if (!empty($data['FOTO_EMPRESA'])) {
    $base64Image = $data['FOTO_EMPRESA'];
    
    // Verificar si es una imagen en formato Base64
    if (preg_match('/^data:image\/(\w+);base64,/', $base64Image, $matches)) {
        $imageType = $matches[1];
        $base64Data = substr($base64Image, strpos($base64Image, ',') + 1);
        $decodedImage = base64_decode($base64Data);

        if ($decodedImage === false) {
            http_response_code(400);
            echo json_encode(["success" => false, "message" => "La imagen enviada no es válida."]);
            exit;
        }


        $uploadDir = __DIR__ . 'https://devsoul.co/api_poligrafia/empresa_cliente/uploads/empresas/';
        if (!file_exists($uploadDir)) {
         
            mkdir($uploadDir, 0777, true);
        }

        $fileName = 'empresa_' . uniqid() . '.' . $imageType;
        $filePath = $uploadDir . $fileName;

     
        if (file_put_contents($filePath, $decodedImage)) {
            $imagePath = 'uploads/empresas/' . $fileName;
        } else {
            http_response_code(500);
            echo json_encode(["success" => false, "message" => "Error al guardar la imagen en el servidor."]);
            exit;
        }
    } else {
        http_response_code(400);
        echo json_encode(["success" => false, "message" => "Formato de imagen no reconocido."]);
        exit;
    }
}


 $sql = "
    INSERT INTO EMPRESA_CLIENTE (
        NOMBRE_EMPRESA, RUT_EMPRESA, CORREO_EMPRESA, 
        TELEFONO_EMPRESA, DIRECCION_EMPRESA, FOTO_EMPRESA, 
        ESTADO_EMPRESA
    ) VALUES (?, ?, ?, ?, ?, ?, ?)
";

 $stmt = $mysqli->prepare($sql);
if ($stmt === false) {
    http_response_code(500);
    echo json_encode(["success" => false, "message" => "Error al preparar la consulta: " . $mysqli->error]);
    exit;
}

// Asignar valores a variables para el bind_param
 $nombre = trim($data['NOMBRE_EMPRESA']);
 $rut = trim($data['RUT_EMPRESA']);
 $correo = trim($data['CORREO_EMPRESA']);
 $telefono = trim($data['TELEFONO_EMPRESA']);
 $direccion = trim($data['DIRECCION_EMPRESA']);
 $estado = (int)$data['ESTADO_EMPRESA']; // Asegurar que sea entero

// 's' para string, 'i' para integer
 $stmt->bind_param("ssssssi", $nombre, $rut, $correo, $telefono, $direccion, $imagePath, $estado);

if ($stmt->execute()) {
    $new_id = $mysqli->insert_id;
    http_response_code(201); // Created
    echo json_encode([
        "success" => true, 
        "message" => "Empresa creada exitosamente.",
        "id_empresa" => $new_id
    ]);
} else {
    http_response_code(500);
    echo json_encode(["success" => false, "message" => "Error al ejecutar la consulta: " . $stmt->error]);
}

 $stmt->close();
 $mysqli->close();

