Merged PR 3878: Propagates account type to intermediate
# Description Propagates account type to intermediate. Also, adds minimal documentation to `int_core__unified_user`. There's only 54 test accounts in Unified User and 49 that are considered as User Hosts. So it's not, by all means, an extensive list of test accounts... There's a mismatch between the `created_date_utc` and `updated_date_utc` that these are timestamps. There's another ticket in the backlog to handle this alongside the dependency, so it's not included here. # Checklist - [X] The edited models and dependants run properly with production data. - [X] The edited models are sufficiently documented. - [X] The edited models contain PK tests, and I've ran and passed them. - [X] I have checked for DRY opportunities with other models and docs. - [X] I've picked the right materialization for the affected models. # Other - [ ] Check if a full-refresh is required after this PR is merged. Related work items: #18944
This commit is contained in:
parent
7b28bbb925
commit
b20b819456
3 changed files with 160 additions and 6 deletions
|
|
@ -1,11 +1,15 @@
|
||||||
|
{% set test_account_type_name = "('TEST')" %}
|
||||||
|
|
||||||
with
|
with
|
||||||
stg_core__user as (select * from {{ ref("stg_core__user") }}),
|
stg_core__user as (select * from {{ ref("stg_core__user") }}),
|
||||||
stg_core__superhog_user as (select * from {{ ref("stg_core__superhog_user") }}),
|
stg_core__superhog_user as (select * from {{ ref("stg_core__superhog_user") }}),
|
||||||
stg_core__currency as (select * from {{ ref("stg_core__currency") }}),
|
stg_core__currency as (select * from {{ ref("stg_core__currency") }}),
|
||||||
stg_core__country as (select * from {{ ref("stg_core__country") }})
|
stg_core__country as (select * from {{ ref("stg_core__country") }}),
|
||||||
|
stg_core__account_type as (select * from {{ ref("stg_core__account_type") }})
|
||||||
select
|
select
|
||||||
u.id_user,
|
u.id_user,
|
||||||
u.id_account_type,
|
u.id_account_type,
|
||||||
|
act.account_type_display_name as account_type,
|
||||||
u.id_billing_country,
|
u.id_billing_country,
|
||||||
co.country_name as billing_country_name,
|
co.country_name as billing_country_name,
|
||||||
co.iso_2 as billing_country_iso_2,
|
co.iso_2 as billing_country_iso_2,
|
||||||
|
|
@ -42,8 +46,12 @@ select
|
||||||
su.number_of_properties,
|
su.number_of_properties,
|
||||||
su.id_superhog_verified_set,
|
su.id_superhog_verified_set,
|
||||||
su.platform_comms_recipient,
|
su.platform_comms_recipient,
|
||||||
su.id_user_verification_status
|
su.id_user_verification_status,
|
||||||
|
case
|
||||||
|
when act.account_type_name in {{ test_account_type_name }} then true else false
|
||||||
|
end as is_test_account
|
||||||
from stg_core__user as u
|
from stg_core__user as u
|
||||||
inner join stg_core__superhog_user as su on u.id_user = su.id_superhoguser
|
inner join stg_core__superhog_user as su on u.id_user = su.id_superhoguser
|
||||||
left join stg_core__currency cu on u.id_account_currency = cu.id_currency
|
left join stg_core__currency cu on u.id_account_currency = cu.id_currency
|
||||||
left join stg_core__country co on u.id_billing_country = co.id_country
|
left join stg_core__country co on u.id_billing_country = co.id_country
|
||||||
|
left join stg_core__account_type act on u.id_account_type = act.id_account_type
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,8 @@ with
|
||||||
)
|
)
|
||||||
select
|
select
|
||||||
uu.id_user as id_user_host,
|
uu.id_user as id_user_host,
|
||||||
uu.id_account_type,
|
uu.account_type,
|
||||||
|
uu.is_test_account,
|
||||||
uu.id_billing_country,
|
uu.id_billing_country,
|
||||||
uu.billing_country_name,
|
uu.billing_country_name,
|
||||||
uu.billing_country_iso_2,
|
uu.billing_country_iso_2,
|
||||||
|
|
|
||||||
|
|
@ -178,6 +178,144 @@ models:
|
||||||
tests:
|
tests:
|
||||||
- not_null
|
- not_null
|
||||||
- unique
|
- unique
|
||||||
|
- name: id_account_type
|
||||||
|
data_type: bigint
|
||||||
|
description: |
|
||||||
|
The ID of the account type. Might be null and not necessarily up to date.
|
||||||
|
- name: account_type
|
||||||
|
data_type: character varying
|
||||||
|
description: |
|
||||||
|
The name of the account type. Might be null and not necessarily up to date.
|
||||||
|
- name: id_billing_country
|
||||||
|
data_type: bigint
|
||||||
|
description: The ID of the billing country. Can be null.
|
||||||
|
- name: billing_country_name
|
||||||
|
data_type: character varying
|
||||||
|
description: The name of the billing country. Can be null.
|
||||||
|
- name: billing_country_iso_2
|
||||||
|
data_type: char(2)
|
||||||
|
description: The ISO 3166-1 alpha-2 code of the billing country. Can be null.
|
||||||
|
- name: billing_country_iso_3
|
||||||
|
data_type: char(3)
|
||||||
|
description: The ISO 3166-1 alpha-3 code of the billing country. Can be null.
|
||||||
|
- name: account_currency_iso4217
|
||||||
|
data_type: char(3)
|
||||||
|
description: The ISO 4217 code of the account currency. Can be null.
|
||||||
|
- name: user_code
|
||||||
|
data_type: bigint
|
||||||
|
description: The user code.
|
||||||
|
- name: first_name
|
||||||
|
data_type: character varying
|
||||||
|
description: The first name of the user.
|
||||||
|
- name: last_name
|
||||||
|
data_type: character varying
|
||||||
|
description: The last name of the user.
|
||||||
|
- name: email
|
||||||
|
data_type: character varying
|
||||||
|
description: The email of the user.
|
||||||
|
- name: phone_number
|
||||||
|
data_type: character varying
|
||||||
|
description: The phone number of the user.
|
||||||
|
- name: title
|
||||||
|
data_type: character varying
|
||||||
|
description: The title of the user.
|
||||||
|
- name: id_deal
|
||||||
|
data_type: character varying
|
||||||
|
description: |
|
||||||
|
The ID of the deal of the user. It only applies to client accounts.
|
||||||
|
Can be null.
|
||||||
|
- name: is_deleted
|
||||||
|
data_type: boolean
|
||||||
|
description: |
|
||||||
|
True if the user has been deleted. False otherwise.
|
||||||
|
- name: joined_at_utc
|
||||||
|
data_type: timestamp
|
||||||
|
description: The timestamp when the user joined.
|
||||||
|
- name: joined_date_utc
|
||||||
|
data_type: date
|
||||||
|
description: The date when the user joined.
|
||||||
|
- name: user_name
|
||||||
|
data_type: character varying
|
||||||
|
description: The user name.
|
||||||
|
- name: code_prefix
|
||||||
|
data_type: character varying
|
||||||
|
description: The code prefix.
|
||||||
|
- name: billing_town
|
||||||
|
data_type: character varying
|
||||||
|
description: The billing town.
|
||||||
|
- name: company_name
|
||||||
|
data_type: character varying
|
||||||
|
description: The company name.
|
||||||
|
- name: is_email_confirmed
|
||||||
|
data_type: boolean
|
||||||
|
description: |
|
||||||
|
True if the email of the user has been confirmed. False otherwise.
|
||||||
|
- name: is_lockout_enabled
|
||||||
|
data_type: boolean
|
||||||
|
description: |
|
||||||
|
True if the lockout has been enabled. False otherwise.
|
||||||
|
- name: billing_postcode
|
||||||
|
data_type: character varying
|
||||||
|
description: The billing postcode.
|
||||||
|
- name: is_twofactor_enabled
|
||||||
|
data_type: boolean
|
||||||
|
description: |
|
||||||
|
True if the two-factor authentication has been enabled. False otherwise.
|
||||||
|
- name: access_failed_count
|
||||||
|
data_type: bigint
|
||||||
|
description: The access failed count.
|
||||||
|
- name: lockout_end_date_utc
|
||||||
|
data_type: timestamp
|
||||||
|
description: The lockout end date.
|
||||||
|
- name: avatar
|
||||||
|
data_type: character varying
|
||||||
|
description: The avatar of the user.
|
||||||
|
- name: id_airbnb
|
||||||
|
data_type: character varying
|
||||||
|
description: The ID of the Airbnb.
|
||||||
|
- name: airbnb_url
|
||||||
|
data_type: character varying
|
||||||
|
description: The Airbnb URL.
|
||||||
|
- name: created_date_utc
|
||||||
|
data_type: timestamp
|
||||||
|
description: The timestamp when the user was created. The field name needs to be fixed.
|
||||||
|
- name: updated_date_utc
|
||||||
|
data_type: timestamp
|
||||||
|
description: The timestamp when the user was updated. The field name needs to be fixed.
|
||||||
|
- name: verified_at_utc
|
||||||
|
data_type: timestamp
|
||||||
|
description: The timestamp when the user was verified.
|
||||||
|
- name: verified_date_utc
|
||||||
|
data_type: date
|
||||||
|
description: The date when the user was verified.
|
||||||
|
- name: flag_as_problem
|
||||||
|
data_type: boolean
|
||||||
|
description: |
|
||||||
|
True if the user has been flagged as a problem. False otherwise.
|
||||||
|
- name: number_of_properties
|
||||||
|
data_type: bigint
|
||||||
|
description: |
|
||||||
|
The number of properties according to the backend. For a better
|
||||||
|
figure we recommend using Hubspot data. For a real figure
|
||||||
|
of properties actually being active in our business, we recommend
|
||||||
|
using other sources of data.
|
||||||
|
- name: id_superhog_verified_set
|
||||||
|
data_type: bigint
|
||||||
|
description: The ID of the Superhog verified set.
|
||||||
|
- name: platform_comms_recipient
|
||||||
|
data_type: boolean
|
||||||
|
description: |
|
||||||
|
True if the user is a platform comms recipient. False otherwise.
|
||||||
|
- name: id_user_verification_status
|
||||||
|
data_type: bigint
|
||||||
|
description: The ID of the user verification status.
|
||||||
|
- name: is_test_account
|
||||||
|
data_type: boolean
|
||||||
|
description: |
|
||||||
|
True if the user is a test account. False otherwise.
|
||||||
|
Note that there might be other users that are test accounts
|
||||||
|
that are not controlled by this field. However it provides
|
||||||
|
a first level of filtering.
|
||||||
|
|
||||||
- name: int_core__vr_check_in_cover
|
- name: int_core__vr_check_in_cover
|
||||||
description: "This tables holds information on verification requests
|
description: "This tables holds information on verification requests
|
||||||
|
|
@ -1738,10 +1876,17 @@ models:
|
||||||
tests:
|
tests:
|
||||||
- not_null
|
- not_null
|
||||||
- unique
|
- unique
|
||||||
- name: id_account_type
|
- name: account_type
|
||||||
data_type: integer
|
data_type: string
|
||||||
description: |
|
description: |
|
||||||
Account type ID. Can be null and might be not up-to-date.
|
Name of the account type. Can be null and might be not up-to-date.
|
||||||
|
- name: is_test_account
|
||||||
|
data_type: boolean
|
||||||
|
description: |
|
||||||
|
Flag to identify if the user is a test account.
|
||||||
|
Can be null and might be not up-to-date. Be aware that
|
||||||
|
this might not include all test accounts, but it provides
|
||||||
|
a first level of filtering.
|
||||||
- name: id_billing_country
|
- name: id_billing_country
|
||||||
data_type: integer
|
data_type: integer
|
||||||
description: |
|
description: |
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue