# Description First comment time added # 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. - [ ] I have checked for DRY opportunities with other models and docs. - [ ] I've picked the right materialization for the affected models. # Other - [ ] Check if a full-refresh is required after this PR is merged. first comment time added Related work items: #27812
430 lines
14 KiB
YAML
430 lines
14 KiB
YAML
version: 2
|
|
|
|
models:
|
|
- name: resolutions__incidents
|
|
description: |
|
|
"This table contains all incidents recorded by the resolutions team in Cosmos DB.
|
|
It includes details about the incident, the user who reported it, the associated booking,
|
|
the accommodation, the host, and the guest. Additionally, it tracks the resolution process,
|
|
including the compensation amount requested by the host, the proposed settlement calculated
|
|
by the system, and the final agreed-upon settlement amount."
|
|
columns:
|
|
- name: id_incident
|
|
data_type: text
|
|
description: "Unique identifier for the incident."
|
|
data_tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: id_verification
|
|
data_type: text
|
|
description: "Superhog unique validation ID, coming from other APIs."
|
|
|
|
- name: current_status_name
|
|
data_type: text
|
|
description: "Current status of the incident."
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: is_submission_complete
|
|
data_type: boolean
|
|
description: "Flag to indicate if the submission is complete."
|
|
|
|
- name: current_agent_name
|
|
data_type: text
|
|
description: "Name of the agent who is currently handling the incident."
|
|
|
|
- name: document_version
|
|
data_type: text
|
|
description: |
|
|
"Reported document source, such as ResCentre, API, or manual form."
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp
|
|
description: "Timestamp when the incident was created."
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: "Date when the incident was created."
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: updated_at_utc
|
|
data_type: timestamp
|
|
description: "Timestamp when the incident was last updated."
|
|
|
|
- name: updated_date_utc
|
|
data_type: date
|
|
description: "Date when the incident was last updated."
|
|
|
|
- name: first_comment_at_utc
|
|
data_type: timestamp
|
|
description: "Timestamp of the first comment on the incident."
|
|
|
|
- name: last_comment_at_utc
|
|
data_type: timestamp
|
|
description: "Timestamp of the last comment on the incident."
|
|
|
|
- name: comment_count
|
|
data_type: bigint
|
|
description: "Number of comments submitted on the incident."
|
|
|
|
- name: time_to_first_comment_in_hours
|
|
data_type: numeric
|
|
description: "Time taken to reach the client for the first time."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: true
|
|
|
|
- name: first_status_at_utc
|
|
data_type: timestamp
|
|
description: "Timestamp of the first status change on the incident."
|
|
|
|
- name: last_status_at_utc
|
|
data_type: timestamp
|
|
description: "Timestamp of the last status change on the incident."
|
|
|
|
- name: resolution_time_in_hours
|
|
data_type: numeric
|
|
description: "Time taken to resolve the incident, in hours, if completed."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: true
|
|
|
|
- name: number_damaged_items
|
|
data_type: bigint
|
|
description: "Number of items reported as damaged in the incident."
|
|
|
|
- name: original_value_amount_in_host_currency
|
|
data_type: numeric
|
|
description: |
|
|
"Original value of the damaged items in the host currency."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: original_value_amount_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
"Original value of the damaged items in GBP."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: asked_repair_amount_in_host_currency
|
|
data_type: numeric
|
|
description: |
|
|
"Amount requested by the host for repair in the host currency."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: asked_repair_amount_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
"Amount requested by the host for repair in GBP."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: accepted_amount_in_host_currency
|
|
data_type: numeric
|
|
description: |
|
|
"Final accepted settlement amount in the host currency."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: accepted_amount_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
"Final accepted settlement amount in GBP."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: host_currency
|
|
data_type: text
|
|
description: "Host or local currency"
|
|
data_tests:
|
|
- not_null:
|
|
where: "original_value_amount_in_host_currency > 0
|
|
or asked_repair_amount_in_host_currency > 0
|
|
or accepted_amount_in_host_currency > 0"
|
|
|
|
- name: was_overriden
|
|
data_type: boolean
|
|
description: |
|
|
"Flag to indicate if the proposed settlement value from the
|
|
calculator was overridden."
|
|
|
|
- name: guest_verification_status
|
|
data_type: text
|
|
description: "Guest verification status for this booking."
|
|
|
|
- name: lower_protection_limit_usd
|
|
data_type: numeric
|
|
description: "Lower protection limit in USD."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: upper_protection_limit_usd
|
|
data_type: numeric
|
|
description: "Upper protection limit in USD."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: calculated_payout_amount_in_txn_currency
|
|
data_type: numeric
|
|
description: "Calculated payout amount in local currency."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: calculated_payout_currency
|
|
data_type: text
|
|
description: "Currency of the calculated payout amount."
|
|
data_tests:
|
|
- not_null:
|
|
where: "calculated_payout_amount_in_txn_currency > 0"
|
|
|
|
- name: calculated_payout_amount_in_usd
|
|
data_type: numeric
|
|
description: "Calculated payout amount in USD."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: calculated_payout_amount_in_gbp
|
|
data_type: numeric
|
|
description: "Calculated payout amount in GBP."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: submitted_guest_charge_amount_in_txn_currency
|
|
data_type: numeric
|
|
description: "Submitted guest charge amount in local currency."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: submitted_guest_charge_currency
|
|
data_type: text
|
|
description: "Currency of the submitted guest charge amount."
|
|
data_tests:
|
|
- not_null:
|
|
where: "submitted_guest_charge_amount_in_txn_currency > 0"
|
|
|
|
- name: submitted_guest_charge_amount_in_usd
|
|
data_type: numeric
|
|
description: "Submitted guest charge amount in USD."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: submitted_guest_charge_amount_in_gbp
|
|
data_type: numeric
|
|
description: "Submitted guest charge amount in GBP."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: id_user_host
|
|
data_type: text
|
|
description: |
|
|
"Unique Id that identifies the host."
|
|
data_tests:
|
|
- not_null
|
|
- relationships:
|
|
to: ref('stg_core__user')
|
|
field: id_user
|
|
|
|
- name: host_account_name
|
|
data_type: text
|
|
description: "Name of the host account."
|
|
|
|
- name: host_email
|
|
data_type: text
|
|
description: "Email of the host."
|
|
|
|
- name: host_last_name
|
|
data_type: text
|
|
description: "Last name of the host."
|
|
|
|
- name: host_first_name
|
|
data_type: text
|
|
description: "First name of the host."
|
|
|
|
- name: host_phone_code
|
|
data_type: text
|
|
description: "Phone code of the host."
|
|
|
|
- name: host_phone_number
|
|
data_type: text
|
|
description: "Phone number of the host."
|
|
|
|
- name: id_user_guest
|
|
data_type: text
|
|
description: "Superhog code that uniquely identifies a single guest."
|
|
data_tests:
|
|
- relationships:
|
|
to: ref('stg_core__user')
|
|
field: id_user
|
|
|
|
- name: guest_email
|
|
data_type: text
|
|
description: "Email of the guest."
|
|
|
|
- name: guest_last_name
|
|
data_type: text
|
|
description: "Last name of the guest."
|
|
|
|
- name: guest_first_name
|
|
data_type: text
|
|
description: "First name of the guest."
|
|
|
|
- name: guest_phone_code
|
|
data_type: text
|
|
description: "Phone code of the guest."
|
|
|
|
- name: guest_phone_number
|
|
data_type: text
|
|
description: "Phone number of the guest."
|
|
|
|
- name: is_guest_deposit_retained
|
|
data_type: boolean
|
|
description: "In case a deposit has been collected from the guest,
|
|
whether it has been retained or not."
|
|
|
|
- name: is_guest_deposit_collected
|
|
data_type: boolean
|
|
description: "If the host has collected a deposit from the guest."
|
|
|
|
- name: deposit_retained_amount_in_txn_currency
|
|
data_type: numeric
|
|
description: "Amount of the deposit retained in local currency."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: deposit_retained_currency
|
|
data_type: text
|
|
description: "Currency of the deposit retained."
|
|
data_tests:
|
|
- not_null:
|
|
where: "deposit_retained_amount_in_txn_currency > 0"
|
|
|
|
- name: has_guest_contributed_to_cost
|
|
data_type: boolean
|
|
description: "If the guest has agreed to contribute to the cost
|
|
when talking to the host"
|
|
|
|
- name: has_host_taken_preventative_steps
|
|
data_type: boolean
|
|
description: "If the host has taken any action to prevent the damage
|
|
or further damage once identified"
|
|
|
|
- name: guest_contribution_amount_in_txn_currency
|
|
data_type: numeric
|
|
description: "Amount of the guest contribution, in case they did,
|
|
in local currency."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: guest_contribution_currency
|
|
data_type: text
|
|
description: "Currency of the guest contribution."
|
|
data_tests:
|
|
- not_null:
|
|
where: "guest_contribution_amount_in_txn_currency > 0"
|
|
|
|
- name: guest_contribution_amount_in_gbp
|
|
data_type: numeric
|
|
description: "Amount of the guest contribution, in case they did,
|
|
in GBP."
|
|
data_tests:
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
strictly: false
|
|
|
|
- name: is_guest_contacted_about_damage
|
|
data_type: boolean
|
|
description: "If the host has contacted the guest about the damage caused"
|
|
|
|
- name: id_accommodation
|
|
data_type: numeric
|
|
description: "Superhog code that uniquely identifies a single accommodation."
|
|
data_tests:
|
|
- not_null
|
|
- relationships:
|
|
to: ref('stg_core__accommodation')
|
|
field: id_accommodation
|
|
|
|
- name: accommodation_name
|
|
data_type: text
|
|
description: "Accommodation name."
|
|
|
|
- name: check_in_at_utc
|
|
data_type: timestamp without time zone
|
|
description: "Timestamp of the check-in date in UTC of the booking."
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: check_in_date_utc
|
|
data_type: date
|
|
description: "Date of the check-in date in UTC of the booking."
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: check_out_at_utc
|
|
data_type: timestamp without time zone
|
|
description: "Timestamp of the check-out date in UTC of the booking."
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: check_out_date_utc
|
|
data_type: date
|
|
description: "Date of the check-out date in UTC of the booking."
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: id_booking
|
|
data_type: numeric
|
|
description: "Superhog unique booking ID"
|
|
data_tests:
|
|
- not_null
|
|
- relationships:
|
|
to: ref('stg_core__booking')
|
|
field: id_booking
|
|
|
|
- name: booking_status
|
|
data_type: text
|
|
description: "Status of the booking."
|
|
|
|
- name: id_reservation
|
|
data_type: text
|
|
description: "External unique ID for the reservation."
|