diff --git a/models/staging/exchange/stg_exchange__seasonal_segments.sql b/models/staging/exchange/stg_exchange__seasonal_segments.sql new file mode 100644 index 0000000..c5f32fb --- /dev/null +++ b/models/staging/exchange/stg_exchange__seasonal_segments.sql @@ -0,0 +1,73 @@ +-- IMPORT +WITH seasonal_segments AS ( + SELECT * FROM {{ ref('base_exchange__seasonal_segments') }} +), + +segments AS ( + SELECT * FROM {{ ref('base_exchange__segments') }} +), + +seasonal_segment_ab_test_groups AS ( + SELECT * FROM {{ ref('seed_exchange__seasonal_segment_ab_test_groups') }} +), + +status AS ( + SELECT * FROM {{ ref('seed_exchange__status') }} + WHERE category = 'DEFAULT' +), + +-- LOGIC +id_to_name AS ( + SELECT + seasonal_segments.seasonal_segment_id, + seasonal_segments.company_id, + COALESCE(segments.name, seasonal_segments.segment_id::string) AS segment_name, + COALESCE(status.name, seasonal_segments.status::string) AS status, + seasonal_segment_ab_test_groups.ab_test_group, + seasonal_segments.seasonal_segment_started_datetime, + seasonal_segments.seasonal_segment_ended_datetime, + seasonal_segments.seasonal_segment_deleted_datetime, + seasonal_segments.seasonal_segment_created_datetime, + seasonal_segments.seasonal_segment_updated_datetime, + '{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime + + FROM seasonal_segments + + LEFT JOIN segments + ON (seasonal_segments.segment_id = segments.segment_id) + + LEFT JOIN status + ON (seasonal_segments.status = status.id) + + LEFT JOIN seasonal_segment_ab_test_groups + ON (seasonal_segments.seasonal_segment_id = seasonal_segment_ab_test_groups.ab_test_group) +), + +-- FINAL +final__stg_exchange__seasonal_segments AS ( + SELECT + -- ids + seasonal_segment_id, + company_id, + + -- dimensions + segment_name, + status, + ab_test_group, + + -- measures + + -- date/times + seasonal_segment_started_datetime, + seasonal_segment_ended_datetime, + seasonal_segment_deleted_datetime, + seasonal_segment_created_datetime, + seasonal_segment_updated_datetime, + + -- metadata + _dbt_ran_datetime + + FROM id_to_name +) + +SELECT * FROM final__stg_exchange__seasonal_segments diff --git a/seeds/exchange/seed_exchange__seasonal_segment_ab_test_groups.csv b/seeds/exchange/seed_exchange__seasonal_segment_ab_test_groups.csv new file mode 100644 index 0000000..e524451 --- /dev/null +++ b/seeds/exchange/seed_exchange__seasonal_segment_ab_test_groups.csv @@ -0,0 +1,2 @@ +seasonal_segment_id, ab_test_group +null, null \ No newline at end of file