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_incident_missing_details data_type: boolean description: | Flag to indicate if the incident is currently missing details. This is used to limit the data tests coverage. 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 where: not is_incident_missing_details - 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 where: not is_incident_missing_details - 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 where: not is_incident_missing_details - 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 where: not is_incident_missing_details - 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 where: not is_incident_missing_details - 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 where: not is_incident_missing_details - 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 where: not is_incident_missing_details - 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 where: not is_incident_missing_details - 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) and not is_incident_missing_details" - 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 where: not is_incident_missing_details - 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 where: not is_incident_missing_details - 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 where: not is_incident_missing_details - 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 and not is_incident_missing_details" - 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 where: not is_incident_missing_details - name: submitted_payout_amount_in_txn_currency data_type: numeric description: "Submitted payout amount in local currency." data_tests: - dbt_expectations.expect_column_values_to_be_between: min_value: 0 strictly: false where: not is_incident_missing_details - name: submitted_payout_currency data_type: text description: "Currency of the submitted payout amount." data_tests: - not_null: where: "submitted_payout_amount_in_txn_currency > 0 and not is_incident_missing_details" - name: submitted_payout_amount_in_gbp data_type: numeric description: "Submitted payout amount in GBP." data_tests: - dbt_expectations.expect_column_values_to_be_between: min_value: 0 strictly: false where: not is_incident_missing_details - name: calculated_guest_charge_amount_in_txn_currency data_type: numeric description: "Calculated guest charge amount in local currency." data_tests: - dbt_expectations.expect_column_values_to_be_between: min_value: 0 strictly: false where: not is_incident_missing_details - name: calculated_guest_charge_currency data_type: text description: "Currency of the calculated guest charge amount." data_tests: - not_null: where: "calculated_guest_charge_amount_in_txn_currency > 0 and not is_incident_missing_details" - name: calculated_guest_charge_amount_in_gbp data_type: numeric description: "Calculated guest charge amount in GBP." data_tests: - dbt_expectations.expect_column_values_to_be_between: min_value: 0 strictly: false where: not is_incident_missing_details - 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 where: not is_incident_missing_details - 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 and not is_incident_missing_details" - 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 where: not is_incident_missing_details - name: id_user_host data_type: text description: | "Unique Id that identifies the host." data_tests: - relationships: to: ref('stg_core__user') field: id_user where: not is_incident_missing_details - 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 where: not is_incident_missing_details - 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 where: not is_incident_missing_details - 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 and not is_incident_missing_details" - 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 where: not is_incident_missing_details - 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 and not is_incident_missing_details" - 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 where: not is_incident_missing_details - 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: - relationships: to: ref('stg_core__accommodation') field: id_accommodation where: not is_incident_missing_details - 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." - name: check_in_date_utc data_type: date description: "Date of the check-in date in UTC of the booking." - name: check_out_at_utc data_type: timestamp without time zone description: "Timestamp of the check-out date in UTC of the booking." - name: check_out_date_utc data_type: date description: "Date of the check-out date in UTC of the booking." - 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."