-- +goose Up
-- +goose StatementBegin
CREATE OR REPLACE VIEW VW_FLASH_META_CONTRIBUICAO_STG AS
SELECT m1.empresa_fk AS cod_empresa, 'CATEGORIA' AS tipo_nodo, TO_CHAR(m1.categoria_fk) AS codigo_nodo,
       TO_CHAR(m1.categoria_pai_fk) AS codigo_nodo_pai, 'CATEGORIA' AS tipo_nodo_pai,
       m1.data_referencia, m1.ano AS ano_referencia, m1.mes AS mes_referencia, m1.dia AS dia_referencia,
       m1.percentual AS percentual_meta, m1.valor_meta, 'TB_METAS_CONTRIB_CATN1' AS observacao, 'TB_METAS_CONTRIB_CATN1' AS origem_meta
FROM vitruvio.TB_METAS_CONTRIB_CATN1 m1
UNION ALL
SELECT m2.empresa_fk, 'CATEGORIA', TO_CHAR(m2.categoria_fk), TO_CHAR(m2.categoria_pai_fk), 'CATEGORIA',
       m2.data_referencia, m2.ano, m2.mes, m2.dia, m2.percentual, m2.valor_meta, 'TB_METAS_CONTRIB_CATN2', 'TB_METAS_CONTRIB_CATN2'
FROM vitruvio.TB_METAS_CONTRIB_CATN2 m2
UNION ALL
SELECT m3.empresa_fk, 'CATEGORIA', TO_CHAR(m3.categoria_fk), TO_CHAR(m3.categoria_pai_fk), 'CATEGORIA',
       m3.data_referencia, m3.ano, m3.mes, m3.dia, m3.percentual, m3.valor_meta, 'TB_METAS_CONTRIB_CATN3', 'TB_METAS_CONTRIB_CATN3'
FROM vitruvio.TB_METAS_CONTRIB_CATN3 m3
UNION ALL
SELECT m4.empresa_fk, 'CATEGORIA', TO_CHAR(m4.categoria_fk), TO_CHAR(m4.categoria_pai_fk), 'CATEGORIA',
       m4.data_referencia, m4.ano, m4.mes, m4.dia, m4.percentual, m4.valor_meta, 'TB_METAS_CONTRIB_CATN4', 'TB_METAS_CONTRIB_CATN4'
FROM vitruvio.TB_METAS_CONTRIB_CATN4 m4
-- +goose StatementEnd

-- +goose Down
-- +goose StatementBegin
DECLARE
    v_count NUMBER;
BEGIN
    SELECT COUNT(*) INTO v_count FROM user_objects WHERE object_name = 'VW_FLASH_META_CONTRIBUICAO_STG' AND object_type = 'VIEW';
    IF v_count > 0 THEN
        EXECUTE IMMEDIATE 'DROP VIEW VW_FLASH_META_CONTRIBUICAO_STG';
    END IF;
END;
-- +goose StatementEnd
