diff --git a/models/intermediate/core/int_core__verification_payments.sql b/models/intermediate/core/int_core__verification_payments_v1.sql similarity index 100% rename from models/intermediate/core/int_core__verification_payments.sql rename to models/intermediate/core/int_core__verification_payments_v1.sql diff --git a/models/intermediate/core/schema.yml b/models/intermediate/core/schema.yml index 350ce8f..222d707 100644 --- a/models/intermediate/core/schema.yml +++ b/models/intermediate/core/schema.yml @@ -932,7 +932,7 @@ models: date before a starting date. - name: int_core__verification_payments - latest_version: 1 + latest_version: 2 description: >- A simplified table that holds guest journey payments with details around when they happen, what service was being paid, what was the related @@ -1020,6 +1020,8 @@ models: versions: - v: 1 deprecation_date: 2024-10-15 00:00:00.00+00:00 + config: + alias: int_core__verification_payments - v: 2 columns: diff --git a/models/reporting/core/core__verification_payments.sql b/models/reporting/core/core__verification_payments_v1.sql similarity index 93% rename from models/reporting/core/core__verification_payments.sql rename to models/reporting/core/core__verification_payments_v1.sql index 5297fa0..afd5715 100644 --- a/models/reporting/core/core__verification_payments.sql +++ b/models/reporting/core/core__verification_payments_v1.sql @@ -1,6 +1,6 @@ with int_core__verification_payments as ( - select * from {{ ref("int_core__verification_payments") }} + select * from {{ ref("int_core__verification_payments", version=1) }} ) select vp.id_verification_to_payment as id_verification_to_payment, diff --git a/models/reporting/core/core__verification_payments_v2.sql b/models/reporting/core/core__verification_payments_v2.sql new file mode 100644 index 0000000..4db5f13 --- /dev/null +++ b/models/reporting/core/core__verification_payments_v2.sql @@ -0,0 +1,29 @@ +with + int_core__verification_payments as ( + select * from {{ ref("int_core__verification_payments", version=2) }} + ) +select + vp.id_verification_to_payment as id_verification_to_payment, + vp.id_payment as id_payment, + vp.is_refundable as is_refundable, + vp.payment_due_at_utc as payment_due_at_utc, + vp.payment_due_date_utc as payment_due_date_utc, + vp.payment_paid_at_utc as payment_paid_at_utc, + vp.payment_paid_date_utc as payment_paid_date_utc, + vp.payment_reference as payment_reference, + vp.refund_due_at_utc as refund_due_at_utc, + vp.refund_due_date_utc as refund_due_date_utc, + vp.payment_refunded_at_utc as payment_refunded_at_utc, + vp.payment_refunded_date_utc as payment_refunded_date_utc, + vp.refund_payment_reference as refund_payment_reference, + vp.id_guest_user as id_guest_user, + vp.id_verification as id_verification, + vp.verification_payment_type as verification_payment_type, + vp.total_amount_in_txn_currency as total_amount_in_txn_currency, + vp.amount_without_taxes_in_txn_currency as amount_without_taxes_in_txn_currency, + vp.currency as currency, + vp.total_amount_in_gbp as total_amount_in_gbp, + vp.amount_without_taxes_in_gbp as amount_without_taxes_in_gbp, + vp.payment_status as payment_status, + vp.notes as notes +from int_core__verification_payments vp diff --git a/models/reporting/core/schema.yml b/models/reporting/core/schema.yml index b67e6fa..a0c04af 100644 --- a/models/reporting/core/schema.yml +++ b/models/reporting/core/schema.yml @@ -2,6 +2,7 @@ version: 2 models: - name: core__verification_payments + latest_version: 2 description: | Payments that have happened as part of the Guest Journey. @@ -29,10 +30,14 @@ models: - name: payment_due_at_utc data_type: timestamp without time zone description: The point in time at which this payment had to be paid. + tests: + - not_null - name: payment_due_date_utc data_type: date description: The date on which this payment had to be paid. + tests: + - not_null - name: payment_paid_at_utc data_type: timestamp without time zone @@ -83,10 +88,14 @@ models: - name: id_guest_user data_type: character varying description: The UUID of the guest user in the Superhog backend. + tests: + - not_null - name: id_verification data_type: bigint description: The ID of the verification that generated this payment. + tests: + - not_null - name: verification_payment_type data_type: character varying @@ -94,24 +103,79 @@ models: - 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. + 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. (To be decommissioned) + tests: + - dbt_expectations.expect_column_values_to_be_between: + min_value: 0 + strictly: false - 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. + tests: + - not_null - 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. + tests: + - dbt_expectations.expect_column_values_to_be_between: + min_value: 0 + strictly: false - name: payment_status data_type: character varying - description: "The status of the payment. It can be one of: Paid, Refunded, Refund Failed." + description: "The status of the payment. It can be one of: Paid, Refunded, Refund Failed, Cancelled, Paid Manually, Unpaid." + tests: + - not_null - name: notes data_type: character varying description: Free text description on the payment. Typically, contains explanations for integration issues with the payment processor. + versions: + - v: 1 + deprecation_date: 2024-10-15 00:00:00.00+00:00 + config: + alias: core__verification_payments + + - v: 2 + columns: + - name: total_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. + tests: + - dbt_expectations.expect_column_values_to_be_between: + min_value: 0 + strictly: false + + - name: amount_without_taxes_in_txn_currency + data_type: numeric + description: The payment amount without taxes in the currency in which the transaction actually happened. If the guest paid in Australian Dollars, this is measured in AUD. (To be decommissioned) + tests: + - dbt_expectations.expect_column_values_to_be_between: + min_value: 0 + strictly: false + + - name: total_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. + tests: + - dbt_expectations.expect_column_values_to_be_between: + min_value: 0 + strictly: false + + - name: amount_without_taxes_in_gbp + data_type: numeric + description: The payment amount value without taxes, converted to GBP, using the exchange rate for the day on which the payment happened. + tests: + - dbt_expectations.expect_column_values_to_be_between: + min_value: 0 + strictly: false + + - include: all + exclude: [amount_in_txn_currency, amount_in_gbp] + - name: core__bookings description: | @@ -128,7 +192,7 @@ models: description: The unique, Superhog generated id for this booking. tests: - unique - - not_null + - not_nullgit p - name: id_user_guest data_type: character varying diff --git a/models/reporting/exposures.yml b/models/reporting/exposures.yml index 79118ff..ce23470 100644 --- a/models/reporting/exposures.yml +++ b/models/reporting/exposures.yml @@ -12,7 +12,7 @@ exposures: depends_on: - ref('dates') - - ref('core__verification_payments') + - ref('core__verification_payments', version=1) owner: name: Pablo Martin