-- Tabela de configuração do GestorY
CREATE TABLE IF NOT EXISTS gestory_config (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    tenant_id VARCHAR(100) NOT NULL,
    atualizacao_automatica BOOLEAN DEFAULT FALSE,
    frequencia_atualizacao INT DEFAULT 24, -- horas
    ultima_atualizacao DATETIME NULL,
    modelos_importar JSON NULL, -- Lista de modelos a importar
    limite_requisicoes INT DEFAULT 100, -- Limite de requisições por hora
    timeout_requisicao INT DEFAULT 30, -- segundos
    user_agent VARCHAR(255) DEFAULT 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    UNIQUE KEY uniq_tenant (tenant_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Tabela de peças Yamaha importadas
CREATE TABLE IF NOT EXISTS gestory_pecas (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    tenant_id VARCHAR(100) NOT NULL,
    codigo_yamaha VARCHAR(100) NOT NULL,
    nome VARCHAR(255) NOT NULL,
    descricao TEXT,
    categoria VARCHAR(100),
    modelo_compativel VARCHAR(255), -- JSON array de modelos
    ano_compativel VARCHAR(50),
    preco_yamaha DECIMAL(18,2) NULL,
    imagem_url VARCHAR(500),
    diagrama_url VARCHAR(500),
    product_id BIGINT UNSIGNED NULL, -- ID do produto no ERP (se importado)
    data_importacao DATETIME NULL,
    ultima_atualizacao DATETIME NULL,
    status ENUM('disponivel', 'indisponivel', 'descontinuado') DEFAULT 'disponivel',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    UNIQUE KEY uniq_tenant_codigo (tenant_id, codigo_yamaha),
    KEY idx_product (product_id),
    KEY idx_codigo (codigo_yamaha),
    FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Tabela de logs de integração
CREATE TABLE IF NOT EXISTS gestory_logs (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    tenant_id VARCHAR(100) NOT NULL,
    tipo ENUM('pesquisa', 'importacao', 'atualizacao', 'erro', 'aviso') NOT NULL,
    acao VARCHAR(100) NOT NULL,
    codigo_peca VARCHAR(100) NULL,
    mensagem TEXT,
    dados_json JSON NULL,
    sucesso BOOLEAN DEFAULT TRUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    KEY idx_tenant_tipo (tenant_id, tipo),
    KEY idx_created (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Tabela de cache de requisições
CREATE TABLE IF NOT EXISTS gestory_cache (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    tenant_id VARCHAR(100) NOT NULL,
    chave_cache VARCHAR(255) NOT NULL, -- Hash da requisição
    dados_json JSON NOT NULL,
    expires_at DATETIME NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    UNIQUE KEY uniq_tenant_chave (tenant_id, chave_cache),
    KEY idx_expires (expires_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

