From 8692bab9f8dea96d0bbf544a7267a42789490246 Mon Sep 17 00:00:00 2001 From: Rafael Pinheiro Date: Mon, 13 Jan 2025 18:27:41 -0300 Subject: [PATCH] cria flows de materiazacao da bilhetagem 2 --- pipelines/flows.py | 2 + pipelines/migration/flows.py | 3 +- pipelines/treatment/bilhetagem/constants.py | 28 +- pipelines/treatment/bilhetagem/flows.py | 45 ++ pipelines/treatment/cadastro/__init__.py | 0 pipelines/treatment/cadastro/constants.py | 22 + pipelines/treatment/cadastro/flows.py | 22 + pipelines/treatment/financeiro/__init__.py | 0 pipelines/treatment/financeiro/constants.py | 22 + pipelines/treatment/financeiro/flows.py | 18 + queries/models/bilhetagem/gps_validador.sql | 2 +- .../models/bilhetagem/gps_validador_van.sql | 2 +- queries/models/bilhetagem/passageiro_hora.sql | 2 +- .../bilhetagem/passageiro_tile_hora.sql | 2 +- .../schema.yml | 314 ++++--------- ...eiros_hora.sql => aux_passageiro_hora.sql} | 0 .../aux_transacao_id_ordem_pagamento.sql | 2 +- queries/models/bilhetagem/transacao.sql | 2 +- .../models/bilhetagem/transacao_riocard.sql | 1 + .../old_transacao.sql | 413 ------------------ .../bilhetagem_consorcio_dia.sql} | 2 +- .../bilhetagem_consorcio_operador_dia.sql} | 3 +- .../bilhetagem_dia.sql} | 2 +- .../bilhetagem_servico_operador_dia.sql} | 0 queries/models/financeiro/schema.yaml | 216 ++++++++- .../staging/staging_ordem_pagamento.sql | 0 .../staging_ordem_pagamento_consorcio.sql | 0 ...ng_ordem_pagamento_consorcio_operadora.sql | 0 .../staging/staging_ordem_rateio.sql | 0 .../staging/staging_ordem_ressarcimento.sql | 0 ...ordem_pagamento_consorcio_dia_invalida.sql | 4 +- ...amento_consorcio_operador_dia_invalida.sql | 4 +- .../staging/ordem_pagamento_dia_invalida.sql | 4 +- ...agamento_servico_operador_dia_invalida.sql | 4 +- queries/selectors.yml | 127 +++++- 35 files changed, 597 insertions(+), 671 deletions(-) create mode 100644 pipelines/treatment/cadastro/__init__.py create mode 100644 pipelines/treatment/cadastro/constants.py create mode 100644 pipelines/treatment/cadastro/flows.py create mode 100644 pipelines/treatment/financeiro/__init__.py create mode 100644 pipelines/treatment/financeiro/constants.py create mode 100644 pipelines/treatment/financeiro/flows.py rename queries/models/{br_rj_riodejaneiro_bilhetagem => bilhetagem}/schema.yml (59%) rename queries/models/bilhetagem/staging/{aux_passageiros_hora.sql => aux_passageiro_hora.sql} (100%) delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem/old_transacao.sql rename queries/models/{br_rj_riodejaneiro_bilhetagem/ordem_pagamento_consorcio_dia.sql => financeiro/bilhetagem_consorcio_dia.sql} (95%) rename queries/models/{br_rj_riodejaneiro_bilhetagem/ordem_pagamento_consorcio_operador_dia.sql => financeiro/bilhetagem_consorcio_operador_dia.sql} (98%) rename queries/models/{br_rj_riodejaneiro_bilhetagem/ordem_pagamento_dia.sql => financeiro/bilhetagem_dia.sql} (95%) rename queries/models/{br_rj_riodejaneiro_bilhetagem/ordem_pagamento_servico_operador_dia.sql => financeiro/bilhetagem_servico_operador_dia.sql} (100%) rename queries/models/{bilhetagem => financeiro}/staging/staging_ordem_pagamento.sql (100%) rename queries/models/{bilhetagem => financeiro}/staging/staging_ordem_pagamento_consorcio.sql (100%) rename queries/models/{bilhetagem => financeiro}/staging/staging_ordem_pagamento_consorcio_operadora.sql (100%) rename queries/models/{bilhetagem => financeiro}/staging/staging_ordem_rateio.sql (100%) rename queries/models/{bilhetagem => financeiro}/staging/staging_ordem_ressarcimento.sql (100%) diff --git a/pipelines/flows.py b/pipelines/flows.py index f422d1cf1..e56d1f081 100644 --- a/pipelines/flows.py +++ b/pipelines/flows.py @@ -23,7 +23,9 @@ from pipelines.migration.veiculo.flows import * # noqa from pipelines.serpro.flows import * # noqa from pipelines.treatment.bilhetagem.flows import * # noqa +from pipelines.treatment.cadastro.flows import * # noqa from pipelines.treatment.datario.flows import * # noqa +from pipelines.treatment.financeiro.flows import * # noqa from pipelines.treatment.monitoramento.flows import * # noqa from pipelines.treatment.planejamento.flows import * # noqa from pipelines.treatment.validacao_dados_jae.flows import * # noqa diff --git a/pipelines/migration/flows.py b/pipelines/migration/flows.py index 1e80e4e11..a78cb0193 100644 --- a/pipelines/migration/flows.py +++ b/pipelines/migration/flows.py @@ -57,7 +57,7 @@ source_type = Parameter("source_type", default=None) interval_minutes = Parameter("interval_minutes", default=None) recapture = Parameter("recapture", default=False) - recapture_window_days = Parameter("recapture_window_days", default=1) + recapture_window_days = Parameter("recapture_window_days", default=5) timestamp = Parameter("timestamp", default=None) # Parâmetros Pré-tratamento # @@ -81,6 +81,7 @@ datetime_filter=current_timestamp, interval_minutes=interval_minutes, recapture_window_days=recapture_window_days, + max_recaptures=500, ) with case(recapture, False): diff --git a/pipelines/treatment/bilhetagem/constants.py b/pipelines/treatment/bilhetagem/constants.py index 47b951a65..5cde139fe 100644 --- a/pipelines/treatment/bilhetagem/constants.py +++ b/pipelines/treatment/bilhetagem/constants.py @@ -6,7 +6,7 @@ from datetime import datetime from enum import Enum -from pipelines.schedules import create_daily_cron +from pipelines.schedules import create_daily_cron, create_hourly_cron from pipelines.treatment.templates.utils import DBTSelector @@ -15,6 +15,32 @@ class constants(Enum): # pylint: disable=c0103 Valores constantes para materialização dos dados de bilhetagem """ + TRANSACAO_SELECTOR = DBTSelector( + name="transacao", + schedule_cron=create_hourly_cron(), + initial_datetime=datetime(2025, 1, 16, 0, 0, 0), + incremental_delay_hours=1, + ) + + PASSAGEIRO_HORA_SELECTOR = DBTSelector( + name="passageiro_hora", + schedule_cron=create_hourly_cron(minute=10), + initial_datetime=datetime(2025, 1, 16, 0, 0, 0), + ) + + GPS_VALIDADOR_SELECTOR = DBTSelector( + name="gps_validador", + schedule_cron=create_hourly_cron(), + initial_datetime=datetime(2025, 1, 16, 0, 0, 0), + incremental_delay_hours=1, + ) + + INTEGRACAO_SELECTOR = DBTSelector( + name="integracao", + schedule_cron=create_daily_cron(hour=5, minute=15), + initial_datetime=datetime(2025, 1, 16, 0, 0, 0), + ) + TRANSACAO_ORDEM_SELECTOR = DBTSelector( name="transacao_ordem", schedule_cron=create_daily_cron(hour=6, minute=10), diff --git a/pipelines/treatment/bilhetagem/flows.py b/pipelines/treatment/bilhetagem/flows.py index 8c6db8c5f..0e3e70646 100644 --- a/pipelines/treatment/bilhetagem/flows.py +++ b/pipelines/treatment/bilhetagem/flows.py @@ -5,14 +5,59 @@ DBT: 2024-11-27 2 """ +from pipelines.capture.jae.constants import constants as jae_constants from pipelines.constants import constants as smtr_constants from pipelines.migration.br_rj_riodejaneiro_bilhetagem.constants import ( constants as old_constants, ) from pipelines.schedules import create_daily_cron from pipelines.treatment.bilhetagem.constants import constants +from pipelines.treatment.cadastro.constants import constants as cadastro_constants from pipelines.treatment.templates.flows import create_default_materialization_flow +TRANSACAO_MATERIALIZACAO = create_default_materialization_flow( + flow_name="transacao - materializacao", + selector=constants.TRANSACAO_SELECTOR.value, + agent_label=smtr_constants.RJ_SMTR_AGENT_LABEL.value, + wait=[ + jae_constants.TRANSACAO_SOURCE.value, + jae_constants.TRANSACAO_RIOCARD_SOURCE.value, + jae_constants.JAE_AUXILIAR_SOURCES.value["produto"], + jae_constants.JAE_AUXILIAR_SOURCES.value["cliente"], + jae_constants.JAE_AUXILIAR_SOURCES.value["gratuidade"], + cadastro_constants.CADASTRO_SELECTOR.value, + ], +) + +PASSAGEIRO_HORA_MATERIALIZACAO = create_default_materialization_flow( + flow_name="passageiro_hora - materializacao", + selector=constants.PASSAGEIRO_HORA_SELECTOR.value, + agent_label=smtr_constants.RJ_SMTR_AGENT_LABEL.value, + wait=[ + constants.TRANSACAO_SELECTOR.value, + ], +) + +GPS_VALIDADOR_MATERIALIZACAO = create_default_materialization_flow( + flow_name="gps_validador - materializacao", + selector=constants.GPS_VALIDADOR_SELECTOR.value, + agent_label=smtr_constants.RJ_SMTR_AGENT_LABEL.value, + wait=[ + cadastro_constants.CADASTRO_SELECTOR.value, + jae_constants.GPS_VALIDADOR_SOURCE.value, + ], +) + +INTEGRACAO_MATERIALIZACAO = create_default_materialization_flow( + flow_name="integracao - materializacao", + selector=constants.INTEGRACAO_SELECTOR.value, + agent_label=smtr_constants.RJ_SMTR_AGENT_LABEL.value, + wait=[ + cadastro_constants.CADASTRO_SELECTOR.value, + jae_constants.INTEGRACAO_SOURCE.value, + ], +) + ordem_pagamento_materialize_params = ( old_constants.BILHETAGEM_MATERIALIZACAO_ORDEM_PAGAMENTO_PARAMS.value ) diff --git a/pipelines/treatment/cadastro/__init__.py b/pipelines/treatment/cadastro/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pipelines/treatment/cadastro/constants.py b/pipelines/treatment/cadastro/constants.py new file mode 100644 index 000000000..bcfe8a4ea --- /dev/null +++ b/pipelines/treatment/cadastro/constants.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +""" +Valores constantes para materialização dos dados de cadastro +""" + +from datetime import datetime +from enum import Enum + +from pipelines.schedules import create_hourly_cron +from pipelines.treatment.templates.utils import DBTSelector + + +class constants(Enum): # pylint: disable=c0103 + """ + Valores constantes para materialização dos dados de cadastro + """ + + CADASTRO_SELECTOR = DBTSelector( + name="cadastro", + schedule_cron=create_hourly_cron(minute=10), + initial_datetime=datetime(2025, 12, 16, 0, 0, 0), + ) diff --git a/pipelines/treatment/cadastro/flows.py b/pipelines/treatment/cadastro/flows.py new file mode 100644 index 000000000..6e7639d31 --- /dev/null +++ b/pipelines/treatment/cadastro/flows.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +""" +Flows de tratamento dos dados de cadastro +""" + +from pipelines.capture.jae.constants import constants as jae_constants +from pipelines.constants import constants as smtr_constants +from pipelines.treatment.cadastro.constants import constants +from pipelines.treatment.templates.flows import create_default_materialization_flow + +CADASTRO_MATERIALIZACAO = create_default_materialization_flow( + flow_name="cadastro - materializacao", + selector=constants.CADASTRO_SELECTOR.value, + agent_label=smtr_constants.RJ_SMTR_AGENT_LABEL.value, + wait=[ + jae_constants.JAE_AUXILIAR_SOURCES.value["linha"], + jae_constants.JAE_AUXILIAR_SOURCES.value["operadora_transporte"], + jae_constants.JAE_AUXILIAR_SOURCES.value["pessoa_fisica"], + jae_constants.JAE_AUXILIAR_SOURCES.value["consorcio"], + jae_constants.JAE_AUXILIAR_SOURCES.value["linha_consorcio_operadora_transporte"], + ], +) diff --git a/pipelines/treatment/financeiro/__init__.py b/pipelines/treatment/financeiro/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pipelines/treatment/financeiro/constants.py b/pipelines/treatment/financeiro/constants.py new file mode 100644 index 000000000..932119124 --- /dev/null +++ b/pipelines/treatment/financeiro/constants.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +""" +Valores constantes para materialização dos dados financeiros +""" + +from datetime import datetime +from enum import Enum + +from pipelines.schedules import create_daily_cron +from pipelines.treatment.templates.utils import DBTSelector + + +class constants(Enum): # pylint: disable=c0103 + """ + Valores constantes para materialização dos dados financeiros + """ + + FINANCEIRO_BILHETAGEM_SELECTOR = DBTSelector( + name="financeiro_bilhetagem", + schedule_cron=create_daily_cron(hour=5, minute=15), + initial_datetime=datetime(2025, 12, 16, 0, 0, 0), + ) diff --git a/pipelines/treatment/financeiro/flows.py b/pipelines/treatment/financeiro/flows.py new file mode 100644 index 000000000..492446ce2 --- /dev/null +++ b/pipelines/treatment/financeiro/flows.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +""" +Flows de tratamento dos dados financeiros +""" + +from pipelines.capture.jae.constants import constants as jae_constants +from pipelines.constants import constants as smtr_constants +from pipelines.treatment.cadastro.constants import constants as cadastro_constants +from pipelines.treatment.financeiro.constants import constants +from pipelines.treatment.templates.flows import create_default_materialization_flow + +FINANCEIRO_BILHETAGEM_MATERIALIZACAO = create_default_materialization_flow( + flow_name="financeiro_bilhetagem - materializacao", + selector=constants.FINANCEIRO_BILHETAGEM_SELECTOR.value, + agent_label=smtr_constants.RJ_SMTR_AGENT_LABEL.value, + wait=[cadastro_constants.CADASTRO_SELECTOR.value] + + jae_constants.ORDEM_PAGAMENTO_SOURCES.value.values(), +) diff --git a/queries/models/bilhetagem/gps_validador.sql b/queries/models/bilhetagem/gps_validador.sql index 037f02a88..7a6cd6320 100644 --- a/queries/models/bilhetagem/gps_validador.sql +++ b/queries/models/bilhetagem/gps_validador.sql @@ -3,6 +3,7 @@ materialized="incremental", partition_by={"field": "data", "data_type": "date", "granularity": "day"}, tags=["geolocalizacao"], + schema="br_rj_riodejaneiro_bilhetagem", ) }} @@ -15,7 +16,6 @@ select id_operadora, operadora, id_servico_jae, - -- s.servico, servico_jae, descricao_servico_jae, case diff --git a/queries/models/bilhetagem/gps_validador_van.sql b/queries/models/bilhetagem/gps_validador_van.sql index d4261859e..f13bb1c31 100644 --- a/queries/models/bilhetagem/gps_validador_van.sql +++ b/queries/models/bilhetagem/gps_validador_van.sql @@ -3,6 +3,7 @@ materialized="incremental", partition_by={"field": "data", "data_type": "date", "granularity": "day"}, tags=["geolocalizacao"], + schema="br_rj_riodejaneiro_bilhetagem", ) }} @@ -15,7 +16,6 @@ select id_operadora, operadora, id_servico_jae, - -- s.servico, servico_jae, descricao_servico_jae, id_veiculo, diff --git a/queries/models/bilhetagem/passageiro_hora.sql b/queries/models/bilhetagem/passageiro_hora.sql index 56addc51a..2b6b38912 100644 --- a/queries/models/bilhetagem/passageiro_hora.sql +++ b/queries/models/bilhetagem/passageiro_hora.sql @@ -50,7 +50,7 @@ select * except (id_transacao, geo_point_transacao), count(id_transacao) as quantidade_passageiros, '{{ var("version") }}' as versao -from {{ ref("aux_passageiros_hora") }} +from {{ ref("aux_passageiro_hora") }} where {% if is_incremental() %} {% if partition_list | length > 0 %} data in ({{ partition_list | join(", ") }}) diff --git a/queries/models/bilhetagem/passageiro_tile_hora.sql b/queries/models/bilhetagem/passageiro_tile_hora.sql index 78dc69b04..e3678904e 100644 --- a/queries/models/bilhetagem/passageiro_tile_hora.sql +++ b/queries/models/bilhetagem/passageiro_tile_hora.sql @@ -51,7 +51,7 @@ select geo.tile_id, count(id_transacao) as quantidade_passageiros, '{{ var("version") }}' as versao -from {{ ref("aux_passageiros_hora") }} p +from {{ ref("aux_passageiro_hora") }} p join {{ ref("aux_h3_res9") }} geo on st_contains(geo.geometry, geo_point_transacao) where {% if is_incremental() %} diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/schema.yml b/queries/models/bilhetagem/schema.yml similarity index 59% rename from queries/models/br_rj_riodejaneiro_bilhetagem/schema.yml rename to queries/models/bilhetagem/schema.yml index 162b78e6e..996c19363 100644 --- a/queries/models/br_rj_riodejaneiro_bilhetagem/schema.yml +++ b/queries/models/bilhetagem/schema.yml @@ -6,64 +6,82 @@ models: columns: - name: data description: "Data da transação (partição)" + data_type: date - name: hora description: "Hora da transação" + data_type: int64 - name: datetime_transacao - description: "Data e hora da transação em GMT-3 (formato YYYY-MM-ddTHH:mm:ss.ssssss)" + description: "Data e hora da transação em GMT-3" + data_type: datetime - name: datetime_processamento - description: "Data e hora de processamento da transação em GMT-3 (formato YYYY-MM-ddTHH:mm:ss.ssssss)" + description: "Data e hora de processamento da transação em GMT-3" + data_type: datetime - name: datetime_captura description: "Timestamp de captura em GMT-3 (formato YYYY-MM-dd HH:mm:ssTZD)" + data_type: datetime - name: modo description: "Tipo de transporte (Ônibus, Van, BRT)" + data_type: string - name: id_consorcio description: "Identificador do consórcio na tabela cadastro.consorcios" + data_type: string - name: consorcio description: "Nome do consórcio" + data_type: string - name: id_operadora description: "Identificador da operadora na tabela cadastro.operadoras" + data_type: string - name: operadora description: "Nome da operadora de transporte (mascarado se for pessoa física)" + data_type: string - name: id_servico_jae description: "Identificador da linha no banco de dados da jaé (É possível cruzar os dados com a tabela rj-smtr.cadastro.servicos usando a coluna id_servico_jae)" + data_type: string - name: servico_jae description: "Nome curto da linha operada pelo veículo com variação de serviço (ex: 010, 011SN, ...) ou código da estação de BRT na Jaé" + data_type: string - name: descricao_servico_jae description: "Nome longo da linha operada pelo veículo com variação de serviço (ex: 010, 011SN, ...) ou nome da estação de BRT na Jaé" + data_type: string - name: sentido description: "Sentido de operação do serviço (0 = ida, 1 = volta)" + data_type: string - name: id_veiculo description: "Identificador único do veículo" + data_type: string - name: id_validador - description: "{{ doc('id_validador') }}" + description: "Número de série do validador" + data_type: string - name: id_cliente description: "Identificador único do cliente [protegido]" policy_tags: - 'projects/rj-smtr/locations/us/taxonomies/6071707853840412174/policyTags/1168584191451386864' + data_type: string - name: hash_cliente description: "Hash identificador do cliente [protegido]" policy_tags: - 'projects/rj-smtr/locations/us/taxonomies/6071707853840412174/policyTags/3266350367297582691' + data_type: bytes - name: id_transacao description: "Identificador único da transação" + data_type: string - name: tipo_pagamento description: "Tipo de pagamento utilizado" + - name: tipo_transacao_jae + description: "Tipo de transação realizada conforme o dado original da Jaé (a primeira perna de integrações são classificadas como tipo Débito e não Integração)" + data_type: string - name: tipo_transacao - description: "Tipo de transação realizada (a primeira perna de integrações são classificadas como tipo Débito e não Integração)" - - name: tipo_transacao_smtr - description: "Tipo de transação realizada no padrão usado pela SMTR (Integral, Integração e Gratuidade)" - - name: tipo_gratuidade - description: "Tipo da gratuidade (Estudante, PCD, Sênior)" - - name: id_tipo_integracao - description: "Tipo da integração realizada (identificador relacionado à matriz de integração)" - - name: id_integracao - description: "Identificador único da integração" + description: "Tipo de transação realizada no padrão usado pela SMTR" + data_type: string - name: latitude description: "Latitude da transação (WGS84)" + data_type: float64 - name: longitude description: "Longitude da transação (WGS84)" + data_type: float64 - name: geo_point_transacao description: "Ponto geográfico do local da transação" + data_type: geography - name: tile_id description: "Identificador do hexágono da geolocalização da transação na tabela rj-smtr.br_rj_riodejaneiro_geo.h3_res9" - name: stop_id @@ -74,20 +92,66 @@ models: description: "Longitude do ponto de embarque (GTFS)" - name: valor_transacao description: "Valor debitado na transação atual (R$)" + data_type: float64 - name: valor_pagamento description: "Valor valor a ser pago pela transação (R$). Valores nulos indicam que o valor de pagamento para a transação ainda não foi calculado." + data_type: float64 - name: data_ordem description: "Data da ordem de pagamento da transação" + data_type: date - name: id_ordem_pagamento_servico_operador_dia description: "Identificador único da tabela rj-smtr.br_rj_riodejaneiro_bilhetagem.ordem_pagamento_servico_operador_dia" + data_type: string - name: id_ordem_pagamento_consorcio_operador_dia description: "Identificador único da tabela rj-smtr.br_rj_riodejaneiro_bilhetagem.ordem_pagamento_consorcio_operador_dia" + data_type: string - name: id_ordem_pagamento_consorcio_dia description: "Identificador único da tabela rj-smtr.br_rj_riodejaneiro_bilhetagem.ordem_pagamento_consorcio_dia" + data_type: string - name: id_ordem_pagamento description: "Identificador único da tabela rj-smtr.br_rj_riodejaneiro_bilhetagem.ordem_pagamento_dia" + data_type: string - name: versao description: "Código de controle de versão do dado (SHA Github)" + data_type: string + - name: id_operadora_jae + description: Identificador único da operadora no sistema da Jaé + data_type: string + quote: true + - name: hash_cartao + description: Hash identificador do cartão [protegido] + policy_tags: + - 'projects/rj-smtr/locations/us/taxonomies/6071707853840412174/policyTags/1168584191451386864' + data_type: string + quote: true + - name: cadastro_cliente + description: Situação do cadastro do cliente na Jaé (cadastrado ou não cadastrado) + data_type: string + quote: true + - name: produto + description: Produto utilizado para efetuar o pagamento no padrão utilizado na SMTR (Conta Gratuidade, Carteira, VT, Dinheiro, Cartão Avulso ou Visa Internacional) + data_type: string + quote: true + - name: produto_jae + description: Produto utilizado para efetuar o pagamento conforme os dados originais da Jaé + data_type: string + quote: true + - name: tipo_usuario + description: "Tipo do usuário que efetuou a transação (ex.: Estudante Municipal, Idoso, Pagante)" + data_type: string + quote: true + - name: meio_pagamento + description: Meio de pagamento utilizado no padrão utilizado na SMTR (Cartão, QRCode ou Dinheiro) + data_type: string + quote: true + - name: meio_pagamento_jae + description: Meio de pagamento conforme os dados originais da Jaé + data_type: string + quote: true + - name: datetime_ultima_atualizacao + description: "{{ doc('datetime_ultima_atualizacao') }}" + data_type: datetime + quote: true - name: integracao description: "Tabela de integrações realizadas entre modos do sistema de transporte municipal, contendo os valores da repartição tarifária (quando houver). [Dados em fase de teste]" columns: @@ -119,8 +183,6 @@ models: description: "Identificador da operadora na tabela cadastro.operadoras" - name: operadora description: "Nome da operadora de transporte (mascarado se for pessoa física)" - # - name: servico - # description: "Nome curto da linha operada pelo veículo com variação de serviço (ex: 010, 011SN, ...) ou código da estação" - name: id_servico_jae description: "Identificador da linha no banco de dados da jaé (É possível cruzar os dados com a tabela rj-smtr.cadastro.servicos usando a coluna id_servico_jae)" - name: servico_jae @@ -162,8 +224,6 @@ models: description: "Identificador da operadora na tabela cadastro.operadoras" - name: operadora description: "Nome da operadora de transporte (mascarado se for pessoa física)" - # - name: servico - # description: "Nome curto da linha operada pelo veículo com variação de serviço (ex: 010, 011SN, ...) ou código da estação" - name: id_servico_jae description: "Identificador da linha no banco de dados da jaé (É possível cruzar os dados com a tabela rj-smtr.cadastro.servicos usando a coluna id_servico_jae)" - name: servico_jae @@ -207,8 +267,6 @@ models: description: "Identificador da operadora na tabela cadastro.operadoras" - name: operadora description: "Nome da operadora de transporte (mascarado se for pessoa física)" - # - name: servico - # description: "Nome curto da linha operada pelo veículo com variação de serviço (ex: 010, 011SN, ...)" - name: id_servico_jae description: "Identificador da linha no banco de dados da jaé (É possível cruzar os dados com a tabela rj-smtr.cadastro.servicos usando a coluna id_servico_jae)" - name: servico_jae @@ -239,7 +297,7 @@ models: description: "Versão do Software do validador" - name: versao description: "Código de controle de versão do dado (SHA Github)" - - name: passageiros_hora + - name: passageiro_hora description: "Tabela de contagem do número de passageiros por hora. Agrega valores da tabela de transações por: data, hora, modo, consorcio, operadora, servico, sentido e tipo_transacao" columns: - name: data @@ -272,7 +330,7 @@ models: description: "Quantidade de transações que aconteceram em determinada data e hora" - name: versao description: "Código de controle de versão do dado (SHA Github)" - - name: passageiros_tile_hora + - name: passageiro_tile_hora description: "Tabela de contagem do número de passageiros por hora. Agrega valores das tabelas transacao e transacao_riocard por: data, hora, modo, consorcio, operadora, servico, sentido, tipo_transacao e tile_id" columns: - name: data @@ -320,220 +378,6 @@ models: description: "Nome da coluna" - name: valor description: "Valor" - - name: ordem_pagamento_consorcio_dia - description: "Tabela com os valores totais de pagamento da Jaé agregados por consorcio e dia" - columns: - - name: data_ordem - description: "Data da ordem de pagamento (partição)" - - name: id_consorcio - description: "Identificador do consórcio na tabela cadastro.consorcios" - - name: consorcio - description: "Nome do consórcio" - - name: id_ordem_pagamento - description: "Identificador da ordem pagamento no banco de dados da Jaé" - - name: quantidade_transacao_debito - description: "Quantidade de transações feitas na modalidade débito" - - name: valor_debito - description: "Valor total das transações feitas na modalidade débito (R$)" - - name: quantidade_transacao_especie - description: "Quantidade de transações feitas em espécie" - - name: valor_especie - description: "Valor total das transações feitas em espécie (R$)" - - name: quantidade_transacao_gratuidade - description: "Quantidade de transações feitas com gratuidade" - - name: valor_gratuidade - description: "Valor total das transações feitas com gratuidade (R$)" - - name: quantidade_transacao_integracao - description: "Quantidade de transações feitas com integração" - - name: valor_integracao - description: "Valor total das transações feitas com integração (R$)" - - name: quantidade_transacao_rateio_credito - description: "Quantidade total de transações consideradas no crédito da repartição tarifária" - - name: valor_rateio_credito - description: "Valor total creditado em decorrência da repartição tarifária (R$)" - - name: quantidade_transacao_rateio_debito - description: "Quantidade total de transações consideradas no débito da repartição tarifária" - - name: valor_rateio_debito - description: "Valor total debitado em decorrência da repartição tarifária (R$)" - - name: quantidade_total_transacao - description: "{{ doc('quantidade_total_transacao') }}" - - name: valor_total_transacao_bruto - description: "Valor total das transações realizadas (R$)" - - name: valor_total_transacao_liquido - description: "Valor total das transações menos o valor_desconto_taxa (R$)" - - name: valor_desconto_taxa - description: "Valor da taxa descontado do valor total (R$)" - - name: versao - description: "Código de controle de versão do dado (SHA Github)" - - name: ordem_pagamento_consorcio_operador_dia - description: "Tabela com os valores totais de pagamento da Jaé agregados por consorcio, operador e dia" - columns: - - name: data_ordem - description: "Data da ordem de pagamento (partição)" - - name: id_ordem_pagamento_consorcio_operador_dia - description: "Identificador único do registro no banco de dados da Jaé" - - name: id_consorcio - description: "Identificador do consórcio na tabela cadastro.consorcios" - - name: consorcio - description: "Nome do consórcio" - - name: id_operadora - description: "Identificador da operadora na tabela cadastro.operadoras" - - name: operadora - description: "Nome da operadora de transporte (mascarado se for pessoa física)" - - name: id_ordem_pagamento - description: "Identificador da ordem pagamento no banco de dados da Jaé" - - name: quantidade_transacao_debito - description: "Quantidade de transações feitas na modalidade débito" - - name: valor_debito - description: "Valor total das transações feitas na modalidade débito (R$)" - - name: quantidade_transacao_especie - description: "Quantidade de transações feitas em espécie" - - name: valor_especie - description: "Valor total das transações feitas em espécie (R$)" - - name: quantidade_transacao_gratuidade - description: "Quantidade de transações feitas com gratuidade" - - name: valor_gratuidade - description: "Valor total das transações feitas com gratuidade (R$)" - - name: quantidade_transacao_integracao - description: "Quantidade de transações feitas com integração" - - name: valor_integracao - description: "Valor total das transações feitas com integração (R$)" - - name: quantidade_transacao_rateio_credito - description: "Quantidade total de transações consideradas no crédito da repartição tarifária" - - name: valor_rateio_credito - description: "Valor total creditado em decorrência da repartição tarifária (R$)" - - name: quantidade_transacao_rateio_debito - description: "Quantidade total de transações consideradas no débito da repartição tarifária" - - name: valor_rateio_debito - description: "Valor total debitado em decorrência da repartição tarifária (R$)" - - name: quantidade_total_transacao - description: "{{ doc('quantidade_total_transacao') }}" - - name: valor_total_transacao_bruto - description: "Valor total das transações realizadas (R$)" - - name: valor_desconto_taxa - description: "Valor da taxa descontado do valor total (R$)" - - name: valor_total_transacao_liquido_ordem - description: "Valor total das transações menos o valor_desconto_taxa (R$)" - - name: valor_total_transacao_liquido - description: "Valor corrigido total das transações menos o valor_desconto_taxa (R$)" - - name: data_pagamento - description: "Data em que foi realizado o pagamento ao operador ou consórcio" - - name: valor_pago - description: "Valor pago ao operador ou consórcio (R$)" - - name: datetime_captura - description: Data e hora da captura da ordem em GMT-3 - - name: versao - description: "Código de controle de versão do dado (SHA Github)" - - name: datetime_ultima_atualizacao - data_type: datetime - quote: true - description: "{{ doc('datetime_ultima_atualizacao') }}" - - name: ordem_pagamento_dia - description: "Tabela com os valores totais de pagamento da Jaé agregados por dia" - columns: - - name: data_ordem - description: "Data da ordem de pagamento (partição)" - - name: data_pagamento - description: "Data de pagamento" - - name: id_ordem_pagamento - description: "Identificador da ordem pagamento no banco de dados da Jaé" - - name: quantidade_transacao_debito - description: "Quantidade de transações feitas na modalidade débito" - - name: valor_debito - description: "Valor total das transações feitas na modalidade débito (R$)" - - name: quantidade_transacao_especie - description: "Quantidade de transações feitas em espécie" - - name: valor_especie - description: "Valor total das transações feitas em espécie (R$)" - - name: quantidade_transacao_gratuidade - description: "Quantidade de transações feitas com gratuidade" - - name: valor_gratuidade - description: "Valor total das transações feitas com gratuidade (R$)" - - name: quantidade_transacao_integracao - description: "Quantidade de transações feitas com integração" - - name: valor_integracao - description: "Valor total das transações feitas com integração (R$)" - - name: quantidade_transacao_rateio_credito - description: "Quantidade total de transações consideradas no crédito da repartição tarifária" - - name: valor_rateio_credito - description: "Valor total creditado em decorrência da repartição tarifária (R$)" - - name: quantidade_total_transacao - description: "{{ doc('quantidade_total_transacao') }}" - - name: quantidade_transacao_rateio_debito - description: "Quantidade total de transações consideradas no débito da repartição tarifária" - - name: valor_rateio_debito - description: "Valor total debitado em decorrência da repartição tarifária (R$)" - - name: valor_total_transacao_bruto - description: "Valor total das transações realizadas (R$)" - - name: valor_desconto_taxa - description: "Valor da taxa descontado do valor total (R$)" - - name: valor_total_transacao_liquido - description: "Valor total das transações menos o valor_desconto_taxa (R$)" - - name: versao - description: "Código de controle de versão do dado (SHA Github)" - - name: ordem_pagamento_servico_operador_dia - descriptions: "Tabela com os valores totais de pagamento da Jaé agregados por serviço, operador e dia" - columns: - - name: data_ordem - description: "Data da ordem de pagamento (partição)" - - name: id_consorcio - description: "Identificador do consórcio na tabela cadastro.consorcios" - - name: consorcio - description: "Nome do consórcio" - - name: id_operadora - description: "Identificador da operadora na tabela cadastro.operadoras" - - name: operadora - description: "Nome da operadora de transporte (mascarado se for pessoa física)" - - name: id_servico_jae - description: "Identificador da linha no banco de dados da jaé (É possível cruzar os dados com a tabela rj-smtr.cadastro.servicos usando a coluna id_servico_jae)" - - name: servico_jae - description: "Nome curto da linha operada pelo veículo com variação de serviço (ex: 010, 011SN, ...) ou código da estação de BRT na Jaé" - - name: descricao_servico_jae - description: "Nome longo da linha operada pelo veículo com variação de serviço (ex: 010, 011SN, ...) ou nome da estação de BRT na Jaé" - # - name: servico - # description: "Nome curto da linha operada pelo veículo com variação de serviço (ex: 010, 011SN, ...) ou código da estação" - - name: id_ordem_pagamento - description: "Identificador da ordem pagamento no banco de dados da Jaé" - - name: id_ordem_ressarcimento - description: "Identificador da ordem ressarcimento no banco de dados da Jaé" - - name: quantidade_transacao_debito - description: "Quantidade de transações feitas na modalidade débito" - - name: valor_debito - description: "Valor total das transações feitas na modalidade débito (R$)" - - name: quantidade_transacao_especie - description: "Quantidade de transações feitas em espécie" - - name: valor_especie - description: "Valor total das transações feitas em espécie (R$)" - - name: quantidade_transacao_gratuidade - description: "Quantidade de transações feitas com gratuidade" - - name: valor_gratuidade - description: "Valor total das transações feitas com gratuidade (R$)" - - name: quantidade_transacao_integracao - description: "Quantidade de transações feitas com integração" - - name: valor_integracao - description: "Valor total das transações feitas com integração (R$)" - - name: quantidade_transacao_rateio_credito - description: "Quantidade total de transações consideradas no crédito da repartição tarifária" - - name: valor_rateio_credito - description: "Valor total creditado em decorrência da repartição tarifária (R$)" - - name: quantidade_transacao_rateio_debito - description: "Quantidade total de transações consideradas no débito da repartição tarifária" - - name: valor_rateio_debito - description: "Valor total debitado em decorrência da repartição tarifária (R$)" - - name: quantidade_total_transacao - description: "{{ doc('quantidade_total_transacao') }}" - - name: valor_total_transacao_bruto - description: "Valor total das transações realizadas (R$)" - - name: valor_desconto_taxa - description: "Valor da taxa descontado do valor total (R$)" - - name: valor_total_transacao_liquido - description: "Valor total das transações menos o valor_desconto_taxa (R$)" - - name: quantidade_total_transacao_captura - description: "Quantidade total de transações calculada pela captura de transações" - - name: valor_total_transacao_captura - description: "Valor total das transações realizadas calculada pela captura de transações (R$)" - - name: versao - description: "Código de controle de versão do dado (SHA Github)" - name: transacao_riocard description: "Tabela com as transações feitas com RioCard que foram registradas pelo validador da Jaé." columns: @@ -557,8 +401,6 @@ models: description: "Identificador da operadora na tabela cadastro.operadoras" - name: operadora description: "Nome da operadora de transporte (mascarado se for pessoa física)" - # - name: servico - # description: "Nome curto da linha operada pelo veículo com variação de serviço (ex: 010, 011SN, ...) ou código da estação" - name: id_servico_jae description: "Identificador da linha no banco de dados da jaé (É possível cruzar os dados com a tabela rj-smtr.cadastro.servicos usando a coluna id_servico_jae)" - name: servico_jae diff --git a/queries/models/bilhetagem/staging/aux_passageiros_hora.sql b/queries/models/bilhetagem/staging/aux_passageiro_hora.sql similarity index 100% rename from queries/models/bilhetagem/staging/aux_passageiros_hora.sql rename to queries/models/bilhetagem/staging/aux_passageiro_hora.sql diff --git a/queries/models/bilhetagem/staging/aux_transacao_id_ordem_pagamento.sql b/queries/models/bilhetagem/staging/aux_transacao_id_ordem_pagamento.sql index f7821bebc..663a683d8 100644 --- a/queries/models/bilhetagem/staging/aux_transacao_id_ordem_pagamento.sql +++ b/queries/models/bilhetagem/staging/aux_transacao_id_ordem_pagamento.sql @@ -56,7 +56,7 @@ with s.datetime_captura from staging s join - {{ ref("ordem_pagamento_servico_operador_dia") }} o using ( + {{ ref("bilhetagem_servico_operador_dia") }} o using ( id_ordem_pagamento_servico_operador_dia ) ), diff --git a/queries/models/bilhetagem/transacao.sql b/queries/models/bilhetagem/transacao.sql index 6a4e34108..6a052c4cc 100644 --- a/queries/models/bilhetagem/transacao.sql +++ b/queries/models/bilhetagem/transacao.sql @@ -265,7 +265,7 @@ with i.id_transacao is not null or o.id_transacao is not null or date(t.datetime_processamento) - < (select max(data_ordem) from {{ ref("ordem_pagamento_dia") }}) + < (select max(data_ordem) from {{ ref("bilhetagem_dia") }}) then coalesce(i.valor_rateio, t.valor_transacao) * 0.96 end as valor_pagamento, o.data_ordem, diff --git a/queries/models/bilhetagem/transacao_riocard.sql b/queries/models/bilhetagem/transacao_riocard.sql index 945f28efc..2905e4846 100644 --- a/queries/models/bilhetagem/transacao_riocard.sql +++ b/queries/models/bilhetagem/transacao_riocard.sql @@ -3,6 +3,7 @@ materialized="incremental", partition_by={"field": "data", "data_type": "date", "granularity": "day"}, incremental_strategy="insert_overwrite", + schema="br_rj_riodejaneiro_bilhetagem", ) }} diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/old_transacao.sql b/queries/models/br_rj_riodejaneiro_bilhetagem/old_transacao.sql deleted file mode 100644 index cae110006..000000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem/old_transacao.sql +++ /dev/null @@ -1,413 +0,0 @@ --- depends_on: {{ ref('servico_operadora') }} --- depends_on: {{ ref('transacao_riocard') }} -{{ - config( - materialized="incremental", - partition_by={"field": "data", "data_type": "date", "granularity": "day"}, - incremental_strategy="insert_overwrite", - ) -}} - -{% set incremental_filter %} - DATE(data) BETWEEN DATE("{{var('date_range_start')}}") AND DATE("{{var('date_range_end')}}") - AND timestamp_captura BETWEEN DATETIME("{{var('date_range_start')}}") AND DATETIME("{{var('date_range_end')}}") -{% endset %} - -{% set transacao_staging = ref("staging_transacao") %} -{% set integracao_staging = ref("staging_integracao_transacao") %} -{% set transacao_ordem = ref("aux_transacao_id_ordem_pagamento") %} -{% if execute %} - {% if is_incremental() %} - {% set transacao_partitions_query %} - WITH particoes_integracao AS ( - SELECT DISTINCT - CONCAT("'", DATE(data_transacao), "'") AS data_transacao - FROM - {{ integracao_staging }}, - UNNEST([ - data_transacao_t0, - data_transacao_t1, - data_transacao_t2, - data_transacao_t3, - data_transacao_t4 - ]) AS data_transacao - WHERE - {{ incremental_filter }} - ), - particoes_transacao AS ( - SELECT DISTINCT - CONCAT("'", DATE(data_transacao), "'") AS data_transacao - FROM - {{ transacao_staging }} - WHERE - {{ incremental_filter }} - ), - particoes_transacao_ordem AS ( - SELECT - CONCAT("'", PARSE_DATE("%Y%m%d", partition_id), "'") AS data_transacao - FROM - `rj-smtr.{{ transacao_ordem.schema }}.INFORMATION_SCHEMA.PARTITIONS` - WHERE - table_name = "{{ transacao_ordem.identifier }}" - AND partition_id != "__NULL__" - AND DATETIME(last_modified_time, "America/Sao_Paulo") BETWEEN DATETIME("{{var('date_range_start')}}") AND (DATETIME("{{var('date_range_end')}}")) - ) - SELECT - data_transacao - FROM - particoes_transacao - WHERE - data_transacao IS NOT NULL - UNION DISTINCT - SELECT - data_transacao - FROM - particoes_integracao - WHERE - data_transacao IS NOT NULL - UNION DISTINCT - SELECT - data_transacao - FROM - particoes_transacao_ordem - WHERE - data_transacao IS NOT NULL - - {% endset %} - - {% set transacao_partitions = run_query(transacao_partitions_query) %} - - {% set transacao_partition_list = transacao_partitions.columns[0].values() %} - - {% endif %} -{% endif %} - -with - transacao as ( - select * - from {{ transacao_staging }} - {% if is_incremental() %} where {{ incremental_filter }} {% endif %} - ), - tipo_transacao as ( - select chave as id_tipo_transacao, valor as tipo_transacao, - from `rj-smtr.br_rj_riodejaneiro_bilhetagem.dicionario` - where id_tabela = "transacao" and coluna = "id_tipo_transacao" - ), - gratuidade as ( - select - cast(id_cliente as string) as id_cliente, - tipo_gratuidade, - data_inicio_validade, - data_fim_validade - from {{ ref("aux_gratuidade") }} - -- `rj-smtr.br_rj_riodejaneiro_bilhetagem_staging.gratuidade_aux` - -- TODO: FILTRAR PARTIÇÕES DE FORMA EFICIENTE - ), - tipo_pagamento as ( - select chave as id_tipo_pagamento, valor as tipo_pagamento - from `rj-smtr.br_rj_riodejaneiro_bilhetagem.dicionario` - where id_tabela = "transacao" and coluna = "id_tipo_pagamento" - ), - integracao as ( - select id_transacao, valor_rateio, datetime_processamento_integracao - from {{ ref("integracao") }} - -- `rj-smtr.br_rj_riodejaneiro_bilhetagem.integracao` - {% if is_incremental() %} - where - {% if transacao_partition_list | length > 0 %} - data in ({{ transacao_partition_list | join(", ") }}) - {% else %} data = "2000-01-01" - {% endif %} - {% endif %} - qualify - row_number() over ( - partition by id_transacao - order by datetime_processamento_integracao desc - ) - = 1 - ), - transacao_ordem as ( - select * - from {{ ref("aux_transacao_id_ordem_pagamento") }} - {% if is_incremental() %} - where - {% if transacao_partition_list | length > 0 %} - data in ({{ transacao_partition_list | join(", ") }}) - {% else %} data = "2000-01-01" - {% endif %} - {% endif %} - ), - new_data as ( - select - extract(date from data_transacao) as data, - extract(hour from data_transacao) as hora, - data_transacao as datetime_transacao, - data_processamento as datetime_processamento, - t.timestamp_captura as datetime_captura, - m.modo, - dc.id_consorcio, - dc.consorcio, - do.id_operadora, - do.operadora, - t.cd_linha as id_servico_jae, - -- s.servico, - l.nr_linha as servico_jae, - l.nm_linha as descricao_servico_jae, - sentido, - case - when m.modo = "VLT" - then substring(t.veiculo_id, 1, 3) - when m.modo = "BRT" - then null - else t.veiculo_id - end as id_veiculo, - t.numero_serie_validador as id_validador, - coalesce(t.id_cliente, t.pan_hash) as id_cliente, - id as id_transacao, - tp.tipo_pagamento, - tt.tipo_transacao, - g.tipo_gratuidade, - tipo_integracao as id_tipo_integracao, - null as id_integracao, - latitude_trx as latitude, - longitude_trx as longitude, - st_geogpoint(longitude_trx, latitude_trx) as geo_point_transacao, - null as stop_id, - null as stop_lat, - null as stop_lon, - valor_transacao - from transacao as t - left join - {{ source("cadastro", "modos") }} m - -- `rj-smtr.cadastro.modos` m - on t.id_tipo_modal = m.id_modo - and m.fonte = "jae" - left join - {{ ref("operadoras") }} do - -- `rj-smtr.cadastro.operadoras` do - on t.cd_operadora = do.id_operadora_jae - left join - {{ ref("consorcios") }} dc - -- `rj-smtr.cadastro.consorcios` dc - on t.cd_consorcio = dc.id_consorcio_jae - left join {{ ref("staging_linha") }} l on t.cd_linha = l.cd_linha - -- LEFT JOIN - -- {{ ref("servicos") }} AS s - -- ON - -- t.cd_linha = s.id_servico_jae - left join tipo_transacao tt on tt.id_tipo_transacao = t.tipo_transacao - left join tipo_pagamento tp on t.id_tipo_midia = tp.id_tipo_pagamento - left join - gratuidade g - on t.tipo_transacao = "21" - and t.id_cliente = g.id_cliente - and t.data_transacao >= g.data_inicio_validade - and (t.data_transacao < g.data_fim_validade or g.data_fim_validade is null) - left join - {{ ref("staging_linha_sem_ressarcimento") }} lsr - on t.cd_linha = lsr.id_linha - where lsr.id_linha is null and date(data_transacao) >= "2023-07-17" - ), - {% if is_incremental() %} - transacao_atual as ( - select * - from {{ this }} - where - {% if transacao_partition_list | length > 0 %} - data in ({{ transacao_partition_list | join(", ") }}) - {% else %} data = "2000-01-01" - {% endif %} - ), - {% endif %} - complete_partitions as ( - select - data, - hora, - datetime_transacao, - datetime_processamento, - datetime_captura, - modo, - id_consorcio, - consorcio, - id_operadora, - operadora, - id_servico_jae, - servico_jae, - descricao_servico_jae, - sentido, - id_veiculo, - id_validador, - id_cliente, - id_transacao, - tipo_pagamento, - tipo_transacao, - tipo_gratuidade, - id_tipo_integracao, - id_integracao, - latitude, - longitude, - geo_point_transacao, - stop_id, - stop_lat, - stop_lon, - valor_transacao, - 0 as priority - from new_data - - {% if is_incremental() %} - union all - - select - data, - hora, - datetime_transacao, - datetime_processamento, - datetime_captura, - modo, - id_consorcio, - consorcio, - id_operadora, - operadora, - id_servico_jae, - servico_jae, - descricao_servico_jae, - sentido, - id_veiculo, - id_validador, - id_cliente, - id_transacao, - tipo_pagamento, - tipo_transacao, - tipo_gratuidade, - id_tipo_integracao, - id_integracao, - latitude, - longitude, - geo_point_transacao, - stop_id, - stop_lat, - stop_lon, - valor_transacao, - 1 as priority - from transacao_atual - {% endif %} - ), - transacao_deduplicada as ( - select * except (rn) - from - ( - select - *, - row_number() over ( - partition by id_transacao - order by datetime_captura desc, priority - ) as rn - from complete_partitions - ) - where rn = 1 - ), - transacao_final as ( - select - t.data, - t.hora, - t.datetime_transacao, - t.datetime_processamento, - t.datetime_captura, - t.modo, - t.id_consorcio, - t.consorcio, - t.id_operadora, - t.operadora, - t.id_servico_jae, - t.servico_jae, - t.descricao_servico_jae, - t.sentido, - t.id_veiculo, - t.id_validador, - t.id_cliente, - sha256(t.id_cliente) as hash_cliente, - t.id_transacao, - t.tipo_pagamento, - t.tipo_transacao, - case - when t.tipo_transacao = "Integração" or i.id_transacao is not null - then "Integração" - when t.tipo_transacao in ("Débito", "Botoeira") - then "Integral" - else t.tipo_transacao - end as tipo_transacao_smtr, - t.tipo_gratuidade, - t.id_tipo_integracao, - t.id_integracao, - t.latitude, - t.longitude, - t.geo_point_transacao, - t.stop_id, - t.stop_lat, - t.stop_lon, - t.valor_transacao, - case - when - i.id_transacao is not null - or o.id_transacao is not null - or date(t.datetime_processamento) - < (select max(data_ordem) from {{ ref("ordem_pagamento_dia") }}) - then coalesce(i.valor_rateio, t.valor_transacao) * 0.96 - end as valor_pagamento, - o.data_ordem, - o.id_ordem_pagamento_servico_operador_dia, - o.id_ordem_pagamento_consorcio_operador_dia, - o.id_ordem_pagamento_consorcio_dia, - o.id_ordem_pagamento - from transacao_deduplicada t - left join integracao i using (id_transacao) - left join transacao_ordem o using (id_transacao) - ) - {% set columns = ( - list_columns() - | reject("in", ["versao", "datetime_ultima_atualizacao"]) - | list - ) %} -select - f.*, - '{{ var("version") }}' as versao, - {% if is_incremental() %} - case - when - a.id_transacao is null - or sha256( - concat( - {% for c in columns %} - {% if c == "geo_point_transacao" %} - ifnull(st_astext(f.geo_point_transacao), 'n/a') - {% elif c == "hash_cliente" %} - ifnull(to_base64(f.hash_cliente), 'n/a') - {% else %}ifnull(cast(f.{{ c }} as string), 'n/a') - {% endif %} - - {% if not loop.last %}, {% endif %} - - {% endfor %} - ) - ) != sha256( - concat( - {% for c in columns %} - {% if c == "geo_point_transacao" %} - ifnull(st_astext(a.geo_point_transacao), 'n/a') - {% elif c == "hash_cliente" %} - ifnull(to_base64(f.hash_cliente), 'n/a') - {% else %}ifnull(cast(a.{{ c }} as string), 'n/a') - {% endif %} - - {% if not loop.last %}, {% endif %} - - {% endfor %} - ) - ) - then current_datetime("America/Sao_Paulo") - else a.datetime_ultima_atualizacao - end - {% else %} current_datetime("America/Sao_Paulo") - {% endif %} as datetime_ultima_atualizacao -from transacao_final f -{% if is_incremental() %} left join transacao_atual a using (id_transacao) {% endif %} diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_consorcio_dia.sql b/queries/models/financeiro/bilhetagem_consorcio_dia.sql similarity index 95% rename from queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_consorcio_dia.sql rename to queries/models/financeiro/bilhetagem_consorcio_dia.sql index 5bb4dd81d..6de2a040c 100644 --- a/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_consorcio_dia.sql +++ b/queries/models/financeiro/bilhetagem_consorcio_dia.sql @@ -10,7 +10,7 @@ ) }} --- depends_on: {{ ref("ordem_pagamento_consorcio_operador_dia") }} +-- depends_on: {{ ref("bilhetagem_consorcio_operador_dia") }} SELECT o.data_ordem, o.id_ordem_pagamento_consorcio as id_ordem_pagamento_consorcio_dia, diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_consorcio_operador_dia.sql b/queries/models/financeiro/bilhetagem_consorcio_operador_dia.sql similarity index 98% rename from queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_consorcio_operador_dia.sql rename to queries/models/financeiro/bilhetagem_consorcio_operador_dia.sql index 2b7002675..cea7c8f0f 100644 --- a/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_consorcio_operador_dia.sql +++ b/queries/models/financeiro/bilhetagem_consorcio_operador_dia.sql @@ -9,7 +9,7 @@ incremental_strategy="insert_overwrite", ) }} --- depends_on: {{ ref("ordem_pagamento_servico_operador_dia") }} +-- depends_on: {{ ref("bilhetagem_servico_operador_dia") }} {% set ordem_pagamento_consorcio_operadora_staging = ref( "staging_ordem_pagamento_consorcio_operadora" ) %} @@ -112,7 +112,6 @@ with ) and o.timestamp_captura > datetime("{{var('date_range_start')}}") and o.timestamp_captura <= datetime("{{var('date_range_end')}}") - {% else %} where date(o.data) < date("2024-11-13") {% endif %} ), ordem_pagamento_completa as ( diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_dia.sql b/queries/models/financeiro/bilhetagem_dia.sql similarity index 95% rename from queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_dia.sql rename to queries/models/financeiro/bilhetagem_dia.sql index 848a0ccad..c9495a549 100644 --- a/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_dia.sql +++ b/queries/models/financeiro/bilhetagem_dia.sql @@ -10,7 +10,7 @@ ) }} --- depends_on: {{ ref("ordem_pagamento_consorcio_dia") }} +-- depends_on: {{ ref("bilhetagem_consorcio_dia") }} SELECT o.data_ordem, o.data_pagamento, diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_servico_operador_dia.sql b/queries/models/financeiro/bilhetagem_servico_operador_dia.sql similarity index 100% rename from queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_servico_operador_dia.sql rename to queries/models/financeiro/bilhetagem_servico_operador_dia.sql diff --git a/queries/models/financeiro/schema.yaml b/queries/models/financeiro/schema.yaml index 7009b4e7d..fd4675c48 100644 --- a/queries/models/financeiro/schema.yaml +++ b/queries/models/financeiro/schema.yaml @@ -93,4 +93,218 @@ models: - name: versao description: "{{ doc('versao') }}" - name: datetime_ultima_atualizacao - description: "{{ doc('datetime_ultima_atualizacao') }}" \ No newline at end of file + description: "{{ doc('datetime_ultima_atualizacao') }}" + - name: bilhetagem_consorcio_dia + description: "Tabela com os valores totais de pagamento da Jaé agregados por consorcio e dia" + columns: + - name: data_ordem + description: "Data da ordem de pagamento (partição)" + - name: id_consorcio + description: "Identificador do consórcio na tabela cadastro.consorcios" + - name: consorcio + description: "Nome do consórcio" + - name: id_ordem_pagamento + description: "Identificador da ordem pagamento no banco de dados da Jaé" + - name: quantidade_transacao_debito + description: "Quantidade de transações feitas na modalidade débito" + - name: valor_debito + description: "Valor total das transações feitas na modalidade débito (R$)" + - name: quantidade_transacao_especie + description: "Quantidade de transações feitas em espécie" + - name: valor_especie + description: "Valor total das transações feitas em espécie (R$)" + - name: quantidade_transacao_gratuidade + description: "Quantidade de transações feitas com gratuidade" + - name: valor_gratuidade + description: "Valor total das transações feitas com gratuidade (R$)" + - name: quantidade_transacao_integracao + description: "Quantidade de transações feitas com integração" + - name: valor_integracao + description: "Valor total das transações feitas com integração (R$)" + - name: quantidade_transacao_rateio_credito + description: "Quantidade total de transações consideradas no crédito da repartição tarifária" + - name: valor_rateio_credito + description: "Valor total creditado em decorrência da repartição tarifária (R$)" + - name: quantidade_transacao_rateio_debito + description: "Quantidade total de transações consideradas no débito da repartição tarifária" + - name: valor_rateio_debito + description: "Valor total debitado em decorrência da repartição tarifária (R$)" + - name: quantidade_total_transacao + description: "{{ doc('quantidade_total_transacao') }}" + - name: valor_total_transacao_bruto + description: "Valor total das transações realizadas (R$)" + - name: valor_total_transacao_liquido + description: "Valor total das transações menos o valor_desconto_taxa (R$)" + - name: valor_desconto_taxa + description: "Valor da taxa descontado do valor total (R$)" + - name: versao + description: "Código de controle de versão do dado (SHA Github)" + - name: bilhetagem_consorcio_operador_dia + description: "Tabela com os valores totais de pagamento da Jaé agregados por consorcio, operador e dia" + columns: + - name: data_ordem + description: "Data da ordem de pagamento (partição)" + - name: id_ordem_pagamento_consorcio_operador_dia + description: "Identificador único do registro no banco de dados da Jaé" + - name: id_consorcio + description: "Identificador do consórcio na tabela cadastro.consorcios" + - name: consorcio + description: "Nome do consórcio" + - name: id_operadora + description: "Identificador da operadora na tabela cadastro.operadoras" + - name: operadora + description: "Nome da operadora de transporte (mascarado se for pessoa física)" + - name: id_ordem_pagamento + description: "Identificador da ordem pagamento no banco de dados da Jaé" + - name: quantidade_transacao_debito + description: "Quantidade de transações feitas na modalidade débito" + - name: valor_debito + description: "Valor total das transações feitas na modalidade débito (R$)" + - name: quantidade_transacao_especie + description: "Quantidade de transações feitas em espécie" + - name: valor_especie + description: "Valor total das transações feitas em espécie (R$)" + - name: quantidade_transacao_gratuidade + description: "Quantidade de transações feitas com gratuidade" + - name: valor_gratuidade + description: "Valor total das transações feitas com gratuidade (R$)" + - name: quantidade_transacao_integracao + description: "Quantidade de transações feitas com integração" + - name: valor_integracao + description: "Valor total das transações feitas com integração (R$)" + - name: quantidade_transacao_rateio_credito + description: "Quantidade total de transações consideradas no crédito da repartição tarifária" + - name: valor_rateio_credito + description: "Valor total creditado em decorrência da repartição tarifária (R$)" + - name: quantidade_transacao_rateio_debito + description: "Quantidade total de transações consideradas no débito da repartição tarifária" + - name: valor_rateio_debito + description: "Valor total debitado em decorrência da repartição tarifária (R$)" + - name: quantidade_total_transacao + description: "{{ doc('quantidade_total_transacao') }}" + - name: valor_total_transacao_bruto + description: "Valor total das transações realizadas (R$)" + - name: valor_desconto_taxa + description: "Valor da taxa descontado do valor total (R$)" + - name: valor_total_transacao_liquido_ordem + description: "Valor total das transações menos o valor_desconto_taxa (R$)" + - name: valor_total_transacao_liquido + description: "Valor corrigido total das transações menos o valor_desconto_taxa (R$)" + - name: data_pagamento + description: "Data em que foi realizado o pagamento ao operador ou consórcio" + - name: valor_pago + description: "Valor pago ao operador ou consórcio (R$)" + - name: datetime_captura + description: Data e hora da captura da ordem em GMT-3 + - name: versao + description: "Código de controle de versão do dado (SHA Github)" + - name: datetime_ultima_atualizacao + data_type: datetime + quote: true + description: "{{ doc('datetime_ultima_atualizacao') }}" + - name: bilhetagem_dia + description: "Tabela com os valores totais de pagamento da Jaé agregados por dia" + columns: + - name: data_ordem + description: "Data da ordem de pagamento (partição)" + - name: data_pagamento + description: "Data de pagamento" + - name: id_ordem_pagamento + description: "Identificador da ordem pagamento no banco de dados da Jaé" + - name: quantidade_transacao_debito + description: "Quantidade de transações feitas na modalidade débito" + - name: valor_debito + description: "Valor total das transações feitas na modalidade débito (R$)" + - name: quantidade_transacao_especie + description: "Quantidade de transações feitas em espécie" + - name: valor_especie + description: "Valor total das transações feitas em espécie (R$)" + - name: quantidade_transacao_gratuidade + description: "Quantidade de transações feitas com gratuidade" + - name: valor_gratuidade + description: "Valor total das transações feitas com gratuidade (R$)" + - name: quantidade_transacao_integracao + description: "Quantidade de transações feitas com integração" + - name: valor_integracao + description: "Valor total das transações feitas com integração (R$)" + - name: quantidade_transacao_rateio_credito + description: "Quantidade total de transações consideradas no crédito da repartição tarifária" + - name: valor_rateio_credito + description: "Valor total creditado em decorrência da repartição tarifária (R$)" + - name: quantidade_total_transacao + description: "{{ doc('quantidade_total_transacao') }}" + - name: quantidade_transacao_rateio_debito + description: "Quantidade total de transações consideradas no débito da repartição tarifária" + - name: valor_rateio_debito + description: "Valor total debitado em decorrência da repartição tarifária (R$)" + - name: valor_total_transacao_bruto + description: "Valor total das transações realizadas (R$)" + - name: valor_desconto_taxa + description: "Valor da taxa descontado do valor total (R$)" + - name: valor_total_transacao_liquido + description: "Valor total das transações menos o valor_desconto_taxa (R$)" + - name: versao + description: "Código de controle de versão do dado (SHA Github)" + - name: bilhetagem_servico_operador_dia + descriptions: "Tabela com os valores totais de pagamento da Jaé agregados por serviço, operador e dia" + columns: + - name: data_ordem + description: "Data da ordem de pagamento (partição)" + - name: id_consorcio + description: "Identificador do consórcio na tabela cadastro.consorcios" + - name: consorcio + description: "Nome do consórcio" + - name: id_operadora + description: "Identificador da operadora na tabela cadastro.operadoras" + - name: operadora + description: "Nome da operadora de transporte (mascarado se for pessoa física)" + - name: id_servico_jae + description: "Identificador da linha no banco de dados da jaé (É possível cruzar os dados com a tabela rj-smtr.cadastro.servicos usando a coluna id_servico_jae)" + - name: servico_jae + description: "Nome curto da linha operada pelo veículo com variação de serviço (ex: 010, 011SN, ...) ou código da estação de BRT na Jaé" + - name: descricao_servico_jae + description: "Nome longo da linha operada pelo veículo com variação de serviço (ex: 010, 011SN, ...) ou nome da estação de BRT na Jaé" + # - name: servico + # description: "Nome curto da linha operada pelo veículo com variação de serviço (ex: 010, 011SN, ...) ou código da estação" + - name: id_ordem_pagamento + description: "Identificador da ordem pagamento no banco de dados da Jaé" + - name: id_ordem_ressarcimento + description: "Identificador da ordem ressarcimento no banco de dados da Jaé" + - name: quantidade_transacao_debito + description: "Quantidade de transações feitas na modalidade débito" + - name: valor_debito + description: "Valor total das transações feitas na modalidade débito (R$)" + - name: quantidade_transacao_especie + description: "Quantidade de transações feitas em espécie" + - name: valor_especie + description: "Valor total das transações feitas em espécie (R$)" + - name: quantidade_transacao_gratuidade + description: "Quantidade de transações feitas com gratuidade" + - name: valor_gratuidade + description: "Valor total das transações feitas com gratuidade (R$)" + - name: quantidade_transacao_integracao + description: "Quantidade de transações feitas com integração" + - name: valor_integracao + description: "Valor total das transações feitas com integração (R$)" + - name: quantidade_transacao_rateio_credito + description: "Quantidade total de transações consideradas no crédito da repartição tarifária" + - name: valor_rateio_credito + description: "Valor total creditado em decorrência da repartição tarifária (R$)" + - name: quantidade_transacao_rateio_debito + description: "Quantidade total de transações consideradas no débito da repartição tarifária" + - name: valor_rateio_debito + description: "Valor total debitado em decorrência da repartição tarifária (R$)" + - name: quantidade_total_transacao + description: "{{ doc('quantidade_total_transacao') }}" + - name: valor_total_transacao_bruto + description: "Valor total das transações realizadas (R$)" + - name: valor_desconto_taxa + description: "Valor da taxa descontado do valor total (R$)" + - name: valor_total_transacao_liquido + description: "Valor total das transações menos o valor_desconto_taxa (R$)" + - name: quantidade_total_transacao_captura + description: "Quantidade total de transações calculada pela captura de transações" + - name: valor_total_transacao_captura + description: "Valor total das transações realizadas calculada pela captura de transações (R$)" + - name: versao + description: "Código de controle de versão do dado (SHA Github)" \ No newline at end of file diff --git a/queries/models/bilhetagem/staging/staging_ordem_pagamento.sql b/queries/models/financeiro/staging/staging_ordem_pagamento.sql similarity index 100% rename from queries/models/bilhetagem/staging/staging_ordem_pagamento.sql rename to queries/models/financeiro/staging/staging_ordem_pagamento.sql diff --git a/queries/models/bilhetagem/staging/staging_ordem_pagamento_consorcio.sql b/queries/models/financeiro/staging/staging_ordem_pagamento_consorcio.sql similarity index 100% rename from queries/models/bilhetagem/staging/staging_ordem_pagamento_consorcio.sql rename to queries/models/financeiro/staging/staging_ordem_pagamento_consorcio.sql diff --git a/queries/models/bilhetagem/staging/staging_ordem_pagamento_consorcio_operadora.sql b/queries/models/financeiro/staging/staging_ordem_pagamento_consorcio_operadora.sql similarity index 100% rename from queries/models/bilhetagem/staging/staging_ordem_pagamento_consorcio_operadora.sql rename to queries/models/financeiro/staging/staging_ordem_pagamento_consorcio_operadora.sql diff --git a/queries/models/bilhetagem/staging/staging_ordem_rateio.sql b/queries/models/financeiro/staging/staging_ordem_rateio.sql similarity index 100% rename from queries/models/bilhetagem/staging/staging_ordem_rateio.sql rename to queries/models/financeiro/staging/staging_ordem_rateio.sql diff --git a/queries/models/bilhetagem/staging/staging_ordem_ressarcimento.sql b/queries/models/financeiro/staging/staging_ordem_ressarcimento.sql similarity index 100% rename from queries/models/bilhetagem/staging/staging_ordem_ressarcimento.sql rename to queries/models/financeiro/staging/staging_ordem_ressarcimento.sql diff --git a/queries/models/validacao_dados_jae/staging/ordem_pagamento_consorcio_dia_invalida.sql b/queries/models/validacao_dados_jae/staging/ordem_pagamento_consorcio_dia_invalida.sql index 33aa00711..7dcd91677 100644 --- a/queries/models/validacao_dados_jae/staging/ordem_pagamento_consorcio_dia_invalida.sql +++ b/queries/models/validacao_dados_jae/staging/ordem_pagamento_consorcio_dia_invalida.sql @@ -18,7 +18,7 @@ WITH ordem_pagamento_consorcio_operador_dia AS ( SUM(quantidade_total_transacao) AS quantidade_total_transacao, SUM(valor_total_transacao_liquido_ordem) AS valor_total_transacao_liquido, FROM - {{ ref("ordem_pagamento_consorcio_operador_dia") }} + {{ ref("bilhetagem_consorcio_operador_dia") }} {% if is_incremental() %} WHERE data_ordem = DATE("{{var('run_date')}}") @@ -36,7 +36,7 @@ ordem_pagamento_consorcio_dia AS ( quantidade_total_transacao, valor_total_transacao_liquido FROM - {{ ref("ordem_pagamento_consorcio_dia") }} + {{ ref("bilhetagem_consorcio_dia") }} {% if is_incremental() %} WHERE data_ordem = DATE("{{var('run_date')}}") diff --git a/queries/models/validacao_dados_jae/staging/ordem_pagamento_consorcio_operador_dia_invalida.sql b/queries/models/validacao_dados_jae/staging/ordem_pagamento_consorcio_operador_dia_invalida.sql index 0debba349..0d7d0a114 100644 --- a/queries/models/validacao_dados_jae/staging/ordem_pagamento_consorcio_operador_dia_invalida.sql +++ b/queries/models/validacao_dados_jae/staging/ordem_pagamento_consorcio_operador_dia_invalida.sql @@ -19,7 +19,7 @@ WITH ordem_pagamento_servico_operador_dia AS ( SUM(quantidade_total_transacao) AS quantidade_total_transacao, SUM(valor_total_transacao_liquido) AS valor_total_transacao_liquido, FROM - {{ ref("ordem_pagamento_servico_operador_dia") }} + {{ ref("bilhetagem_servico_operador_dia") }} {% if is_incremental() %} WHERE data_ordem = DATE("{{var('run_date')}}") @@ -39,7 +39,7 @@ ordem_pagamento_consorcio_operador_dia AS ( quantidade_total_transacao, valor_total_transacao_liquido_ordem AS valor_total_transacao_liquido FROM - {{ ref("ordem_pagamento_consorcio_operador_dia") }} + {{ ref("bilhetagem_consorcio_operador_dia") }} {% if is_incremental() %} WHERE data_ordem = DATE("{{var('run_date')}}") diff --git a/queries/models/validacao_dados_jae/staging/ordem_pagamento_dia_invalida.sql b/queries/models/validacao_dados_jae/staging/ordem_pagamento_dia_invalida.sql index 4b9824da5..d4488c187 100644 --- a/queries/models/validacao_dados_jae/staging/ordem_pagamento_dia_invalida.sql +++ b/queries/models/validacao_dados_jae/staging/ordem_pagamento_dia_invalida.sql @@ -16,7 +16,7 @@ WITH ordem_pagamento_consorcio_dia AS ( SUM(quantidade_total_transacao) AS quantidade_total_transacao, SUM(valor_total_transacao_liquido) AS valor_total_transacao_liquido FROM - {{ ref("ordem_pagamento_consorcio_dia") }} + {{ ref("bilhetagem_consorcio_dia") }} {% if is_incremental() %} WHERE data_ordem = DATE("{{var('run_date')}}") @@ -32,7 +32,7 @@ ordem_pagamento_dia AS ( quantidade_total_transacao, valor_total_transacao_liquido FROM - {{ ref("ordem_pagamento_dia") }} + {{ ref("bilhetagem_dia") }} {% if is_incremental() %} WHERE data_ordem = DATE("{{var('run_date')}}") diff --git a/queries/models/validacao_dados_jae/staging/ordem_pagamento_servico_operador_dia_invalida.sql b/queries/models/validacao_dados_jae/staging/ordem_pagamento_servico_operador_dia_invalida.sql index bd915d21c..08abb11b2 100644 --- a/queries/models/validacao_dados_jae/staging/ordem_pagamento_servico_operador_dia_invalida.sql +++ b/queries/models/validacao_dados_jae/staging/ordem_pagamento_servico_operador_dia_invalida.sql @@ -62,7 +62,7 @@ ordem_pagamento AS ( SELECT * FROM - {{ ref("ordem_pagamento_servico_operador_dia") }} + {{ ref("bilhetagem_servico_operador_dia") }} {% if is_incremental() %} WHERE data_ordem = DATE("{{var('run_date')}}") @@ -73,7 +73,7 @@ id_ordem_pagamento AS ( data_ordem, id_ordem_pagamento FROM - {{ ref("ordem_pagamento_dia") }} + {{ ref("bilhetagem_dia") }} {% if is_incremental() %} WHERE data_ordem = DATE("{{var('run_date')}}") diff --git a/queries/selectors.yml b/queries/selectors.yml index 8a24f258d..9139977c5 100644 --- a/queries/selectors.yml +++ b/queries/selectors.yml @@ -93,4 +93,129 @@ selectors: description: Materialização das tabelas utilizadas nos dashboards do subsidio definition: method: fqn - value: monitoramento_viagem_transacao \ No newline at end of file + value: monitoramento_viagem_transacao + + - name: cadastro + description: Materialização das tabelas de cadastro + definition: + union: + - method: fqn + value: staging_linha + - method: fqn + value: staging_linha_consorcio_operadora_transporte + - method: fqn + value: staging_operadora_empresa + - method: fqn + value: staging_cliente + - method: fqn + value: staging_operadora_pessoa_fisica + - method: fqn + value: aux_servicos_gtfs + - method: fqn + value: cadastro + + - name: transacao + description: Materialização das tabelas de transação da bilhetagem + definition: + union: + - method: fqn + value: dicionario_bilhetagem + - method: fqn + value: staging_cliente + - method: fqn + value: staging_endereco + - method: fqn + value: staging_gratuidade + - method: fqn + value: staging_produto + - method: fqn + value: staging_linha_consorcio + - method: fqn + value: staging_linha + - method: fqn + value: staging_linha_sem_ressarcimento + - method: fqn + value: aux_gratuidade + - method: fqn + value: aux_transacao_particao + - method: fqn + value: transacao + - method: fqn + value: transacao_riocard + + - name: passageiro_hora + description: Materialização das tabelas agregadas de bilhetagem + definition: + union: + - method: fqn + value: aux_passageiro_hora + - method: fqn + value: passageiro_hora + - method: fqn + value: passageiro_tile_hora + - method: fqn + value: view_passageiro_hora + - method: fqn + value: view_passageiro_tile_hora + + - name: gps_validador + description: Materialização das tabelas de gps do validados da Jaé + definition: + union: + - method: fqn + value: staging_gps_validador + - method: fqn + value: staging_linha + - method: fqn + value: aux_gps_validador + - method: fqn + value: gps_validador + - method: fqn + value: gps_validador_van + - method: fqn + value: dashboard_bilhetagem_implantacao_jae + + - name: integracao + description: Materialização das tabelas de integracao da bilhetagem + definition: + union: + - method: fqn + value: staging_integracao_transacao + - method: fqn + value: staging_linha + - method: fqn + value: staging_linha_sem_ressarcimento + - method: fqn + value: integracao + - method: fqn + value: view_integracao + + - name: financeiro_bilhetagem + description: Materialização das tabelas financeiras da bilhetagem + definition: + union: + - method: fqn + value: staging_integracao_transacao + - method: fqn + value: staging_linha + - method: fqn + value: staging_linha_sem_ressarcimento + - method: fqn + value: staging_ordem_pagamento_consorcio_operadora + - method: fqn + value: staging_ordem_pagamento_consorcio + - method: fqn + value: staging_ordem_pagamento + - method: fqn + value: staging_ordem_ressarcimento + - method: fqn + value: staging_ordem_rateio + - method: fqn + value: bilhetagem_servico_operador_dia + - method: fqn + value: bilhetagem_consorcio_operador_dia + - method: fqn + value: bilhetagem_consorcio_dia + - method: fqn + value: bilhetagem_dia +