-- Configurações de Estoque (permitir estoque negativo) e histórico de alterações
CREATE TABLE IF NOT EXISTS inventory_settings (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    permitir_estoque_negativo TINYINT(1) NOT NULL DEFAULT 0,
    updated_at TIMESTAMP NULL DEFAULT NULL,
    updated_by BIGINT UNSIGNED NULL
);

-- Histórico de alterações da configuração
CREATE TABLE IF NOT EXISTS inventory_settings_history (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    setting_id BIGINT UNSIGNED NOT NULL,
    changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    changed_by BIGINT UNSIGNED NULL,
    old_permitir TINYINT(1) NULL,
    new_permitir TINYINT(1) NOT NULL,
    INDEX idx_setting (setting_id),
    FOREIGN KEY (setting_id) REFERENCES inventory_settings(id) ON DELETE CASCADE,
    FOREIGN KEY (changed_by) REFERENCES users(id) ON DELETE SET NULL
);

-- Seed inicial: uma linha padrão se não existir
INSERT INTO inventory_settings (permitir_estoque_negativo)
SELECT 0 WHERE NOT EXISTS (SELECT 1 FROM inventory_settings LIMIT 1);