CREATE TABLE IF NOT EXISTS tabelas_preco (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,empresa_id BIGINT UNSIGNED NOT NULL,codigo VARCHAR(20) NOT NULL,descricao VARCHAR(120) NOT NULL,moeda CHAR(3) NOT NULL DEFAULT 'BRL',ativo BOOLEAN NOT NULL DEFAULT TRUE,criado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,atualizado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,excluido_em TIMESTAMP NULL,FOREIGN KEY(empresa_id) REFERENCES empresas(id),INDEX idx_tabelas_preco_empresa(empresa_id,codigo)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS tabela_preco_itens (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,tabela_preco_id BIGINT UNSIGNED NOT NULL,produto_id BIGINT UNSIGNED NOT NULL,preco DECIMAL(15,4) NOT NULL DEFAULT 0,quantidade_minima DECIMAL(15,6) NOT NULL DEFAULT 1,criado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,atualizado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,UNIQUE KEY uk_tabela_produto(tabela_preco_id,produto_id),FOREIGN KEY(tabela_preco_id) REFERENCES tabelas_preco(id),FOREIGN KEY(produto_id) REFERENCES produtos(id)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO tabelas_preco(empresa_id,codigo,descricao,moeda,ativo) SELECT 1,'1','PADRÃO','BRL',TRUE WHERE NOT EXISTS(SELECT 1 FROM tabelas_preco WHERE empresa_id=1 AND codigo='1' AND excluido_em IS NULL);
