<?php
require_once 'db.php';

function initFacturacionTable() {
    $db = new Database();
    $pdo = $db->getPDO();

    try {
        // Verificar si la tabla ya existe
        $stmt = $pdo->query("SHOW TABLES LIKE 'configuracion_facturacion'");
        if ($stmt->rowCount() == 0) {
            // Crear la tabla si no existe
            $sql = "CREATE TABLE `configuracion_facturacion` (
                `id` int(11) NOT NULL AUTO_INCREMENT,
                `establecimiento` int(3) NOT NULL DEFAULT '0',
                `punto` int(3) NOT NULL DEFAULT '0',
                `factura_numero` int(8) NOT NULL DEFAULT '0',
                `tenantid` varchar(150) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
                `ruc_empresa` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
                `nombre_empresa` varchar(150) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
                `direccion_empresa` varchar(200) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
                `tel_empresa` varchar(15) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
                `email_empresa` varchar(100) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
                `api_key` varchar(255) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
                `codigo_departamento` int(3) NOT NULL DEFAULT '0',
                `descripcion_dpto` varchar(100) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
                `codigo_distrito` int(3) NOT NULL DEFAULT '0',
                `descripcion_distrito` varchar(100) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
                `codigo_ciudad` int(6) NOT NULL DEFAULT '0',
                `descripcion_ciudad` varchar(100) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
                `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
                `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
                PRIMARY KEY (`id`)
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci";

            $pdo->exec($sql);

            // Insertar datos iniciales
            $sql = "INSERT INTO configuracion_facturacion (
                establecimiento, punto, factura_numero, 
                tenantid, ruc_empresa, nombre_empresa, 
                direccion_empresa, tel_empresa, email_empresa,
                api_key, codigo_departamento, descripcion_dpto,
                codigo_distrito, descripcion_distrito,
                codigo_ciudad, descripcion_ciudad
            ) VALUES (
                1, 1, 1,
                'tenant_default', '00000000-0', 'Mi Empresa',
                'Dirección Principal', '0981000000', 'empresa@dominio.com',
                'api_key_default', 11, 'Central',
                1, 'Asunción',
                1, 'Asunción'
            )";

            $pdo->exec($sql);
            return true;
        }
        return false;
    } catch (PDOException $e) {
        error_log("Error inicializando tabla facturación: " . $e->getMessage());
        return false;
    }
}