From 1c9bb5ec31c367ee1a40f4a0d0aee99321ca90fa Mon Sep 17 00:00:00 2001 From: Joaquin Ossa Date: Fri, 29 Nov 2024 11:24:57 +0100 Subject: [PATCH] model to reporting --- .../edeposit_and_athena_verifications.sql | 46 ++++ models/reporting/cross/schema.yml | 205 ++++++++++++++++++ 2 files changed, 251 insertions(+) create mode 100644 models/reporting/cross/edeposit_and_athena_verifications.sql create mode 100644 models/reporting/cross/schema.yml diff --git a/models/reporting/cross/edeposit_and_athena_verifications.sql b/models/reporting/cross/edeposit_and_athena_verifications.sql new file mode 100644 index 0000000..697cb28 --- /dev/null +++ b/models/reporting/cross/edeposit_and_athena_verifications.sql @@ -0,0 +1,46 @@ +with + int_edeposit_and_athena_verifications as ( + select * from {{ ref("int_edeposit_and_athena_verifications") }} + ) +select + eav.id_verification as id_verification, + eav.id_booking as id_booking, + eav.id_user_partner as id_user_partner, + eav.id_accommodation as id_accommodation, + eav.version as version, + eav.verification_source as verification_source, + eav.verification_status as verification_status, + eav.nightly_fee_local as nightly_fee_local, + eav.number_nights as number_nights, + eav.email_flag as email_flag, + eav.phone_flag as phone_flag, + eav.watch_list as watch_list, + eav.channel as channel, + eav.checkin_at_utc as checkin_at_utc, + eav.checkin_date_utc as checkin_date_utc, + eav.checkout_at_utc as checkout_at_utc, + eav.checkout_date_utc as checkout_date_utc, + eav.is_cancelled as is_cancelled, + eav.cancelled_at_utc as cancelled_at_utc, + eav.cancelled_date_utc as cancelled_date_utc, + eav.user_email as user_email, + eav.guest_email as guest_email, + eav.guest_last_name as guest_last_name, + eav.guest_first_name as guest_first_name, + eav.guest_telephone as guest_telephone, + eav.company_name as company_name, + eav.property_manager_name as property_manager_name, + eav.property_manager_email as property_manager_email, + eav.listing_name as listing_name, + eav.listing_town as listing_town, + eav.listing_country as listing_country, + eav.listing_postcode as listing_postcode, + eav.pets_allowed as pets_allowed, + eav.status_updated_at_utc as status_updated_at_utc, + eav.status_updated_date_utc as status_updated_date_utc, + eav.updated_at_utc as updated_at_utc, + eav.athena_creation_at_utc as athena_creation_at_utc, + eav.athena_creation_date_utc as athena_creation_date_utc, + eav.created_at_utc as created_at_utc, + eav.created_date_utc as created_date_utc +from int_edeposit_and_athena_verifications eav diff --git a/models/reporting/cross/schema.yml b/models/reporting/cross/schema.yml new file mode 100644 index 0000000..3a946e2 --- /dev/null +++ b/models/reporting/cross/schema.yml @@ -0,0 +1,205 @@ +models: + - name: edeposit_and_athena_verifications + description: + "This table holds records on verifications for Guesty and Edeposit bookings. + It contains details on validations checked on the guests, guest information + and some booking details like checkin-checkout date or the status of the verification. + The id values found here are completely unrelated to the ones found in Core DWH. + + Note that id_verifications and booking_id should normally be 1 to 1. + Though there are exception, the API will accept a duplicate booking and the users + will be charged for it. A duplicate would return a unique id_verification." + columns: + - name: id_verification + data_type: text + description: "unique Superhog generated id for this verification" + tests: + - unique + - not_null + + - name: id_booking + data_type: text + description: "unique Superhog generated id for a booking. + note that this could be duplicated and both will be charged, + it's up to the user to no generate duplicate verifications" + + - name: id_user_partner + data_type: text + description: "unique Superhog generated id for partner" + tests: + - not_null + + - name: id_accommodation + data_type: text + description: "unique Superhog generated id for a listing" + + - name: version + data_type: text + description: "value to identify if it is Guesty (V1) or E-deposit (V2)" + tests: + - accepted_values: + values: + - V1 + - V2 + + - name: verification_source + data_type: text + description: "source of the verification for the booking" + tests: + - accepted_values: + values: + - Guesty + - Edeposit + + - name: verification_status + data_type: text + description: "status of the verification" + + - name: nightly_fee_local + data_type: double precision + description: "fee charged per night" + + - name: number_nights + data_type: integer + description: "number of nights for the booking" + + - name: email_flag + data_type: text + description: "screening result for email" + + - name: phone_flag + data_type: text + description: "screening result for phone" + + - name: watch_list + data_type: text + description: "screening result of the guest" + + - name: channel + data_type: text + description: "" + + - name: checkin_at_utc + data_type: timestamp without time zone + description: "Timestamp of checkin for the booking" + + - name: checkin_date_utc + data_type: date + description: "Date of checkin for the booking" + + - name: checkout_at_utc + data_type: timestamp without time zone + description: "Timestamp of checkout for the booking" + + - name: checkout_date_utc + data_type: date + description: "Date of checkout for the booking" + + - name: is_cancelled + data_type: boolean + description: "" + + - name: cancelled_at_utc + data_type: timestamp without time zone + description: "Timestamp of cancellation of the booking" + + - name: cancelled_date_utc + data_type: date + description: "Date of cancellation for the booking" + + - name: user_email + data_type: text + description: "" + + - name: guest_email + data_type: text + description: "" + + - name: guest_last_name + data_type: text + description: "" + + - name: guest_first_name + data_type: text + description: "" + + - name: guest_telephone + data_type: text + description: "" + + - name: company_name + data_type: text + description: "" + + - name: property_manager_name + data_type: text + description: "" + + - name: property_manager_email + data_type: text + description: "" + + - name: listing_name + data_type: text + description: "" + + - name: listing_town + data_type: text + description: "" + + - name: listing_country + data_type: text + description: "" + + - name: listing_postcode + data_type: text + description: "" + + - name: pets_allowed + data_type: boolean + description: "" + + - name: level_of_protection_amount + data_type: integer + description: "" + + - name: level_of_protection_currency + data_type: text + description: "" + + - name: status_updated_at_utc + data_type: timestamp without time zone + description: "Timestamp when status was last updated" + + - name: status_updated_date_utc + data_type: date + description: "Date of last status update of the verification" + + - name: updated_at_utc + data_type: timestamp without time zone + description: "Timestamp of last updated of the verification" + + - name: updated_date_utc + data_type: date + description: "Date of last update of the verification" + + - name: athena_creation_at_utc + data_type: timestamp without time zone + description: + "Athena timestamp referring to when the booking was created. + It's provided by Guesty, but is not mandatory. + In case of doubt use created_at_utc or created_date_utc fields" + + - name: athena_creation_date_utc + data_type: date + description: "Athena date referring to when the booking was created. + It's provided by Guesty, but is not mandatory. + In case of doubt use created_at_utc or created_date_utc fields" + + - name: created_at_utc + data_type: timestamp without time zone + description: "Timestamp of creation of the verification in the system" + + - name: created_date_utc + data_type: date + description: "Date of creation of the verification in the system"