Listings report model
This commit is contained in:
parent
353972984e
commit
3b6f6eed0a
4 changed files with 314 additions and 0 deletions
|
|
@ -0,0 +1,51 @@
|
||||||
|
with
|
||||||
|
int_core__accommodation as (select * from {{ ref("int_core__accommodation") }}),
|
||||||
|
int_core__bookings as (select * from {{ ref("int_core__bookings") }}),
|
||||||
|
int_core__user_host as (select * from {{ ref("int_core__user_host") }})
|
||||||
|
select
|
||||||
|
a.id_accommodation,
|
||||||
|
a.id_user_host,
|
||||||
|
uh.id_deal,
|
||||||
|
uh.company_name,
|
||||||
|
uh.email,
|
||||||
|
uh.first_name,
|
||||||
|
uh.last_name,
|
||||||
|
a.is_active,
|
||||||
|
a.friendly_name,
|
||||||
|
a.country_name,
|
||||||
|
a.town,
|
||||||
|
a.address_line_1,
|
||||||
|
a.address_line_2,
|
||||||
|
a.country_iso_2,
|
||||||
|
a.postcode,
|
||||||
|
a.country_preferred_currency_code as currency_iso4217,
|
||||||
|
a.created_date_utc,
|
||||||
|
sum(
|
||||||
|
case when upper(b.booking_state) = 'APPROVED' then 1 else 0 end
|
||||||
|
) as approved_bookings,
|
||||||
|
sum(
|
||||||
|
case when upper(b.booking_state) = 'CANCELLED' then 1 else 0 end
|
||||||
|
) as cancelled_bookings,
|
||||||
|
sum(
|
||||||
|
case when upper(b.booking_state) = 'FLAGGED' then 1 else 0 end
|
||||||
|
) as flagged_bookings,
|
||||||
|
sum(
|
||||||
|
case when upper(b.booking_state) = 'INCOMPLETEINFORMATION' then 1 else 0 end
|
||||||
|
) as incomplete_information_bookings,
|
||||||
|
sum(
|
||||||
|
case when upper(b.booking_state) = 'NOFLAGS' then 1 else 0 end
|
||||||
|
) as no_flags_bookings,
|
||||||
|
sum(
|
||||||
|
case when upper(b.booking_state) = 'NOTAPPROVED' then 1 else 0 end
|
||||||
|
) as not_approved_bookings,
|
||||||
|
sum(
|
||||||
|
case when upper(b.booking_state) = 'REJECTED' then 1 else 0 end
|
||||||
|
) as rejected_bookings,
|
||||||
|
count(b.id_booking) as total_bookings
|
||||||
|
from int_core__accommodation a
|
||||||
|
left join int_core__user_host uh on a.id_user_host = uh.id_user_host
|
||||||
|
left join
|
||||||
|
int_core__bookings b
|
||||||
|
on a.id_accommodation = b.id_accommodation
|
||||||
|
and b.is_duplicate_booking = false
|
||||||
|
group by 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
|
||||||
|
|
@ -4866,3 +4866,119 @@ models:
|
||||||
Date of when this user was last updated.
|
Date of when this user was last updated.
|
||||||
data_tests:
|
data_tests:
|
||||||
- not_null
|
- not_null
|
||||||
|
|
||||||
|
- name: int_core__accommodations_activity
|
||||||
|
description: |
|
||||||
|
This model provides a detailed information on listings, including their hosts,
|
||||||
|
and related booking activity. It contains identifiers, geographic information,
|
||||||
|
host details, and booking counts categorized by status.
|
||||||
|
|
||||||
|
columns:
|
||||||
|
- name: id_accommodation
|
||||||
|
data_type: bigint
|
||||||
|
description: "The unique identifier of the listing."
|
||||||
|
data_tests:
|
||||||
|
- unique
|
||||||
|
- not_null
|
||||||
|
|
||||||
|
- name: id_user_host
|
||||||
|
data_type: text
|
||||||
|
description: "The unique identifier of the host associated with the listing."
|
||||||
|
|
||||||
|
- name: id_deal
|
||||||
|
data_type: character varying
|
||||||
|
description: |
|
||||||
|
The primary identifier of the B2B client (deal). A deal can be linked to multiple hosts,
|
||||||
|
while a host can have at most one deal or none. This field can be null if there is no deal.
|
||||||
|
|
||||||
|
- name: company_name
|
||||||
|
data_type: character varying
|
||||||
|
description: |
|
||||||
|
The name of the company associated with the host. This value may sometimes match
|
||||||
|
the host's first name, last name, a combination of both, or be entirely different.
|
||||||
|
It can also be null or empty.
|
||||||
|
|
||||||
|
- name: email
|
||||||
|
data_type: character varying
|
||||||
|
description: "The email address of the host."
|
||||||
|
|
||||||
|
- name: first_name
|
||||||
|
data_type: character varying
|
||||||
|
description: "The first name of the host."
|
||||||
|
|
||||||
|
- name: last_name
|
||||||
|
data_type: character varying
|
||||||
|
description: "The last name of the host."
|
||||||
|
|
||||||
|
- name: is_active
|
||||||
|
data_type: boolean
|
||||||
|
description: |
|
||||||
|
Indicates whether the listing is currently active.
|
||||||
|
|
||||||
|
- name: friendly_name
|
||||||
|
data_type: character varying
|
||||||
|
description: "A user-friendly name assigned to the listing."
|
||||||
|
|
||||||
|
- name: country_name
|
||||||
|
data_type: character varying
|
||||||
|
description: "The full name of the country where the listing is located."
|
||||||
|
|
||||||
|
- name: town
|
||||||
|
data_type: character varying
|
||||||
|
description: "The town or city where the listing is located."
|
||||||
|
|
||||||
|
- name: address_line_1
|
||||||
|
data_type: character varying
|
||||||
|
description: "The first line of the listing's address."
|
||||||
|
|
||||||
|
- name: address_line_2
|
||||||
|
data_type: character varying
|
||||||
|
description: "The second line of the listing's address, if applicable."
|
||||||
|
|
||||||
|
- name: country_iso_2
|
||||||
|
data_type: character varying
|
||||||
|
description: "The two-letter ISO 3166-1 country code representing the listing's country."
|
||||||
|
|
||||||
|
- name: postcode
|
||||||
|
data_type: character varying
|
||||||
|
description: "The postal code of the listing's location."
|
||||||
|
|
||||||
|
- name: currency_iso4217
|
||||||
|
data_type: character varying
|
||||||
|
description: "The three-letter ISO 4217 currency code for transactions related to the listing."
|
||||||
|
|
||||||
|
- name: created_date_utc
|
||||||
|
data_type: date
|
||||||
|
description: "The date when the listing was first created."
|
||||||
|
|
||||||
|
- name: approved_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status approved for this accommodation."
|
||||||
|
|
||||||
|
- name: cancelled_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status cancelled for this accommodation."
|
||||||
|
|
||||||
|
- name: flagged_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status flagged for this accommodation."
|
||||||
|
|
||||||
|
- name: incomplete_information_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status incomplete information for this accommodation."
|
||||||
|
|
||||||
|
- name: no_flags_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status no flags for this accommodation."
|
||||||
|
|
||||||
|
- name: not_approved_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status not approved for this accommodation."
|
||||||
|
|
||||||
|
- name: rejected_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status rejected for this accommodation."
|
||||||
|
|
||||||
|
- name: total_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings for this accommodation."
|
||||||
|
|
|
||||||
31
models/reporting/core/core__accommodations_activity.sql
Normal file
31
models/reporting/core/core__accommodations_activity.sql
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
with
|
||||||
|
int_core__accommodations_activity as (
|
||||||
|
select * from {{ ref("int_core__accommodations_activity") }}
|
||||||
|
)
|
||||||
|
select
|
||||||
|
id_accommodation as id_accommodation,
|
||||||
|
id_user_host as id_user_host,
|
||||||
|
id_deal as id_deal,
|
||||||
|
company_name as company_name,
|
||||||
|
email as email,
|
||||||
|
first_name as first_name,
|
||||||
|
last_name as last_name,
|
||||||
|
is_active as is_active,
|
||||||
|
friendly_name as friendly_name,
|
||||||
|
country_name as country_name,
|
||||||
|
town as town,
|
||||||
|
address_line_1 as address_line_1,
|
||||||
|
address_line_2 as address_line_2,
|
||||||
|
country_iso_2 as country_iso_2,
|
||||||
|
postcode as postcode,
|
||||||
|
currency_iso4217 as currency_iso4217,
|
||||||
|
created_date_utc as created_date_utc,
|
||||||
|
approved_bookings as approved_bookings,
|
||||||
|
cancelled_bookings as cancelled_bookings,
|
||||||
|
flagged_bookings as flagged_bookings,
|
||||||
|
incomplete_information_bookings as incomplete_information_bookings,
|
||||||
|
no_flags_bookings as no_flags_bookings,
|
||||||
|
not_approved_bookings as not_approved_bookings,
|
||||||
|
rejected_bookings as rejected_bookings,
|
||||||
|
total_bookings as total_bookings
|
||||||
|
from int_core__accommodations_activity
|
||||||
|
|
@ -1268,3 +1268,119 @@ models:
|
||||||
data_type: integer
|
data_type: integer
|
||||||
description: |
|
description: |
|
||||||
Integer-based flag version of total_bookings_with_product_bundle_with_paid_service.
|
Integer-based flag version of total_bookings_with_product_bundle_with_paid_service.
|
||||||
|
|
||||||
|
- name: core__accommodations_activity
|
||||||
|
description: |
|
||||||
|
This model provides a detailed information on listings, including their hosts,
|
||||||
|
and related booking activity. It contains identifiers, geographic information,
|
||||||
|
host details, and booking counts categorized by status.
|
||||||
|
|
||||||
|
columns:
|
||||||
|
- name: id_accommodation
|
||||||
|
data_type: bigint
|
||||||
|
description: "The unique identifier of the listing."
|
||||||
|
data_tests:
|
||||||
|
- unique
|
||||||
|
- not_null
|
||||||
|
|
||||||
|
- name: id_user_host
|
||||||
|
data_type: text
|
||||||
|
description: "The unique identifier of the host associated with the listing."
|
||||||
|
|
||||||
|
- name: id_deal
|
||||||
|
data_type: character varying
|
||||||
|
description: |
|
||||||
|
The primary identifier of the B2B client (deal). A deal can be linked to multiple hosts,
|
||||||
|
while a host can have at most one deal or none. This field can be null if there is no deal.
|
||||||
|
|
||||||
|
- name: company_name
|
||||||
|
data_type: character varying
|
||||||
|
description: |
|
||||||
|
The name of the company associated with the host. This value may sometimes match
|
||||||
|
the host's first name, last name, a combination of both, or be entirely different.
|
||||||
|
It can also be null or empty.
|
||||||
|
|
||||||
|
- name: email
|
||||||
|
data_type: character varying
|
||||||
|
description: "The email address of the host."
|
||||||
|
|
||||||
|
- name: first_name
|
||||||
|
data_type: character varying
|
||||||
|
description: "The first name of the host."
|
||||||
|
|
||||||
|
- name: last_name
|
||||||
|
data_type: character varying
|
||||||
|
description: "The last name of the host."
|
||||||
|
|
||||||
|
- name: is_active
|
||||||
|
data_type: boolean
|
||||||
|
description: |
|
||||||
|
Indicates whether the listing is currently active.
|
||||||
|
|
||||||
|
- name: friendly_name
|
||||||
|
data_type: character varying
|
||||||
|
description: "A user-friendly name assigned to the listing."
|
||||||
|
|
||||||
|
- name: country_name
|
||||||
|
data_type: character varying
|
||||||
|
description: "The full name of the country where the listing is located."
|
||||||
|
|
||||||
|
- name: town
|
||||||
|
data_type: character varying
|
||||||
|
description: "The town or city where the listing is located."
|
||||||
|
|
||||||
|
- name: address_line_1
|
||||||
|
data_type: character varying
|
||||||
|
description: "The first line of the listing's address."
|
||||||
|
|
||||||
|
- name: address_line_2
|
||||||
|
data_type: character varying
|
||||||
|
description: "The second line of the listing's address, if applicable."
|
||||||
|
|
||||||
|
- name: country_iso_2
|
||||||
|
data_type: character varying
|
||||||
|
description: "The two-letter ISO 3166-1 country code representing the listing's country."
|
||||||
|
|
||||||
|
- name: postcode
|
||||||
|
data_type: character varying
|
||||||
|
description: "The postal code of the listing's location."
|
||||||
|
|
||||||
|
- name: currency_iso4217
|
||||||
|
data_type: character varying
|
||||||
|
description: "The three-letter ISO 4217 currency code for transactions related to the listing."
|
||||||
|
|
||||||
|
- name: created_date_utc
|
||||||
|
data_type: date
|
||||||
|
description: "The date when the listing was first created."
|
||||||
|
|
||||||
|
- name: approved_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status approved for this accommodation."
|
||||||
|
|
||||||
|
- name: cancelled_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status cancelled for this accommodation."
|
||||||
|
|
||||||
|
- name: flagged_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status flagged for this accommodation."
|
||||||
|
|
||||||
|
- name: incomplete_information_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status incomplete information for this accommodation."
|
||||||
|
|
||||||
|
- name: no_flags_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status no flags for this accommodation."
|
||||||
|
|
||||||
|
- name: not_approved_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status not approved for this accommodation."
|
||||||
|
|
||||||
|
- name: rejected_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings with status rejected for this accommodation."
|
||||||
|
|
||||||
|
- name: total_bookings
|
||||||
|
data_type: bigint
|
||||||
|
description: "The total number of bookings for this accommodation."
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue