-- Integração WooCommerce

CREATE TABLE IF NOT EXISTS woocommerce_config (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    tenant_id VARCHAR(100) NOT NULL,
    
    -- Configurações da loja
    store_url VARCHAR(500) NOT NULL,
    consumer_key VARCHAR(255) NOT NULL,
    consumer_secret VARCHAR(255) NOT NULL,
    
    -- Sincronização
    sincronizar_produtos BOOLEAN DEFAULT FALSE,
    sincronizar_pedidos BOOLEAN DEFAULT FALSE,
    sincronizar_estoque BOOLEAN DEFAULT FALSE,
    intervalo_sincronizacao_minutos INT DEFAULT 60,
    
    -- Webhook
    webhook_url VARCHAR(500) NULL,
    webhook_secret VARCHAR(255) NULL,
    
    -- Status
    ativo BOOLEAN DEFAULT FALSE,
    
    -- Metadados
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    UNIQUE KEY uk_tenant (tenant_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Mapeamento de produtos
CREATE TABLE IF NOT EXISTS woocommerce_produtos (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    tenant_id VARCHAR(100) NOT NULL,
    
    -- Produto ERP
    product_id BIGINT UNSIGNED NOT NULL,
    
    -- Produto WooCommerce
    wc_product_id BIGINT UNSIGNED NULL,
    wc_sku VARCHAR(100) NULL,
    
    -- Status
    status ENUM('draft', 'publish', 'pending', 'private') DEFAULT 'draft',
    sincronizado BOOLEAN DEFAULT FALSE,
    ultima_sincronizacao DATETIME NULL,
    
    -- Metadados
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    INDEX idx_tenant (tenant_id),
    INDEX idx_product (product_id),
    INDEX idx_wc_product (wc_product_id),
    INDEX idx_status (status),
    UNIQUE KEY uk_tenant_product (tenant_id, product_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Pedidos do WooCommerce
CREATE TABLE IF NOT EXISTS woocommerce_pedidos (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    tenant_id VARCHAR(100) NOT NULL,
    
    -- Pedido WooCommerce
    wc_order_id BIGINT UNSIGNED NOT NULL,
    
    -- Pedido ERP
    sales_order_id BIGINT UNSIGNED NULL,
    
    -- Dados do pedido
    status_wc VARCHAR(50) NOT NULL,
    total DECIMAL(18,2) NOT NULL,
    currency VARCHAR(10) DEFAULT 'BRL',
    
    -- Cliente
    customer_id BIGINT UNSIGNED NULL,
    customer_email VARCHAR(255) NULL,
    customer_name VARCHAR(255) NULL,
    
    -- Status de sincronização
    sincronizado BOOLEAN DEFAULT FALSE,
    importado BOOLEAN DEFAULT FALSE,
    
    -- Metadados
    dados_json TEXT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    INDEX idx_tenant (tenant_id),
    INDEX idx_wc_order (wc_order_id),
    INDEX idx_sales_order (sales_order_id),
    INDEX idx_status (status_wc),
    INDEX idx_sincronizado (sincronizado),
    UNIQUE KEY uk_tenant_wc_order (tenant_id, wc_order_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Logs de sincronização
CREATE TABLE IF NOT EXISTS woocommerce_logs (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    tenant_id VARCHAR(100) NOT NULL,
    
    -- Tipo de operação
    tipo ENUM('produto', 'pedido', 'estoque', 'webhook', 'erro') NOT NULL,
    
    -- Status
    status ENUM('sucesso', 'erro', 'aviso') NOT NULL,
    
    -- Dados
    mensagem TEXT NULL,
    detalhes_json TEXT NULL,
    
    -- Metadados
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    
    INDEX idx_tenant (tenant_id),
    INDEX idx_tipo (tipo),
    INDEX idx_status (status),
    INDEX idx_created (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

