CREATE TABLE IF NOT EXISTS empresas (
    id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
    razao_social VARCHAR(160) NOT NULL,
    nome_fantasia VARCHAR(160),
    ativo BOOLEAN NOT NULL DEFAULT TRUE,
    criado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    atualizado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS marcas (
    id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
    empresa_id BIGINT NOT NULL REFERENCES empresas(id),
    nome VARCHAR(120) NOT NULL,
    descricao VARCHAR(500),
    ativo BOOLEAN NOT NULL DEFAULT TRUE,
    criado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    atualizado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    excluido_em TIMESTAMP NULL
);
CREATE INDEX IF NOT EXISTS idx_marcas_empresa_nome ON marcas (empresa_id, nome);
CREATE INDEX IF NOT EXISTS idx_marcas_empresa_ativo ON marcas (empresa_id, ativo);
INSERT INTO empresas (id, razao_social, nome_fantasia)
VALUES (1, 'Empresa Demonstração Ltda.', 'Empresa Demonstração') ON CONFLICT (id) DO NOTHING;
