diff --git a/models/core/dim_orgs.sql b/models/core/dim_orgs.sql index a2fc2f65..5d2262d1 100644 --- a/models/core/dim_orgs.sql +++ b/models/core/dim_orgs.sql @@ -2,9 +2,10 @@ WITH orgs AS ( --prod SELECT org_id - , MIN(event_timestamp) AS created_at - FROM {{ ref('signed_in') }} - GROUP BY 1 + , org_name + , employee_range + , created_at + FROM {{ ref('org_created') }} -- --dev -- SELECT @@ -28,7 +29,7 @@ WITH orgs AS ( org_id , event_timestamp AS sub_created_at , plan as sub_plan - , price as sub_price + , coalesce(price, 0) as sub_price FROM {{ ref('subscription_created') }} ) @@ -38,7 +39,7 @@ SELECT , created_at , num_users , sub_created_at - , sub_plan + , case when num_users = 1 then 'Individual' else sub_plan end as sub_plan , sub_price FROM orgs LEFT JOIN user_count USING (org_id) diff --git a/models/core/dim_orgs_unit_test.yml b/models/core/dim_orgs_unit_test.yml new file mode 100644 index 00000000..2bef7920 --- /dev/null +++ b/models/core/dim_orgs_unit_test.yml @@ -0,0 +1,17 @@ +unit_tests: + - name: test_is_individual_sub_plan + description: "Check if individual case when logic categorizes sub plans correctly for num_users equal to 1" + model: dim_orgs + given: + - input: ref('org_created') + rows: + - {org_id: 100000012, org_name: Crow Bar, domain: crowbar.edu, employee_range: 0-9, created_at: 2022-04-01 04:00:03} + - input: ref('user_created') + rows: + - {user_id: 100000021, org_id: 100000012, first_name: Tamara, last_name: Herman, email: therman@crowbar.edu, is_first_user: True, created_at: 2022-04-01T04:00:03Z} + - input: ref('subscription_created') + rows: + - {org_id: 100000011, event_timestamp: 2022-05-20T17:45:32Z, activity: subscribed, plan: Team, price: 99, deployment: SaaS} + expect: + rows: + - {org_id: 100000012, created_at: 2022-04-01 04:00:03, num_users: 1, sub_created_at: null, sub_plan: Individual, sub_price: null} diff --git a/models/syncs/sales_sync.sql b/models/syncs/sales_sync.sql index ff10d8c5..2567aacf 100644 --- a/models/syncs/sales_sync.sql +++ b/models/syncs/sales_sync.sql @@ -3,7 +3,7 @@ WITH org_events AS ( * FROM {{ ref('dim_orgs') }} LEFT JOIN {{ ref('feature_used') }} USING (org_id) - WHERE sub_plan IS NULL + WHERE sub_plan IS NULL or sub_plan = 'Individual' ) , final AS ( diff --git a/requirements.txt b/requirements.txt index fc15ed4d..a23efd69 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ -dbt-snowflake==1.6.2 +dbt-snowflake==1.8.0b3 +# dbt-core==1.8.0b2 \ No newline at end of file