CREATE DATABASE IF NOT EXISTS dashboard_vendas CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE dashboard_vendas;

CREATE TABLE IF NOT EXISTS imports (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    arquivo_nome VARCHAR(255) NOT NULL,
    total_linhas INT UNSIGNED NOT NULL DEFAULT 0,
    linhas_inseridas INT UNSIGNED NOT NULL DEFAULT 0,
    linhas_atualizadas INT UNSIGNED NOT NULL DEFAULT 0,
    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS vendas (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    unique_hash CHAR(40) NOT NULL,
    import_id INT UNSIGNED NULL,
    codigo_filial INT NULL,
    data_venda DATETIME NOT NULL,
    data_dia DATE NOT NULL,
    hora_venda TIME NOT NULL,
    quantidade_vendas DECIMAL(12,2) NOT NULL DEFAULT 0,
    codigo_laboratorio INT NULL,
    laboratorio VARCHAR(150) NULL,
    codigo_funcionario_vendedor INT NULL,
    vendedor VARCHAR(150) NULL,
    codigo_produto VARCHAR(80) NULL,
    codigo_barras VARCHAR(80) NULL,
    produto VARCHAR(255) NULL,
    quantidade_unidades DECIMAL(12,2) NOT NULL DEFAULT 0,
    total_liquido DECIMAL(14,2) NOT NULL DEFAULT 0,
    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP NULL DEFAULT NULL,
    UNIQUE KEY uk_unique_hash (unique_hash),
    KEY idx_data_dia (data_dia),
    KEY idx_vendedor (vendedor),
    KEY idx_filial (codigo_filial),
    KEY idx_laboratorio (laboratorio),
    CONSTRAINT fk_vendas_import FOREIGN KEY (import_id) REFERENCES imports(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
