data-dwh-dbt-project/models/reporting/core/schema.yaml
2024-04-08 09:44:32 +02:00

180 lines
6.8 KiB
YAML

version: 2
models:
- name: core__verification_payments
description: |
Payments that have happened as part of the Guest Journey.
Each record matches one payment in a guest journey. For example, if a guest pays a fee and a deposit for a booking, this table will hold two records.
Lookups to dimensions have been denormalized.
The data is mostly coming from Superhog, with money conversion happening through hardcoded rates.
columns:
- name: id_verification_to_payment
data_type: bigint
description: Superhog id for the record that relates this Payment to a Verification.
- name: id_payment
data_type: bigint
description: Superhog id for this Payment.
tests:
- unique
- not_null
- name: is_refundable
data_type: boolean
description: Whether they payment is refundable or not.
- name: payment_due_at_utc
data_type: timestamp without time zone
description: The point in time at which this payment had to be paid.
- name: payment_due_date_utc
data_type: date
description: The date on which this payment had to be paid.
- name: payment_paid_at_utc
data_type: timestamp without time zone
description: The point in time at which this payment was paid.
- name: payment_paid_date_utc
data_type: date
description: The date on which this payment was paid.
- name: payment_reference
data_type: character varying
description: |
The payment reference code in the payment processor.
For Acquired, this is typically and 10-12 digits number.
For Stripe, this is a payment intent code. This is formatted as `pi_3OieViJK46Ulzq6A16IWxeW5`, with the part after `pi_` being 24 digits long.
You can use the Stripe code to match this payment with our Stripe records.
- name: refund_due_at_utc
data_type: timestamp without time zone
description: The point in time at which this payment had to be refunded.
- name: refund_due_date_utc
data_type: date
description: The date on which this payment had to be refunded.
- name: payment_refunded_at_utc
data_type: timestamp without time zone
description: The point in time at which this payment was refunded.
- name: payment_refunded_date_utc
data_type: date
description: The date on which this payment was refunded.
- name: refund_payment_reference
data_type: character varying
description: |
The payment reference for the refund in the payment processor.
For Acquired, this is typically and 10-12 digits number.
For Stripe, this is a refund code. This is formatted as `pyr_3OieViJK46Ulzq6A16IWxeW5` or `re_3OfWeTJK46Ulzq6A02gVvZuk`.
You can use the Stripe code to match this refund with our Stripe records.
- name: id_guest_user
data_type: character varying
description: The UUID of the guest user in the Superhog backend.
- name: id_verification
data_type: bigint
description: The ID of the verification that generated this payment.
- name: verification_payment_type
data_type: character varying
description: "The payment type. Can be one of: Waiver, Fee, Deposit, Reschedule, Cancellation."
- name: amount_in_txn_currency
data_type: numeric
description: The payment amount in the currency in which the transaction actually happened. If the guest paid in Australian Dollars, this is measured in AUD.
- name: currency
data_type: character varying
description: The currency in which the transaction actually happened. If the guest paid in Australian Dollars, this is measured in AUD.
- name: amount_in_gbp
data_type: numeric
description: The payment amount value, converted to GBP, using the exchange rate for the day on which the payment happened.
- name: payment_status
data_type: character varying
description: "The status of the payment. It can be one of: Paid, Refunded, Refund Failed."
- name: notes
data_type: character varying
description: Free text description on the payment. Typically, contains explanations for integration issues with the payment processor.
- name: core__bookings
description: |
Bookings that have been processed by the Superhog backend.
Each record matches one booking.
All data is coming from the Superhog backend. Some dimensions have been denormalized.
Some pre-aggregations to the booking level have also been performed and added here.
columns:
- name: id_booking
data_type: bigint
description: The unique, Superhog generated id for this booking.
tests:
- unique
- not_null
- name: id_user_guest
data_type: character varying
description: The UUID of the Superhog user playing the guest role in the booking.
- name: id_user_host
data_type: character varying
description: The UUID of the Superhog user playing the host role in the booking.
- name: id_accommodation
data_type: bigint
description: The ID of the booked listing.
- name: is_duplicate_booking
data_type: boolean
description: |
A flag that identifies whether the booking is a duplicate.
A booking is considered a duplicate if there's an older booking with the same user,
accomodation and check-in date. If there are two or more bookings with the same user,
accomodation and check-in date, the oldest one will have False as a value in this field,
and the other ones will have True as a value in this Failed."
Put simply, if you don't want to receive duplicates, filter this field to True.
- name: booking_fee_local
data_type: numeric
description: |
The fee that Superhog should charge the host for this booking, measured in local
currency.
This fee is calculated by finding what was the active price plan for the host user
when the booking fee had to be charged.
- name: booking_fee_charge_at_utc
data_type: timestamp without time zone
description: |
The point in time in which the booking should be invoiced.
This could be the check-in date of the booking or the date in which the guest verification
started, depending on the billing settings of the host.
- name: booking_fee_charge_date_utc
data_type: date
description: |
The date in which the booking should be invoiced.
This could be the check-in date of the booking or the date in which the guest verification
started, depending on the billing settings of the host.