From 851c9afbb935718f3bf5a9985f7c38fef4eddb07 Mon Sep 17 00:00:00 2001 From: Yam ZhengLim Date: Wed, 2 Aug 2023 04:12:27 +0000 Subject: [PATCH] sales exchange lead activations --- ...sheet__sales_exchange_lead_activations.sql | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 models/staging/googlesheet/stg_googlesheet__sales_exchange_lead_activations.sql diff --git a/models/staging/googlesheet/stg_googlesheet__sales_exchange_lead_activations.sql b/models/staging/googlesheet/stg_googlesheet__sales_exchange_lead_activations.sql new file mode 100644 index 0000000..917d47f --- /dev/null +++ b/models/staging/googlesheet/stg_googlesheet__sales_exchange_lead_activations.sql @@ -0,0 +1,78 @@ +-- IMPORT +WITH lead_activations AS ( + SELECT * FROM {{ source('src_googlesheet_airbyte', '_airbyte_raw_leads_activations') }} +), + +-- LOGIC +parse_json_leads AS ( + SELECT + _airbyte_ab_id AS sales_team_lead_activation_id, + parse_json(_airbyte_data) AS leads_json, + _airbyte_emitted_at AS _airbyte_emitted_datetime + + FROM lead_activations +), + +flatten_json AS ( + + SELECT + sales_team_lead_activation_id, + leads_json['agent_name']::STRING AS agent_name, + leads_json['company_marking']::STRING AS company_marking_id, + leads_json['contact_number']::STRING AS contact_number, + leads_json['email']::STRING AS contact_email, + leads_json['sorce']::STRING AS contact_method, + leads_json['tag']::STRING AS contact_status, + leads_json['user_name']::STRING AS contact_name, + leads_json['remark']::STRING AS sales_team_remark, + COALESCE( + TRY_TO_TIMESTAMP(leads_json['contacted_datetime']::STRING, 'DD-MM-YYYY'), + TRY_TO_TIMESTAMP(leads_json['contacted_datetime']::STRING, 'DD-MM-YYYY HH24:MI:SS') + ) AS sales_team_contacted_datetime, + COALESCE( + TRY_TO_TIMESTAMP(leads_json['register_date']::STRING, 'DD-MM-YYYY'), + TRY_TO_TIMESTAMP(leads_json['register_date']::STRING, 'DD-MM-YYYY HH24:MI:SS') + ) AS exchange_registered_datetime, + COALESCE( + TRY_TO_TIMESTAMP(leads_json['user_first_reply_datetime']::STRING, 'DD-MM-YYYY'), + TRY_TO_TIMESTAMP(leads_json['user_first_reply_datetime']::STRING, 'DD-MM-YYYY HH24:MI:SS') + ) AS first_reply_datetime, + + _airbyte_emitted_datetime, + '{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime + + FROM parse_json_leads +), + +-- FINAL +final__stg_googlesheet__sales_exchange_lead_activations AS ( + + SELECT + -- ids + sales_team_lead_activation_id, + + -- dimensions + company_marking_id, + agent_name, + contact_name, + contact_number, + contact_email, + contact_method, + contact_status, + sales_team_remark, + + -- measures + + -- date/times + sales_team_contacted_datetime, + first_reply_datetime, + exchange_registered_datetime, + + -- metadata + _airbyte_emitted_datetime, + _dbt_ran_datetime + + FROM flatten_json +) + +SELECT * FROM final__stg_googlesheet__sales_exchange_lead_activations \ No newline at end of file