CREATE TABLE IF NOT EXISTS produtos (
 id INTEGER PRIMARY KEY AUTOINCREMENT, empresa_id INTEGER NOT NULL, codigo TEXT NOT NULL,
 tipo TEXT NOT NULL DEFAULT 'mercadoria', descricao TEXT NOT NULL, descricao_reduzida TEXT, referencia TEXT, gtin TEXT,
 marca_id INTEGER, grupo_id INTEGER, subgrupo_id INTEGER, secao_id INTEGER, linha_id INTEGER, unidade_id INTEGER NOT NULL,
 custo_referencia NUMERIC NOT NULL DEFAULT 0, margem_sugerida NUMERIC NOT NULL DEFAULT 0, desconto_maximo NUMERIC NOT NULL DEFAULT 0,
 comissao_padrao NUMERIC NOT NULL DEFAULT 0, quantidade_minima_venda NUMERIC NOT NULL DEFAULT 1, multiplo_venda NUMERIC NOT NULL DEFAULT 1,
 venda_fracionada INTEGER NOT NULL DEFAULT 0, controla_estoque INTEGER NOT NULL DEFAULT 1, permite_estoque_negativo INTEGER NOT NULL DEFAULT 0,
 controla_lote INTEGER NOT NULL DEFAULT 0, controla_serie INTEGER NOT NULL DEFAULT 0, controla_validade INTEGER NOT NULL DEFAULT 0,
 estoque_minimo NUMERIC NOT NULL DEFAULT 0, estoque_maximo NUMERIC NOT NULL DEFAULT 0,
 ncm TEXT, cest TEXT, origem_mercadoria INTEGER NOT NULL DEFAULT 0, gtin_tributavel TEXT, unidade_tributavel TEXT, beneficio_fiscal TEXT,
 peso_liquido NUMERIC NOT NULL DEFAULT 0, peso_bruto NUMERIC NOT NULL DEFAULT 0, altura NUMERIC NOT NULL DEFAULT 0,
 largura NUMERIC NOT NULL DEFAULT 0, comprimento NUMERIC NOT NULL DEFAULT 0, observacoes TEXT, ativo INTEGER NOT NULL DEFAULT 1,
 criado_em TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP, atualizado_em TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP, excluido_em TEXT,
 FOREIGN KEY(empresa_id) REFERENCES empresas(id), FOREIGN KEY(marca_id) REFERENCES marcas(id), FOREIGN KEY(grupo_id) REFERENCES grupos_produto(id),
 FOREIGN KEY(subgrupo_id) REFERENCES subgrupos_produto(id), FOREIGN KEY(secao_id) REFERENCES secoes_produto(id),
 FOREIGN KEY(linha_id) REFERENCES linhas_produto(id), FOREIGN KEY(unidade_id) REFERENCES unidades_produto(id)
);
CREATE INDEX IF NOT EXISTS idx_produtos_empresa_codigo ON produtos(empresa_id,codigo);
CREATE INDEX IF NOT EXISTS idx_produtos_empresa_descricao ON produtos(empresa_id,descricao);
