diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6521ce63..59e55fe4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,14 @@
+# dbt_stripe v1.9.0
+
+[PR #153](https://github.com/fivetran/dbt_stripe/pull/153) includes the following updates:
+
+## Schema/Data Change
+**1 total change • 1 possible breaking change**
+
+| Data Model(s) | Change type | Old | New | Notes |
+| ------------- | ----------- | --- | --- | ----- |
+| `stripe__subscription_item_mrr_report` (possible breaking change) | Changed model | Date spine starts at `current_period_start`, every month uses the current quantity, and the model runs with only `stripe__using_subscriptions`. | Date spine anchors to each item's `created_at`; historical months use the invoiced quantity (from `invoice_line_item`), the current month uses the live quantity. Now also requires `stripe__using_invoices`. | See the [DECISIONLOG](https://github.com/fivetran/dbt_stripe/blob/main/DECISIONLOG.md#mrr-history-anchored-to-each-subscription-items-creation-date). |
+
# dbt_stripe v1.8.0
[PR #152](https://github.com/fivetran/dbt_stripe/pull/152) includes the following updates:
diff --git a/DECISIONLOG.md b/DECISIONLOG.md
index 47b733b2..1b0597f6 100644
--- a/DECISIONLOG.md
+++ b/DECISIONLOG.md
@@ -1,3 +1,25 @@
+## MRR History Anchored to Each Subscription Item's Creation Date
+
+The `stripe__subscription_item_mrr_report` model anchors each item's MRR timeline to that item's `created_at`, reporting MRR from when the item was added through the current month.
+
+Because `subscription_item` retains only the current state of each item, we reconstruct historical quantity from `invoice_line_item`, which records the quantity actually billed for each period. For each month, we use the quantity from the most recent invoice line whose period overlaps that month (proration adjustment lines excluded); the current month uses the live `subscription_item` quantity. This lets the report surface real `expansion` and `contraction` between months rather than back-projecting today's quantity across all history.
+
+Because this model depends on `invoice_line_item` for historical quantity, it requires `stripe__using_invoices` (enabled by default) and does not build when that variable is disabled. Stripe generates an invoice each billing period, so gaps are not expected, but when a month has no invoice line we carry the most recent prior invoiced quantity forward rather than snapping to today's quantity (which would invent phantom changes in the gap). A month falls back to the current `subscription_item` quantity only when no earlier invoice exists (months before the first invoice). Prices are not back-filled — historical months apply the item's current price.
+
+## MRR Timeline Uses an End-of-Month Snapshot
+
+The `stripe__subscription_item_mrr_report` model keeps a month for an item only when the subscription is still active at month-end. We enforce this by truncating `current_period_end` to its month in the timeline's upper bound, so a month is kept only while its first day is before the start of the `current_period_end` month.
+
+The effect is that a subscription paid through the middle of a month is not on the books at that month's end and is considered to have churned, so MRR is not recognized for that month. For example, a monthly subscription whose last paid period runs May 15 to June 15 recognizes MRR for May (a full month) but considers June as a churned month ($0 MRR), because it has lapsed by June 30.
+
+## Stripe Subscription and Item Start-Date Fields
+
+We anchor to `subscription_item.created_at` because MRR is reported at the item grain. The relevant fields are not interchangeable:
+
+- **`subscription.start_date_at`** — Stripe's authoritative subscription start, backdate-aware, but at the subscription grain.
+- **`subscription.created_at`** — when the subscription object was created; usually equals `start_date`, but diverges on backdating or imports.
+- **`subscription_item.created_at`** — when the item was added. Stripe allows items to be added or removed mid-cycle (add-ons, seat changes, plan upgrades) and prorates by default, so this can fall later than the subscription's start. Anchoring per item attributes MRR only to the months the item existed.
+
## MRR Date Spine Capped at the Current Month
The `stripe__subscription_item_mrr_report` model caps its date spine at the end of the current month, regardless of how far into the future a subscription's `current_period_end` extends.
diff --git a/README.md b/README.md
index 2dfc3a04..c1312171 100644
--- a/README.md
+++ b/README.md
@@ -45,7 +45,7 @@ By default, this package materializes the following final tables:
| [stripe__ending_balance_reconciliation_itemized_4](https://fivetran.github.io/dbt_stripe/#!/model/model.stripe.stripe__ending_balance_reconciliation_itemized_4) | Matches bank payouts with unsettled Stripe transactions.
**Example Analytics Questions:**
- Which transactions remain unsettled as of the last payout?
- Do all automatic payouts reconcile fully with balance changes?
|
| [stripe__payout_itemized_3](https://fivetran.github.io/dbt_stripe/#!/model/model.stripe.stripe__payout_itemized_3) | Details expected and actual payout amounts and statuses.
**Example Analytics Questions:**
- When should I expect my next payout, and for how much?
- Are there any delayed or failed payouts that need follow-up?
|
| [stripe__line_item_enhanced](https://fivetran.github.io/dbt_stripe/#!/model/model.stripe.stripe__line_item_enhanced) | Provides unified reporting across billing platforms on product, customer, and revenue metrics. See the [Fivetran Billing Model Streamlit App](https://fivetran-billing-model.streamlit.app/) for more details.
**Example Analytics Questions:**
- What are the top revenue-generating products or SKUs?
- What is the average revenue per user (ARPU) by subscription plan?
|
-| [stripe__subscription_item_mrr_report](https://fivetran.github.io/dbt_stripe/#!/model/model.stripe.stripe__subscription_item_mrr_report) | Shows both contracted and billed MRR (monthly recurring revenue) with discounts applied at the subscription item level. Tracks MRR changes over time, classifying each month as new, expansion, contraction, churned, reactivation, or unchanged.
**Example Analytics Questions:**
- What percentage of subscription customers are churning each month as compared to new?
- How much subscription revenue was lost last year due to discounts?
|
+| [stripe__subscription_item_mrr_report](https://fivetran.github.io/dbt_stripe/#!/model/model.stripe.stripe__subscription_item_mrr_report) | Shows both contracted and billed MRR (monthly recurring revenue) with discounts applied at the subscription item level. Tracks MRR changes over time, classifying each month as new, expansion, contraction, churned, reactivation, or unchanged. Relies on `invoice_line_item` for historical quantity, so it requires `stripe__using_invoices` (enabled by default) and does not build when that variable is disabled.
**Example Analytics Questions:**
- What percentage of subscription customers are churning each month as compared to new?
- How much subscription revenue was lost last year due to discounts?
|
¹ Each Quickstart transformation job run materializes these models if all components of this data model are enabled. This count includes all staging, intermediate, and final models materialized as `view`, `table`, or `incremental`.
@@ -80,7 +80,7 @@ Include the following stripe package version in your `packages.yml` file:
```yaml
packages:
- package: fivetran/stripe
- version: [">=1.8.0", "<1.9.0"]
+ version: [">=1.9.0", "<1.10.0"]
```
> All required sources and staging models are now bundled into this transformation package. Do not include `fivetran/stripe_source` in your `packages.yml` since this package has been deprecated.
@@ -136,9 +136,9 @@ This package takes into consideration that not every Stripe account utilizes the
...
vars:
- stripe__using_invoices: False #Disable if you are not using the invoice and invoice_line_item tables.
+ stripe__using_invoices: False #Disable if you are not using the invoice and invoice_line_item tables. Setting to False will disable the stripe__subscription_item_mrr report as well.
stripe__using_payment_method: False #Disable if you are not using the payment_method and payment_method_card tables.
- stripe__using_subscriptions: False #Disable if you are not using the subscription, subscription_item, and plan/price tables.
+ stripe__using_subscriptions: False #Disable if you are not using the subscription, subscription_item, and plan/price tables. Setting to False will disable the the stripe__subscription_item_mrr report as well.
stripe__using_coupons: False #Disable if you are not using coupon codes to apply discounts.
stripe__using_subscription_discounts: False #Disable if you are not using the subscription_discount table.
stripe__using_credit_notes: True #Enable if you are using the credit note tables.
diff --git a/analyses/README.md b/analyses/README.md
index 81a2227f..c5983358 100644
--- a/analyses/README.md
+++ b/analyses/README.md
@@ -5,8 +5,8 @@
## Analysis SQL
| **SQL** | **Description** |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
-| [stripe__arr_snapshot_analysis](https://github.com/fivetran/dbt_stripe/blob/master/analyses/stripe__arr_snapshot_analysis.sql) | This analysis generates a high-level ARR snapshot report for your business that you can use for revenue forecasting. The analysis provides year-end ARR metrics by aggregating MRR data from the last month of each calendar year and multiplying by 12. The SQL references the `stripe__subscription_item_mrr_report` model and aggregates metrics by currency. Subscriptions must be enabled for this report to compile correctly. |
-| [stripe__customer_mrr_analysis](https://github.com/fivetran/dbt_stripe/blob/master/analyses/stripe__customer_mrr_analysis.sql) | This analysis generates an MRR report at the customer level that you can use for retention reporting and cohort analysis. The analysis aggregates monthly recurring revenue by customer and month, providing insights into customer-level revenue trends over time. The SQL references the `stripe__subscription_item_mrr_report` model. You can also generate this report at the overall business level by removing the customer_id field from the aggregation. |
+| [stripe__arr_snapshot_analysis](https://github.com/fivetran/dbt_stripe/blob/master/analyses/stripe__arr_snapshot_analysis.sql) | This analysis generates a high-level ARR snapshot report for your business that you can use for revenue forecasting. The analysis provides year-end ARR metrics by aggregating MRR data from the last month of each calendar year and multiplying by 12. The SQL references the `stripe__subscription_item_mrr_report` model and aggregates metrics by currency. Subscriptions and invoices must both be enabled for this report to compile correctly. |
+| [stripe__customer_mrr_analysis](https://github.com/fivetran/dbt_stripe/blob/master/analyses/stripe__customer_mrr_analysis.sql) | This analysis generates an MRR report at the customer level that you can use for retention reporting and cohort analysis. The analysis aggregates monthly recurring revenue by customer and month, providing insights into customer-level revenue trends over time. The SQL references the `stripe__subscription_item_mrr_report` model. Subscriptions and invoices must both be enabled for this report to compile correctly.You can also generate this report at the overall business level by removing the customer_id field from the aggregation. |
## SQL Compile Instructions
You can leverage the above SQL using the [analysis functionality of dbt](https://docs.getdbt.com/docs/building-a-dbt-project/analyses/). To compile the SQL, perform the following steps:
diff --git a/analyses/stripe__arr_snapshot_analysis.sql b/analyses/stripe__arr_snapshot_analysis.sql
index 06cedd8a..408a3ced 100644
--- a/analyses/stripe__arr_snapshot_analysis.sql
+++ b/analyses/stripe__arr_snapshot_analysis.sql
@@ -1,4 +1,4 @@
-{{ config(enabled=var('stripe__using_subscriptions', True)) }}
+{{ config(enabled=var('stripe__using_subscriptions', True) and var('stripe__using_invoices', True)) }}
with mrr_by_item as (
select *
diff --git a/analyses/stripe__customer_mrr_analysis.sql b/analyses/stripe__customer_mrr_analysis.sql
index 6c82939d..54f2b6f1 100644
--- a/analyses/stripe__customer_mrr_analysis.sql
+++ b/analyses/stripe__customer_mrr_analysis.sql
@@ -1,4 +1,4 @@
-{{ config(enabled=var('stripe__using_subscriptions', True)) }}
+{{ config(enabled=var('stripe__using_subscriptions', True) and var('stripe__using_invoices', True)) }}
with item_mrr as (
select *
diff --git a/dbt_project.yml b/dbt_project.yml
index 147ddbda..b21a04b6 100644
--- a/dbt_project.yml
+++ b/dbt_project.yml
@@ -1,7 +1,7 @@
config-version: 2
name: 'stripe'
-version: '1.8.0'
+version: '1.9.0'
require-dbt-version: [">=1.3.0", "<3.0.0"]
models:
diff --git a/docs/catalog.json b/docs/catalog.json
index 455201a9..998d86d4 100644
--- a/docs/catalog.json
+++ b/docs/catalog.json
@@ -1 +1 @@
-{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/catalog/v1.json", "dbt_version": "1.11.11", "generated_at": "2026-06-10T22:35:17.560031Z", "invocation_id": "a37902db-1239-4143-9468-b4a1517724c3", "invocation_started_at": "2026-06-10T22:35:12.455650Z", "env": {}}, "nodes": {"seed.stripe_integration_tests.account_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "account_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "business_profile_mcc": {"type": "integer", "index": 3, "name": "business_profile_mcc", "comment": null}, "business_profile_name": {"type": "text", "index": 4, "name": "business_profile_name", "comment": null}, "business_profile_product_description": {"type": "integer", "index": 5, "name": "business_profile_product_description", "comment": null}, "business_profile_support_address_city": {"type": "text", "index": 6, "name": "business_profile_support_address_city", "comment": null}, "business_profile_support_address_country": {"type": "text", "index": 7, "name": "business_profile_support_address_country", "comment": null}, "business_profile_support_address_line_1": {"type": "text", "index": 8, "name": "business_profile_support_address_line_1", "comment": null}, "business_profile_support_address_line_2": {"type": "text", "index": 9, "name": "business_profile_support_address_line_2", "comment": null}, "business_profile_support_address_postal_code": {"type": "integer", "index": 10, "name": "business_profile_support_address_postal_code", "comment": null}, "business_profile_support_address_state": {"type": "text", "index": 11, "name": "business_profile_support_address_state", "comment": null}, "business_profile_support_email": {"type": "text", "index": 12, "name": "business_profile_support_email", "comment": null}, "business_profile_support_phone": {"type": "integer", "index": 13, "name": "business_profile_support_phone", "comment": null}, "business_profile_support_url": {"type": "text", "index": 14, "name": "business_profile_support_url", "comment": null}, "business_profile_url": {"type": "text", "index": 15, "name": "business_profile_url", "comment": null}, "business_type": {"type": "integer", "index": 16, "name": "business_type", "comment": null}, "capabilities_afterpay_clearpay_payments": {"type": "text", "index": 17, "name": "capabilities_afterpay_clearpay_payments", "comment": null}, "capabilities_au_becs_debit_payments": {"type": "integer", "index": 18, "name": "capabilities_au_becs_debit_payments", "comment": null}, "capabilities_bacs_debit_payments": {"type": "integer", "index": 19, "name": "capabilities_bacs_debit_payments", "comment": null}, "capabilities_bancontact_payments": {"type": "text", "index": 20, "name": "capabilities_bancontact_payments", "comment": null}, "capabilities_card_issuing": {"type": "integer", "index": 21, "name": "capabilities_card_issuing", "comment": null}, "capabilities_card_payments": {"type": "text", "index": 22, "name": "capabilities_card_payments", "comment": null}, "capabilities_cartes_bancaires_payments": {"type": "integer", "index": 23, "name": "capabilities_cartes_bancaires_payments", "comment": null}, "capabilities_eps_payments": {"type": "text", "index": 24, "name": "capabilities_eps_payments", "comment": null}, "capabilities_fpx_payments": {"type": "integer", "index": 25, "name": "capabilities_fpx_payments", "comment": null}, "capabilities_giropay_payments": {"type": "text", "index": 26, "name": "capabilities_giropay_payments", "comment": null}, "capabilities_grabpay_payments": {"type": "integer", "index": 27, "name": "capabilities_grabpay_payments", "comment": null}, "capabilities_ideal_payments": {"type": "text", "index": 28, "name": "capabilities_ideal_payments", "comment": null}, "capabilities_jcb_payments": {"type": "integer", "index": 29, "name": "capabilities_jcb_payments", "comment": null}, "capabilities_legacy_payments": {"type": "integer", "index": 30, "name": "capabilities_legacy_payments", "comment": null}, "capabilities_oxxo_payments": {"type": "integer", "index": 31, "name": "capabilities_oxxo_payments", "comment": null}, "capabilities_p_24_payments": {"type": "text", "index": 32, "name": "capabilities_p_24_payments", "comment": null}, "capabilities_platform_payments": {"type": "text", "index": 33, "name": "capabilities_platform_payments", "comment": null}, "capabilities_sepa_debit_payments": {"type": "text", "index": 34, "name": "capabilities_sepa_debit_payments", "comment": null}, "capabilities_sofort_payments": {"type": "text", "index": 35, "name": "capabilities_sofort_payments", "comment": null}, "capabilities_tax_reporting_us_1099_k": {"type": "integer", "index": 36, "name": "capabilities_tax_reporting_us_1099_k", "comment": null}, "capabilities_tax_reporting_us_1099_misc": {"type": "integer", "index": 37, "name": "capabilities_tax_reporting_us_1099_misc", "comment": null}, "capabilities_transfers": {"type": "integer", "index": 38, "name": "capabilities_transfers", "comment": null}, "charges_enabled": {"type": "boolean", "index": 39, "name": "charges_enabled", "comment": null}, "company_address_city": {"type": "integer", "index": 40, "name": "company_address_city", "comment": null}, "company_address_country": {"type": "integer", "index": 41, "name": "company_address_country", "comment": null}, "company_address_kana_city": {"type": "integer", "index": 42, "name": "company_address_kana_city", "comment": null}, "company_address_kana_country": {"type": "integer", "index": 43, "name": "company_address_kana_country", "comment": null}, "company_address_kana_line_1": {"type": "integer", "index": 44, "name": "company_address_kana_line_1", "comment": null}, "company_address_kana_line_2": {"type": "integer", "index": 45, "name": "company_address_kana_line_2", "comment": null}, "company_address_kana_postal_code": {"type": "integer", "index": 46, "name": "company_address_kana_postal_code", "comment": null}, "company_address_kana_state": {"type": "integer", "index": 47, "name": "company_address_kana_state", "comment": null}, "company_address_kana_town": {"type": "integer", "index": 48, "name": "company_address_kana_town", "comment": null}, "company_address_kanji_city": {"type": "integer", "index": 49, "name": "company_address_kanji_city", "comment": null}, "company_address_kanji_country": {"type": "integer", "index": 50, "name": "company_address_kanji_country", "comment": null}, "company_address_kanji_line_1": {"type": "integer", "index": 51, "name": "company_address_kanji_line_1", "comment": null}, "company_address_kanji_line_2": {"type": "integer", "index": 52, "name": "company_address_kanji_line_2", "comment": null}, "company_address_kanji_postal_code": {"type": "integer", "index": 53, "name": "company_address_kanji_postal_code", "comment": null}, "company_address_kanji_state": {"type": "integer", "index": 54, "name": "company_address_kanji_state", "comment": null}, "company_address_kanji_town": {"type": "integer", "index": 55, "name": "company_address_kanji_town", "comment": null}, "company_address_line_1": {"type": "integer", "index": 56, "name": "company_address_line_1", "comment": null}, "company_address_line_2": {"type": "integer", "index": 57, "name": "company_address_line_2", "comment": null}, "company_address_postal_code": {"type": "integer", "index": 58, "name": "company_address_postal_code", "comment": null}, "company_address_state": {"type": "integer", "index": 59, "name": "company_address_state", "comment": null}, "company_directors_provided": {"type": "integer", "index": 60, "name": "company_directors_provided", "comment": null}, "company_executives_provided": {"type": "integer", "index": 61, "name": "company_executives_provided", "comment": null}, "company_name": {"type": "integer", "index": 62, "name": "company_name", "comment": null}, "company_name_kana": {"type": "integer", "index": 63, "name": "company_name_kana", "comment": null}, "company_name_kanji": {"type": "integer", "index": 64, "name": "company_name_kanji", "comment": null}, "company_owners_provided": {"type": "integer", "index": 65, "name": "company_owners_provided", "comment": null}, "company_phone": {"type": "integer", "index": 66, "name": "company_phone", "comment": null}, "company_structure": {"type": "integer", "index": 67, "name": "company_structure", "comment": null}, "company_tax_id_provided": {"type": "integer", "index": 68, "name": "company_tax_id_provided", "comment": null}, "company_tax_id_registrar": {"type": "integer", "index": 69, "name": "company_tax_id_registrar", "comment": null}, "company_vat_id_provided": {"type": "integer", "index": 70, "name": "company_vat_id_provided", "comment": null}, "company_verification_document_back": {"type": "integer", "index": 71, "name": "company_verification_document_back", "comment": null}, "company_verification_document_details": {"type": "integer", "index": 72, "name": "company_verification_document_details", "comment": null}, "company_verification_document_details_code": {"type": "integer", "index": 73, "name": "company_verification_document_details_code", "comment": null}, "company_verification_document_front": {"type": "integer", "index": 74, "name": "company_verification_document_front", "comment": null}, "country": {"type": "text", "index": 75, "name": "country", "comment": null}, "created": {"type": "timestamp without time zone", "index": 76, "name": "created", "comment": null}, "default_currency": {"type": "text", "index": 77, "name": "default_currency", "comment": null}, "details_submitted": {"type": "boolean", "index": 78, "name": "details_submitted", "comment": null}, "email": {"type": "text", "index": 79, "name": "email", "comment": null}, "individual_id": {"type": "integer", "index": 80, "name": "individual_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 81, "name": "is_deleted", "comment": null}, "metadata": {"type": "integer", "index": 82, "name": "metadata", "comment": null}, "payouts_enabled": {"type": "boolean", "index": 83, "name": "payouts_enabled", "comment": null}, "requirements_current_deadline": {"type": "integer", "index": 84, "name": "requirements_current_deadline", "comment": null}, "requirements_currently_due": {"type": "integer", "index": 85, "name": "requirements_currently_due", "comment": null}, "requirements_disabled_reason": {"type": "integer", "index": 86, "name": "requirements_disabled_reason", "comment": null}, "requirements_errors": {"type": "integer", "index": 87, "name": "requirements_errors", "comment": null}, "requirements_eventually_due": {"type": "integer", "index": 88, "name": "requirements_eventually_due", "comment": null}, "requirements_past_due": {"type": "integer", "index": 89, "name": "requirements_past_due", "comment": null}, "requirements_pending_verification": {"type": "integer", "index": 90, "name": "requirements_pending_verification", "comment": null}, "settings_branding_icon": {"type": "integer", "index": 91, "name": "settings_branding_icon", "comment": null}, "settings_branding_logo": {"type": "text", "index": 92, "name": "settings_branding_logo", "comment": null}, "settings_branding_primary_color": {"type": "text", "index": 93, "name": "settings_branding_primary_color", "comment": null}, "settings_card_payments_decline_on_avs_failure": {"type": "integer", "index": 94, "name": "settings_card_payments_decline_on_avs_failure", "comment": null}, "settings_card_payments_decline_on_cvc_failure": {"type": "integer", "index": 95, "name": "settings_card_payments_decline_on_cvc_failure", "comment": null}, "settings_card_payments_statement_descriptor_prefix": {"type": "integer", "index": 96, "name": "settings_card_payments_statement_descriptor_prefix", "comment": null}, "settings_dashboard_display_name": {"type": "text", "index": 97, "name": "settings_dashboard_display_name", "comment": null}, "settings_dashboard_timezone": {"type": "text", "index": 98, "name": "settings_dashboard_timezone", "comment": null}, "settings_payments_statement_descriptor": {"type": "text", "index": 99, "name": "settings_payments_statement_descriptor", "comment": null}, "settings_payments_statement_descriptor_kana": {"type": "integer", "index": 100, "name": "settings_payments_statement_descriptor_kana", "comment": null}, "settings_payments_statement_descriptor_kanji": {"type": "integer", "index": 101, "name": "settings_payments_statement_descriptor_kanji", "comment": null}, "settings_payouts_debit_negative_balances": {"type": "boolean", "index": 102, "name": "settings_payouts_debit_negative_balances", "comment": null}, "settings_payouts_schedule_delay_days": {"type": "integer", "index": 103, "name": "settings_payouts_schedule_delay_days", "comment": null}, "settings_payouts_schedule_interval": {"type": "text", "index": 104, "name": "settings_payouts_schedule_interval", "comment": null}, "settings_payouts_schedule_monthly_anchor": {"type": "integer", "index": 105, "name": "settings_payouts_schedule_monthly_anchor", "comment": null}, "settings_payouts_schedule_weekly_anchor": {"type": "integer", "index": 106, "name": "settings_payouts_schedule_weekly_anchor", "comment": null}, "settings_payouts_statement_descriptor": {"type": "integer", "index": 107, "name": "settings_payouts_statement_descriptor", "comment": null}, "tos_acceptance_date": {"type": "integer", "index": 108, "name": "tos_acceptance_date", "comment": null}, "tos_acceptance_ip": {"type": "integer", "index": 109, "name": "tos_acceptance_ip", "comment": null}, "tos_acceptance_user_agent": {"type": "integer", "index": 110, "name": "tos_acceptance_user_agent", "comment": null}, "type": {"type": "text", "index": 111, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.account_data"}, "seed.stripe_integration_tests.balance_transaction_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "balance_transaction_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "available_on": {"type": "timestamp without time zone", "index": 4, "name": "available_on", "comment": null}, "connected_account_id": {"type": "integer", "index": 5, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "exchange_rate": {"type": "integer", "index": 9, "name": "exchange_rate", "comment": null}, "fee": {"type": "integer", "index": 10, "name": "fee", "comment": null}, "net": {"type": "integer", "index": 11, "name": "net", "comment": null}, "source": {"type": "text", "index": 12, "name": "source", "comment": null}, "status": {"type": "text", "index": 13, "name": "status", "comment": null}, "type": {"type": "text", "index": 14, "name": "type", "comment": null}, "payout_id": {"type": "text", "index": 15, "name": "payout_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.balance_transaction_data"}, "seed.stripe_integration_tests.card_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "card_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "address_city": {"type": "integer", "index": 4, "name": "address_city", "comment": null}, "address_country": {"type": "integer", "index": 5, "name": "address_country", "comment": null}, "address_line_1": {"type": "integer", "index": 6, "name": "address_line_1", "comment": null}, "address_line_1_check": {"type": "integer", "index": 7, "name": "address_line_1_check", "comment": null}, "address_line_2": {"type": "integer", "index": 8, "name": "address_line_2", "comment": null}, "address_state": {"type": "integer", "index": 9, "name": "address_state", "comment": null}, "address_zip": {"type": "integer", "index": 10, "name": "address_zip", "comment": null}, "address_zip_check": {"type": "integer", "index": 11, "name": "address_zip_check", "comment": null}, "brand": {"type": "text", "index": 12, "name": "brand", "comment": null}, "connected_account_id": {"type": "integer", "index": 13, "name": "connected_account_id", "comment": null}, "country": {"type": "text", "index": 14, "name": "country", "comment": null}, "created": {"type": "timestamp without time zone", "index": 15, "name": "created", "comment": null}, "currency": {"type": "text", "index": 16, "name": "currency", "comment": null}, "customer_id": {"type": "integer", "index": 17, "name": "customer_id", "comment": null}, "cvc_check": {"type": "text", "index": 18, "name": "cvc_check", "comment": null}, "dynamic_last_4": {"type": "integer", "index": 19, "name": "dynamic_last_4", "comment": null}, "exp_month": {"type": "integer", "index": 20, "name": "exp_month", "comment": null}, "exp_year": {"type": "integer", "index": 21, "name": "exp_year", "comment": null}, "fingerprint": {"type": "text", "index": 22, "name": "fingerprint", "comment": null}, "funding": {"type": "text", "index": 23, "name": "funding", "comment": null}, "is_deleted": {"type": "boolean", "index": 24, "name": "is_deleted", "comment": null}, "last_4": {"type": "integer", "index": 25, "name": "last_4", "comment": null}, "name": {"type": "integer", "index": 26, "name": "name", "comment": null}, "network": {"type": "text", "index": 27, "name": "network", "comment": null}, "recipient": {"type": "integer", "index": 28, "name": "recipient", "comment": null}, "tokenization_method": {"type": "integer", "index": 29, "name": "tokenization_method", "comment": null}, "metadata": {"type": "text", "index": 30, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.card_data"}, "seed.stripe_integration_tests.charge_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "charge_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "bigint", "index": 3, "name": "amount", "comment": null}, "amount_refunded": {"type": "bigint", "index": 4, "name": "amount_refunded", "comment": null}, "application": {"type": "text", "index": 5, "name": "application", "comment": null}, "application_fee_amount": {"type": "bigint", "index": 6, "name": "application_fee_amount", "comment": null}, "balance_transaction_id": {"type": "character varying(500)", "index": 7, "name": "balance_transaction_id", "comment": null}, "bank_account_id": {"type": "integer", "index": 8, "name": "bank_account_id", "comment": null}, "captured": {"type": "boolean", "index": 9, "name": "captured", "comment": null}, "card_id": {"type": "text", "index": 10, "name": "card_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 11, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "text", "index": 13, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "description": {"type": "text", "index": 15, "name": "description", "comment": null}, "destination": {"type": "integer", "index": 16, "name": "destination", "comment": null}, "failure_code": {"type": "text", "index": 17, "name": "failure_code", "comment": null}, "failure_message": {"type": "text", "index": 18, "name": "failure_message", "comment": null}, "fraud_details_stripe_report": {"type": "integer", "index": 19, "name": "fraud_details_stripe_report", "comment": null}, "fraud_details_user_report": {"type": "integer", "index": 20, "name": "fraud_details_user_report", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 21, "name": "invoice_id", "comment": null}, "livemode": {"type": "boolean", "index": 22, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 23, "name": "metadata", "comment": null}, "on_behalf_of": {"type": "integer", "index": 24, "name": "on_behalf_of", "comment": null}, "outcome_network_status": {"type": "text", "index": 25, "name": "outcome_network_status", "comment": null}, "outcome_reason": {"type": "text", "index": 26, "name": "outcome_reason", "comment": null}, "outcome_risk_level": {"type": "text", "index": 27, "name": "outcome_risk_level", "comment": null}, "outcome_risk_score": {"type": "double precision", "index": 28, "name": "outcome_risk_score", "comment": null}, "outcome_seller_message": {"type": "text", "index": 29, "name": "outcome_seller_message", "comment": null}, "outcome_type": {"type": "text", "index": 30, "name": "outcome_type", "comment": null}, "paid": {"type": "boolean", "index": 31, "name": "paid", "comment": null}, "payment_intent_id": {"type": "text", "index": 32, "name": "payment_intent_id", "comment": null}, "receipt_email": {"type": "text", "index": 33, "name": "receipt_email", "comment": null}, "receipt_number": {"type": "integer", "index": 34, "name": "receipt_number", "comment": null}, "receipt_url": {"type": "integer", "index": 35, "name": "receipt_url", "comment": null}, "refunded": {"type": "boolean", "index": 36, "name": "refunded", "comment": null}, "shipping_address_city": {"type": "integer", "index": 37, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "integer", "index": 38, "name": "shipping_address_country", "comment": null}, "shipping_address_line_1": {"type": "integer", "index": 39, "name": "shipping_address_line_1", "comment": null}, "shipping_address_line_2": {"type": "integer", "index": 40, "name": "shipping_address_line_2", "comment": null}, "shipping_address_postal_code": {"type": "integer", "index": 41, "name": "shipping_address_postal_code", "comment": null}, "shipping_address_state": {"type": "integer", "index": 42, "name": "shipping_address_state", "comment": null}, "shipping_carrier": {"type": "integer", "index": 43, "name": "shipping_carrier", "comment": null}, "shipping_name": {"type": "integer", "index": 44, "name": "shipping_name", "comment": null}, "shipping_phone": {"type": "integer", "index": 45, "name": "shipping_phone", "comment": null}, "shipping_tracking_number": {"type": "integer", "index": 46, "name": "shipping_tracking_number", "comment": null}, "source_id": {"type": "integer", "index": 47, "name": "source_id", "comment": null}, "source_transfer": {"type": "integer", "index": 48, "name": "source_transfer", "comment": null}, "statement_descriptor": {"type": "integer", "index": 49, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 50, "name": "status", "comment": null}, "transfer_data_destination": {"type": "integer", "index": 51, "name": "transfer_data_destination", "comment": null}, "transfer_group": {"type": "integer", "index": 52, "name": "transfer_group", "comment": null}, "transfer_id": {"type": "integer", "index": 53, "name": "transfer_id", "comment": null}, "calculated_statement_descriptor": {"type": "text", "index": 54, "name": "calculated_statement_descriptor", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.charge_data"}, "seed.stripe_integration_tests.coupon_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "coupon_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "amount_off": {"type": "integer", "index": 2, "name": "amount_off", "comment": null}, "created": {"type": "timestamp without time zone", "index": 3, "name": "created", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "duration": {"type": "text", "index": 5, "name": "duration", "comment": null}, "duration_in_months": {"type": "integer", "index": 6, "name": "duration_in_months", "comment": null}, "livemode": {"type": "boolean", "index": 7, "name": "livemode", "comment": null}, "max_redemptions": {"type": "integer", "index": 8, "name": "max_redemptions", "comment": null}, "metadata": {"type": "integer", "index": 9, "name": "metadata", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "percent_off": {"type": "double precision", "index": 11, "name": "percent_off", "comment": null}, "redeem_by": {"type": "timestamp without time zone", "index": 12, "name": "redeem_by", "comment": null}, "times_redeemed": {"type": "integer", "index": 13, "name": "times_redeemed", "comment": null}, "valid": {"type": "boolean", "index": 14, "name": "valid", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 15, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.coupon_data"}, "seed.stripe_integration_tests.credit_note_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "credit_note_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "amount": {"type": "integer", "index": 2, "name": "amount", "comment": null}, "created": {"type": "timestamp without time zone", "index": 3, "name": "created", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "discount_amount": {"type": "integer", "index": 5, "name": "discount_amount", "comment": null}, "subtotal": {"type": "integer", "index": 6, "name": "subtotal", "comment": null}, "total": {"type": "integer", "index": 7, "name": "total", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "memo": {"type": "integer", "index": 9, "name": "memo", "comment": null}, "metadata": {"type": "text", "index": 10, "name": "metadata", "comment": null}, "number": {"type": "text", "index": 11, "name": "number", "comment": null}, "pdf": {"type": "text", "index": 12, "name": "pdf", "comment": null}, "reason": {"type": "integer", "index": 13, "name": "reason", "comment": null}, "status": {"type": "text", "index": 14, "name": "status", "comment": null}, "type": {"type": "text", "index": 15, "name": "type", "comment": null}, "voided_at": {"type": "timestamp without time zone", "index": 16, "name": "voided_at", "comment": null}, "customer_balance_transaction_id": {"type": "integer", "index": 17, "name": "customer_balance_transaction_id", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 18, "name": "invoice_id", "comment": null}, "refund_id": {"type": "text", "index": 19, "name": "refund_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 20, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.credit_note_data"}, "seed.stripe_integration_tests.credit_note_line_item_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "credit_note_line_item_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"credit_note_id": {"type": "text", "index": 1, "name": "credit_note_id", "comment": null}, "id": {"type": "text", "index": 2, "name": "id", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "discount_amount": {"type": "integer", "index": 4, "name": "discount_amount", "comment": null}, "description": {"type": "text", "index": 5, "name": "description", "comment": null}, "livemode": {"type": "boolean", "index": 6, "name": "livemode", "comment": null}, "quantity": {"type": "integer", "index": 7, "name": "quantity", "comment": null}, "type": {"type": "text", "index": 8, "name": "type", "comment": null}, "unit_amount": {"type": "integer", "index": 9, "name": "unit_amount", "comment": null}, "unit_amount_decimal": {"type": "integer", "index": 10, "name": "unit_amount_decimal", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.credit_note_line_item_data"}, "seed.stripe_integration_tests.customer_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "customer_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "account_balance": {"type": "integer", "index": 3, "name": "account_balance", "comment": null}, "address_city": {"type": "integer", "index": 4, "name": "address_city", "comment": null}, "address_country": {"type": "integer", "index": 5, "name": "address_country", "comment": null}, "address_line_1": {"type": "integer", "index": 6, "name": "address_line_1", "comment": null}, "address_line_2": {"type": "integer", "index": 7, "name": "address_line_2", "comment": null}, "address_postal_code": {"type": "integer", "index": 8, "name": "address_postal_code", "comment": null}, "address_state": {"type": "integer", "index": 9, "name": "address_state", "comment": null}, "balance": {"type": "integer", "index": 10, "name": "balance", "comment": null}, "bank_account_id": {"type": "text", "index": 11, "name": "bank_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "integer", "index": 13, "name": "currency", "comment": null}, "default_card_id": {"type": "integer", "index": 14, "name": "default_card_id", "comment": null}, "delinquent": {"type": "boolean", "index": 15, "name": "delinquent", "comment": null}, "description": {"type": "character varying(500)", "index": 16, "name": "description", "comment": null}, "email": {"type": "integer", "index": 17, "name": "email", "comment": null}, "invoice_prefix": {"type": "text", "index": 18, "name": "invoice_prefix", "comment": null}, "invoice_settings_default_payment_method": {"type": "integer", "index": 19, "name": "invoice_settings_default_payment_method", "comment": null}, "invoice_settings_footer": {"type": "integer", "index": 20, "name": "invoice_settings_footer", "comment": null}, "is_deleted": {"type": "boolean", "index": 21, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 22, "name": "livemode", "comment": null}, "name": {"type": "text", "index": 23, "name": "name", "comment": null}, "phone": {"type": "integer", "index": 24, "name": "phone", "comment": null}, "shipping_address_city": {"type": "integer", "index": 25, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "integer", "index": 26, "name": "shipping_address_country", "comment": null}, "shipping_address_line_1": {"type": "integer", "index": 27, "name": "shipping_address_line_1", "comment": null}, "shipping_address_line_2": {"type": "integer", "index": 28, "name": "shipping_address_line_2", "comment": null}, "shipping_address_postal_code": {"type": "integer", "index": 29, "name": "shipping_address_postal_code", "comment": null}, "shipping_address_state": {"type": "integer", "index": 30, "name": "shipping_address_state", "comment": null}, "shipping_carrier": {"type": "integer", "index": 31, "name": "shipping_carrier", "comment": null}, "shipping_name": {"type": "integer", "index": 32, "name": "shipping_name", "comment": null}, "shipping_phone": {"type": "integer", "index": 33, "name": "shipping_phone", "comment": null}, "shipping_tracking_number": {"type": "integer", "index": 34, "name": "shipping_tracking_number", "comment": null}, "source_id": {"type": "integer", "index": 35, "name": "source_id", "comment": null}, "tax_exempt": {"type": "text", "index": 36, "name": "tax_exempt", "comment": null}, "tax_info_tax_id": {"type": "integer", "index": 37, "name": "tax_info_tax_id", "comment": null}, "tax_info_type": {"type": "integer", "index": 38, "name": "tax_info_type", "comment": null}, "tax_info_verification_status": {"type": "integer", "index": 39, "name": "tax_info_verification_status", "comment": null}, "tax_info_verification_verified_name": {"type": "integer", "index": 40, "name": "tax_info_verification_verified_name", "comment": null}, "metadata": {"type": "text", "index": 41, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.customer_data"}, "seed.stripe_integration_tests.discount_data_postgres": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "discount_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "type": {"type": "integer", "index": 2, "name": "type", "comment": null}, "type_id": {"type": "text", "index": 3, "name": "type_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 4, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "bigint", "index": 5, "name": "amount", "comment": null}, "checkout_session_id": {"type": "integer", "index": 6, "name": "checkout_session_id", "comment": null}, "checkout_session_line_item_id": {"type": "integer", "index": 7, "name": "checkout_session_line_item_id", "comment": null}, "coupon_id": {"type": "text", "index": 8, "name": "coupon_id", "comment": null}, "credit_note_line_item_id": {"type": "text", "index": 9, "name": "credit_note_line_item_id", "comment": null}, "customer_id": {"type": "text", "index": 10, "name": "customer_id", "comment": null}, "end": {"type": "timestamp without time zone", "index": 11, "name": "end", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 12, "name": "invoice_id", "comment": null}, "invoice_item_id": {"type": "integer", "index": 13, "name": "invoice_item_id", "comment": null}, "promotion_code": {"type": "integer", "index": 14, "name": "promotion_code", "comment": null}, "start": {"type": "text", "index": 15, "name": "start", "comment": null}, "subscription_id": {"type": "text", "index": 16, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.discount_data_postgres"}, "seed.stripe_integration_tests.dispute_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "dispute_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "balance_transaction": {"type": "text", "index": 4, "name": "balance_transaction", "comment": null}, "charge_id": {"type": "text", "index": 5, "name": "charge_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 6, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 7, "name": "created", "comment": null}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": null}, "evidence_access_activity_log": {"type": "integer", "index": 9, "name": "evidence_access_activity_log", "comment": null}, "evidence_billing_address": {"type": "text", "index": 10, "name": "evidence_billing_address", "comment": null}, "evidence_cancellation_policy": {"type": "integer", "index": 11, "name": "evidence_cancellation_policy", "comment": null}, "evidence_cancellation_policy_disclosure": {"type": "integer", "index": 12, "name": "evidence_cancellation_policy_disclosure", "comment": null}, "evidence_cancellation_rebuttal": {"type": "integer", "index": 13, "name": "evidence_cancellation_rebuttal", "comment": null}, "evidence_customer_communication": {"type": "integer", "index": 14, "name": "evidence_customer_communication", "comment": null}, "evidence_customer_email_address": {"type": "text", "index": 15, "name": "evidence_customer_email_address", "comment": null}, "evidence_customer_name": {"type": "text", "index": 16, "name": "evidence_customer_name", "comment": null}, "evidence_customer_purchase_ip": {"type": "text", "index": 17, "name": "evidence_customer_purchase_ip", "comment": null}, "evidence_customer_signature": {"type": "integer", "index": 18, "name": "evidence_customer_signature", "comment": null}, "evidence_details_due_by": {"type": "text", "index": 19, "name": "evidence_details_due_by", "comment": null}, "evidence_details_has_evidence": {"type": "boolean", "index": 20, "name": "evidence_details_has_evidence", "comment": null}, "evidence_details_past_due": {"type": "boolean", "index": 21, "name": "evidence_details_past_due", "comment": null}, "evidence_details_submission_count": {"type": "integer", "index": 22, "name": "evidence_details_submission_count", "comment": null}, "evidence_duplicate_charge_documentation": {"type": "integer", "index": 23, "name": "evidence_duplicate_charge_documentation", "comment": null}, "evidence_duplicate_charge_explanation": {"type": "integer", "index": 24, "name": "evidence_duplicate_charge_explanation", "comment": null}, "evidence_duplicate_charge_id": {"type": "integer", "index": 25, "name": "evidence_duplicate_charge_id", "comment": null}, "evidence_product_description": {"type": "integer", "index": 26, "name": "evidence_product_description", "comment": null}, "evidence_receipt": {"type": "text", "index": 27, "name": "evidence_receipt", "comment": null}, "evidence_refund_policy": {"type": "integer", "index": 28, "name": "evidence_refund_policy", "comment": null}, "evidence_refund_policy_disclosure": {"type": "integer", "index": 29, "name": "evidence_refund_policy_disclosure", "comment": null}, "evidence_refund_refusal_explanation": {"type": "integer", "index": 30, "name": "evidence_refund_refusal_explanation", "comment": null}, "evidence_service_date": {"type": "integer", "index": 31, "name": "evidence_service_date", "comment": null}, "evidence_service_documentation": {"type": "integer", "index": 32, "name": "evidence_service_documentation", "comment": null}, "evidence_shipping_address": {"type": "integer", "index": 33, "name": "evidence_shipping_address", "comment": null}, "evidence_shipping_carrier": {"type": "integer", "index": 34, "name": "evidence_shipping_carrier", "comment": null}, "evidence_shipping_date": {"type": "integer", "index": 35, "name": "evidence_shipping_date", "comment": null}, "evidence_shipping_documentation": {"type": "integer", "index": 36, "name": "evidence_shipping_documentation", "comment": null}, "evidence_shipping_tracking_number": {"type": "integer", "index": 37, "name": "evidence_shipping_tracking_number", "comment": null}, "evidence_uncategorized_file": {"type": "integer", "index": 38, "name": "evidence_uncategorized_file", "comment": null}, "evidence_uncategorized_text": {"type": "integer", "index": 39, "name": "evidence_uncategorized_text", "comment": null}, "is_charge_refundable": {"type": "boolean", "index": 40, "name": "is_charge_refundable", "comment": null}, "livemode": {"type": "boolean", "index": 41, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 42, "name": "metadata", "comment": null}, "reason": {"type": "text", "index": 43, "name": "reason", "comment": null}, "status": {"type": "text", "index": 44, "name": "status", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.dispute_data"}, "seed.stripe_integration_tests.fee_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "fee_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": null}, "index": {"type": "integer", "index": 2, "name": "index", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "application": {"type": "integer", "index": 5, "name": "application", "comment": null}, "connected_account_id": {"type": "integer", "index": 6, "name": "connected_account_id", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "type": {"type": "text", "index": 9, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.fee_data"}, "seed.stripe_integration_tests.invoice_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "invoice_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 5, "name": "customer_id", "comment": null}, "due_date": {"type": "timestamp without time zone", "index": 6, "name": "due_date", "comment": null}, "description": {"type": "text", "index": 7, "name": "description", "comment": null}, "discountable": {"type": "boolean", "index": 8, "name": "discountable", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 9, "name": "invoice_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 10, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 11, "name": "livemode", "comment": null}, "period_end": {"type": "timestamp without time zone", "index": 12, "name": "period_end", "comment": null}, "period_start": {"type": "timestamp without time zone", "index": 13, "name": "period_start", "comment": null}, "proration": {"type": "boolean", "index": 14, "name": "proration", "comment": null}, "quantity": {"type": "integer", "index": 15, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 16, "name": "subscription_id", "comment": null}, "subscription_item_id": {"type": "text", "index": 17, "name": "subscription_item_id", "comment": null}, "unit_amount": {"type": "integer", "index": 18, "name": "unit_amount", "comment": null}, "default_payment_method_id": {"type": "text", "index": 19, "name": "default_payment_method_id", "comment": null}, "amount_due": {"type": "bigint", "index": 20, "name": "amount_due", "comment": null}, "amount_paid": {"type": "bigint", "index": 21, "name": "amount_paid", "comment": null}, "amount_remaining": {"type": "bigint", "index": 22, "name": "amount_remaining", "comment": null}, "post_payment_credit_notes_amount": {"type": "bigint", "index": 23, "name": "post_payment_credit_notes_amount", "comment": null}, "pre_payment_credit_notes_amount": {"type": "bigint", "index": 24, "name": "pre_payment_credit_notes_amount", "comment": null}, "subtotal": {"type": "bigint", "index": 25, "name": "subtotal", "comment": null}, "tax": {"type": "bigint", "index": 26, "name": "tax", "comment": null}, "total": {"type": "bigint", "index": 27, "name": "total", "comment": null}, "attempt_count": {"type": "bigint", "index": 28, "name": "attempt_count", "comment": null}, "auto_advance": {"type": "boolean", "index": 29, "name": "auto_advance", "comment": null}, "billing_reason": {"type": "text", "index": 30, "name": "billing_reason", "comment": null}, "metadata": {"type": "text", "index": 31, "name": "metadata", "comment": null}, "number": {"type": "bigint", "index": 32, "name": "number", "comment": null}, "paid": {"type": "boolean", "index": 33, "name": "paid", "comment": null}, "receipt_number": {"type": "integer", "index": 34, "name": "receipt_number", "comment": null}, "status": {"type": "text", "index": 35, "name": "status", "comment": null}, "source_relation": {"type": "integer", "index": 36, "name": "source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.invoice_data"}, "seed.stripe_integration_tests.invoice_line_item_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "invoice_line_item_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 2, "name": "invoice_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "description": {"type": "text", "index": 6, "name": "description", "comment": null}, "discountable": {"type": "boolean", "index": 7, "name": "discountable", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "period_end": {"type": "timestamp without time zone", "index": 9, "name": "period_end", "comment": null}, "period_start": {"type": "timestamp without time zone", "index": 10, "name": "period_start", "comment": null}, "plan_id": {"type": "text", "index": 11, "name": "plan_id", "comment": null}, "proration": {"type": "boolean", "index": 12, "name": "proration", "comment": null}, "quantity": {"type": "integer", "index": 13, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 14, "name": "subscription_id", "comment": null}, "subscription_item_id": {"type": "text", "index": 15, "name": "subscription_item_id", "comment": null}, "type": {"type": "integer", "index": 16, "name": "type", "comment": null}, "unique_id": {"type": "text", "index": 17, "name": "unique_id", "comment": null}, "metadata": {"type": "text", "index": 18, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.invoice_line_item_data"}, "seed.stripe_integration_tests.payment_intent_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payment_intent_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "amount_capturable": {"type": "integer", "index": 4, "name": "amount_capturable", "comment": null}, "amount_received": {"type": "integer", "index": 5, "name": "amount_received", "comment": null}, "application": {"type": "text", "index": 6, "name": "application", "comment": null}, "application_fee_amount": {"type": "integer", "index": 7, "name": "application_fee_amount", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 8, "name": "canceled_at", "comment": null}, "cancellation_reason": {"type": "integer", "index": 9, "name": "cancellation_reason", "comment": null}, "capture_method": {"type": "text", "index": 10, "name": "capture_method", "comment": null}, "confirmation_method": {"type": "text", "index": 11, "name": "confirmation_method", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "text", "index": 13, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "description": {"type": "text", "index": 15, "name": "description", "comment": null}, "last_payment_error_charge_id": {"type": "integer", "index": 16, "name": "last_payment_error_charge_id", "comment": null}, "last_payment_error_code": {"type": "integer", "index": 17, "name": "last_payment_error_code", "comment": null}, "last_payment_error_decline_code": {"type": "integer", "index": 18, "name": "last_payment_error_decline_code", "comment": null}, "last_payment_error_doc_url": {"type": "integer", "index": 19, "name": "last_payment_error_doc_url", "comment": null}, "last_payment_error_message": {"type": "integer", "index": 20, "name": "last_payment_error_message", "comment": null}, "last_payment_error_param": {"type": "integer", "index": 21, "name": "last_payment_error_param", "comment": null}, "last_payment_error_source_id": {"type": "integer", "index": 22, "name": "last_payment_error_source_id", "comment": null}, "last_payment_error_type": {"type": "integer", "index": 23, "name": "last_payment_error_type", "comment": null}, "livemode": {"type": "boolean", "index": 24, "name": "livemode", "comment": null}, "on_behalf_of": {"type": "integer", "index": 25, "name": "on_behalf_of", "comment": null}, "payment_method_id": {"type": "text", "index": 26, "name": "payment_method_id", "comment": null}, "receipt_email": {"type": "text", "index": 27, "name": "receipt_email", "comment": null}, "source_id": {"type": "integer", "index": 28, "name": "source_id", "comment": null}, "statement_descriptor": {"type": "integer", "index": 29, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 30, "name": "status", "comment": null}, "transfer_data_destination": {"type": "integer", "index": 31, "name": "transfer_data_destination", "comment": null}, "transfer_group": {"type": "integer", "index": 32, "name": "transfer_group", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.payment_intent_data"}, "seed.stripe_integration_tests.payment_method_card_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payment_method_card_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"payment_method_id": {"type": "text", "index": 1, "name": "payment_method_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "brand": {"type": "text", "index": 3, "name": "brand", "comment": null}, "charge_id": {"type": "integer", "index": 4, "name": "charge_id", "comment": null}, "description": {"type": "integer", "index": 5, "name": "description", "comment": null}, "fingerprint": {"type": "text", "index": 6, "name": "fingerprint", "comment": null}, "funding": {"type": "text", "index": 7, "name": "funding", "comment": null}, "type": {"type": "integer", "index": 8, "name": "type", "comment": null}, "wallet_type": {"type": "integer", "index": 9, "name": "wallet_type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.payment_method_card_data"}, "seed.stripe_integration_tests.payment_method_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payment_method_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "billing_detail_address_city": {"type": "integer", "index": 3, "name": "billing_detail_address_city", "comment": null}, "billing_detail_address_country": {"type": "integer", "index": 4, "name": "billing_detail_address_country", "comment": null}, "billing_detail_address_line_1": {"type": "integer", "index": 5, "name": "billing_detail_address_line_1", "comment": null}, "billing_detail_address_line_2": {"type": "integer", "index": 6, "name": "billing_detail_address_line_2", "comment": null}, "billing_detail_address_postal_code": {"type": "text", "index": 7, "name": "billing_detail_address_postal_code", "comment": null}, "billing_detail_address_state": {"type": "integer", "index": 8, "name": "billing_detail_address_state", "comment": null}, "billing_detail_email": {"type": "text", "index": 9, "name": "billing_detail_email", "comment": null}, "billing_detail_name": {"type": "text", "index": 10, "name": "billing_detail_name", "comment": null}, "billing_detail_phone": {"type": "integer", "index": 11, "name": "billing_detail_phone", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "customer_id": {"type": "text", "index": 13, "name": "customer_id", "comment": null}, "livemode": {"type": "boolean", "index": 14, "name": "livemode", "comment": null}, "type": {"type": "text", "index": 15, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.payment_method_data"}, "seed.stripe_integration_tests.payout_balance_transaction_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payout_balance_transaction_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"payout_id": {"type": "text", "index": 1, "name": "payout_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "balance_transaction_id": {"type": "text", "index": 3, "name": "balance_transaction_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.payout_balance_transaction_data"}, "seed.stripe_integration_tests.payout_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payout_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "arrival_date": {"type": "timestamp without time zone", "index": 4, "name": "arrival_date", "comment": null}, "automatic": {"type": "boolean", "index": 5, "name": "automatic", "comment": null}, "balance_transaction_id": {"type": "text", "index": 6, "name": "balance_transaction_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 7, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 8, "name": "created", "comment": null}, "currency": {"type": "text", "index": 9, "name": "currency", "comment": null}, "description": {"type": "text", "index": 10, "name": "description", "comment": null}, "destination_bank_account_id": {"type": "character varying(500)", "index": 11, "name": "destination_bank_account_id", "comment": null}, "destination_card_id": {"type": "character varying(500)", "index": 12, "name": "destination_card_id", "comment": null}, "failure_balance_transaction_id": {"type": "integer", "index": 13, "name": "failure_balance_transaction_id", "comment": null}, "failure_code": {"type": "integer", "index": 14, "name": "failure_code", "comment": null}, "failure_message": {"type": "integer", "index": 15, "name": "failure_message", "comment": null}, "livemode": {"type": "boolean", "index": 16, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 17, "name": "metadata", "comment": null}, "method": {"type": "text", "index": 18, "name": "method", "comment": null}, "source_type": {"type": "text", "index": 19, "name": "source_type", "comment": null}, "statement_descriptor": {"type": "integer", "index": 20, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 21, "name": "status", "comment": null}, "type": {"type": "text", "index": 22, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.payout_data"}, "seed.stripe_integration_tests.plan_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "plan_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "aggregate_usage": {"type": "integer", "index": 4, "name": "aggregate_usage", "comment": null}, "amount": {"type": "integer", "index": 5, "name": "amount", "comment": null}, "billing_scheme": {"type": "text", "index": 6, "name": "billing_scheme", "comment": null}, "created": {"type": "timestamp without time zone", "index": 7, "name": "created", "comment": null}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": null}, "interval": {"type": "text", "index": 9, "name": "interval", "comment": null}, "interval_count": {"type": "bigint", "index": 10, "name": "interval_count", "comment": null}, "is_deleted": {"type": "boolean", "index": 11, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 12, "name": "livemode", "comment": null}, "nickname": {"type": "integer", "index": 13, "name": "nickname", "comment": null}, "product_id": {"type": "text", "index": 14, "name": "product_id", "comment": null}, "tiers_mode": {"type": "integer", "index": 15, "name": "tiers_mode", "comment": null}, "transform_usage_divide_by": {"type": "integer", "index": 16, "name": "transform_usage_divide_by", "comment": null}, "transform_usage_round": {"type": "integer", "index": 17, "name": "transform_usage_round", "comment": null}, "trial_period_days": {"type": "integer", "index": 18, "name": "trial_period_days", "comment": null}, "usage_type": {"type": "text", "index": 19, "name": "usage_type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.plan_data"}, "seed.stripe_integration_tests.price_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "price_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "billing_scheme": {"type": "text", "index": 4, "name": "billing_scheme", "comment": null}, "created": {"type": "timestamp without time zone", "index": 5, "name": "created", "comment": null}, "currency": {"type": "text", "index": 6, "name": "currency", "comment": null}, "invoice_item_id": {"type": "text", "index": 7, "name": "invoice_item_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 8, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 9, "name": "livemode", "comment": null}, "lookup_key": {"type": "integer", "index": 10, "name": "lookup_key", "comment": null}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": null}, "nickname": {"type": "text", "index": 12, "name": "nickname", "comment": null}, "product_id": {"type": "text", "index": 13, "name": "product_id", "comment": null}, "recurring_aggregate_usage": {"type": "character varying(100)", "index": 14, "name": "recurring_aggregate_usage", "comment": null}, "recurring_interval": {"type": "character varying(100)", "index": 15, "name": "recurring_interval", "comment": null}, "recurring_interval_count": {"type": "bigint", "index": 16, "name": "recurring_interval_count", "comment": null}, "recurring_usage_type": {"type": "character varying(100)", "index": 17, "name": "recurring_usage_type", "comment": null}, "tiers_mode": {"type": "integer", "index": 18, "name": "tiers_mode", "comment": null}, "transform_quantity_divide_by": {"type": "integer", "index": 19, "name": "transform_quantity_divide_by", "comment": null}, "transform_quantity_round": {"type": "integer", "index": 20, "name": "transform_quantity_round", "comment": null}, "type": {"type": "text", "index": 21, "name": "type", "comment": null}, "unit_amount": {"type": "integer", "index": 22, "name": "unit_amount", "comment": null}, "unit_amount_decimal": {"type": "integer", "index": 23, "name": "unit_amount_decimal", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.price_data"}, "seed.stripe_integration_tests.product_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "product_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "caption": {"type": "text", "index": 4, "name": "caption", "comment": null}, "created": {"type": "timestamp without time zone", "index": 5, "name": "created", "comment": null}, "description": {"type": "text", "index": 6, "name": "description", "comment": null}, "is_deleted": {"type": "boolean", "index": 7, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 9, "name": "metadata", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "package_dimensions_height": {"type": "integer", "index": 11, "name": "package_dimensions_height", "comment": null}, "package_dimensions_length": {"type": "integer", "index": 12, "name": "package_dimensions_length", "comment": null}, "package_dimensions_weight": {"type": "integer", "index": 13, "name": "package_dimensions_weight", "comment": null}, "package_dimensions_width": {"type": "integer", "index": 14, "name": "package_dimensions_width", "comment": null}, "shippable": {"type": "boolean", "index": 15, "name": "shippable", "comment": null}, "statement_descriptor": {"type": "integer", "index": 16, "name": "statement_descriptor", "comment": null}, "type": {"type": "text", "index": 17, "name": "type", "comment": null}, "unit_label": {"type": "integer", "index": 18, "name": "unit_label", "comment": null}, "updated": {"type": "text", "index": 19, "name": "updated", "comment": null}, "url": {"type": "text", "index": 20, "name": "url", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.product_data"}, "seed.stripe_integration_tests.refund_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "refund_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "balance_transaction_id": {"type": "text", "index": 4, "name": "balance_transaction_id", "comment": null}, "charge_id": {"type": "text", "index": 5, "name": "charge_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "integer", "index": 8, "name": "description", "comment": null}, "failure_balance_transaction_id": {"type": "integer", "index": 9, "name": "failure_balance_transaction_id", "comment": null}, "failure_reason": {"type": "integer", "index": 10, "name": "failure_reason", "comment": null}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": null}, "reason": {"type": "text", "index": 12, "name": "reason", "comment": null}, "receipt_number": {"type": "text", "index": 13, "name": "receipt_number", "comment": null}, "status": {"type": "text", "index": 14, "name": "status", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.refund_data"}, "seed.stripe_integration_tests.subscription_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "application_fee_percent": {"type": "integer", "index": 3, "name": "application_fee_percent", "comment": null}, "billing": {"type": "text", "index": 4, "name": "billing", "comment": null}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 5, "name": "billing_cycle_anchor", "comment": null}, "billing_threshold_amount_gte": {"type": "integer", "index": 6, "name": "billing_threshold_amount_gte", "comment": null}, "billing_threshold_reset_billing_cycle_anchor": {"type": "boolean", "index": 7, "name": "billing_threshold_reset_billing_cycle_anchor", "comment": null}, "cancel_at": {"type": "timestamp without time zone", "index": 8, "name": "cancel_at", "comment": null}, "cancel_at_period_end": {"type": "boolean", "index": 9, "name": "cancel_at_period_end", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 10, "name": "canceled_at", "comment": null}, "created": {"type": "timestamp without time zone", "index": 11, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 12, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 13, "name": "current_period_start", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "days_until_due": {"type": "integer", "index": 15, "name": "days_until_due", "comment": null}, "default_source_id": {"type": "text", "index": 16, "name": "default_source_id", "comment": null}, "ended_at": {"type": "timestamp without time zone", "index": 17, "name": "ended_at", "comment": null}, "livemode": {"type": "boolean", "index": 18, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 19, "name": "metadata", "comment": null}, "quantity": {"type": "integer", "index": 20, "name": "quantity", "comment": null}, "start_date": {"type": "timestamp without time zone", "index": 21, "name": "start_date", "comment": null}, "status": {"type": "text", "index": 22, "name": "status", "comment": null}, "tax_percent": {"type": "integer", "index": 23, "name": "tax_percent", "comment": null}, "trial_end": {"type": "timestamp without time zone", "index": 24, "name": "trial_end", "comment": null}, "trial_start": {"type": "timestamp without time zone", "index": 25, "name": "trial_start", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.subscription_data"}, "seed.stripe_integration_tests.subscription_discount_data_postgres": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_discount_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "checkout_session": {"type": "integer", "index": 3, "name": "checkout_session", "comment": null}, "coupon_id": {"type": "text", "index": 4, "name": "coupon_id", "comment": null}, "customer_id": {"type": "text", "index": 5, "name": "customer_id", "comment": null}, "end": {"type": "timestamp without time zone", "index": 6, "name": "end", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 7, "name": "invoice_id", "comment": null}, "invoice_item_id": {"type": "integer", "index": 8, "name": "invoice_item_id", "comment": null}, "start": {"type": "text", "index": 9, "name": "start", "comment": null}, "subscription_id": {"type": "text", "index": 10, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.subscription_discount_data_postgres"}, "seed.stripe_integration_tests.subscription_history_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_history_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "_fivetran_active": {"type": "boolean", "index": 3, "name": "_fivetran_active", "comment": null}, "application_fee_percent": {"type": "integer", "index": 4, "name": "application_fee_percent", "comment": null}, "billing": {"type": "text", "index": 5, "name": "billing", "comment": null}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 6, "name": "billing_cycle_anchor", "comment": null}, "billing_threshold_amount_gte": {"type": "integer", "index": 7, "name": "billing_threshold_amount_gte", "comment": null}, "billing_threshold_reset_billing_cycle_anchor": {"type": "boolean", "index": 8, "name": "billing_threshold_reset_billing_cycle_anchor", "comment": null}, "cancel_at": {"type": "timestamp without time zone", "index": 9, "name": "cancel_at", "comment": null}, "cancel_at_period_end": {"type": "boolean", "index": 10, "name": "cancel_at_period_end", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 11, "name": "canceled_at", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 13, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 14, "name": "current_period_start", "comment": null}, "customer_id": {"type": "text", "index": 15, "name": "customer_id", "comment": null}, "days_until_due": {"type": "integer", "index": 16, "name": "days_until_due", "comment": null}, "default_source_id": {"type": "text", "index": 17, "name": "default_source_id", "comment": null}, "ended_at": {"type": "timestamp without time zone", "index": 18, "name": "ended_at", "comment": null}, "livemode": {"type": "boolean", "index": 19, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 20, "name": "metadata", "comment": null}, "quantity": {"type": "integer", "index": 21, "name": "quantity", "comment": null}, "start_date": {"type": "timestamp without time zone", "index": 22, "name": "start_date", "comment": null}, "status": {"type": "text", "index": 23, "name": "status", "comment": null}, "tax_percent": {"type": "integer", "index": 24, "name": "tax_percent", "comment": null}, "trial_end": {"type": "timestamp without time zone", "index": 25, "name": "trial_end", "comment": null}, "trial_start": {"type": "timestamp without time zone", "index": 26, "name": "trial_start", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.subscription_history_data"}, "seed.stripe_integration_tests.subscription_item_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_item_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "created": {"type": "timestamp without time zone", "index": 2, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 3, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 4, "name": "current_period_start", "comment": null}, "id": {"type": "text", "index": 5, "name": "id", "comment": null}, "metadata": {"type": "text", "index": 6, "name": "metadata", "comment": null}, "plan_id": {"type": "text", "index": 7, "name": "plan_id", "comment": null}, "quantity": {"type": "bigint", "index": 8, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 9, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.subscription_item_data"}, "seed.stripe_integration_tests.transfer_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "transfer_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "amount_reversed": {"type": "integer", "index": 4, "name": "amount_reversed", "comment": null}, "balance_transaction_id": {"type": "text", "index": 5, "name": "balance_transaction_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "destination": {"type": "text", "index": 9, "name": "destination", "comment": null}, "destination_payment": {"type": "integer", "index": 10, "name": "destination_payment", "comment": null}, "destination_payment_id": {"type": "integer", "index": 11, "name": "destination_payment_id", "comment": null}, "livemode": {"type": "boolean", "index": 12, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 13, "name": "metadata", "comment": null}, "reversed": {"type": "boolean", "index": 14, "name": "reversed", "comment": null}, "source_transaction": {"type": "integer", "index": 15, "name": "source_transaction", "comment": null}, "source_transaction_id": {"type": "integer", "index": 16, "name": "source_transaction_id", "comment": null}, "source_type": {"type": "text", "index": 17, "name": "source_type", "comment": null}, "transfer_group": {"type": "integer", "index": 18, "name": "transfer_group", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.transfer_data"}, "model.stripe.int_stripe__account_daily": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "int_stripe__account_daily", "database": "postgres", "comment": "Each record represents each day's ending balances per account.", "owner": "postgres"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "account_id": {"type": "integer", "index": 2, "name": "account_id", "comment": null}, "source_relation": {"type": "text", "index": 3, "name": "source_relation", "comment": null}, "total_daily_sales_amount": {"type": "bigint", "index": 4, "name": "total_daily_sales_amount", "comment": null}, "total_daily_refunds_amount": {"type": "bigint", "index": 5, "name": "total_daily_refunds_amount", "comment": null}, "total_daily_adjustments_amount": {"type": "bigint", "index": 6, "name": "total_daily_adjustments_amount", "comment": null}, "total_daily_other_transactions_amount": {"type": "bigint", "index": 7, "name": "total_daily_other_transactions_amount", "comment": null}, "total_daily_gross_transaction_amount": {"type": "bigint", "index": 8, "name": "total_daily_gross_transaction_amount", "comment": null}, "total_daily_net_transactions_amount": {"type": "bigint", "index": 9, "name": "total_daily_net_transactions_amount", "comment": null}, "total_daily_payout_fee_amount": {"type": "numeric", "index": 10, "name": "total_daily_payout_fee_amount", "comment": null}, "total_daily_gross_payout_amount": {"type": "bigint", "index": 11, "name": "total_daily_gross_payout_amount", "comment": null}, "daily_net_activity_amount": {"type": "numeric", "index": 12, "name": "daily_net_activity_amount", "comment": null}, "daily_end_balance_amount": {"type": "numeric", "index": 13, "name": "daily_end_balance_amount", "comment": null}, "total_daily_sales_count": {"type": "bigint", "index": 14, "name": "total_daily_sales_count", "comment": null}, "total_daily_payouts_count": {"type": "bigint", "index": 15, "name": "total_daily_payouts_count", "comment": null}, "total_daily_adjustments_count": {"type": "bigint", "index": 16, "name": "total_daily_adjustments_count", "comment": null}, "total_daily_failed_charge_count": {"type": "bigint", "index": 17, "name": "total_daily_failed_charge_count", "comment": null}, "total_daily_failed_charge_amount": {"type": "numeric", "index": 18, "name": "total_daily_failed_charge_amount", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.int_stripe__account_daily"}, "model.stripe.int_stripe__account_partitions": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "int_stripe__account_partitions", "database": "postgres", "comment": "Each record is a group of partitioned account totals updating null values with zeroes to eventually calculate running totals downstream.", "owner": "postgres"}, "columns": {"account_id": {"type": "integer", "index": 1, "name": "account_id", "comment": null}, "date_day": {"type": "date", "index": 2, "name": "date_day", "comment": null}, "date_week": {"type": "date", "index": 3, "name": "date_week", "comment": null}, "date_month": {"type": "date", "index": 4, "name": "date_month", "comment": null}, "date_year": {"type": "date", "index": 5, "name": "date_year", "comment": null}, "total_daily_sales_amount": {"type": "numeric", "index": 6, "name": "total_daily_sales_amount", "comment": null}, "total_daily_refunds_amount": {"type": "numeric", "index": 7, "name": "total_daily_refunds_amount", "comment": null}, "total_daily_adjustments_amount": {"type": "numeric", "index": 8, "name": "total_daily_adjustments_amount", "comment": null}, "total_daily_other_transactions_amount": {"type": "numeric", "index": 9, "name": "total_daily_other_transactions_amount", "comment": null}, "total_daily_gross_transaction_amount": {"type": "numeric", "index": 10, "name": "total_daily_gross_transaction_amount", "comment": null}, "total_daily_net_transactions_amount": {"type": "numeric", "index": 11, "name": "total_daily_net_transactions_amount", "comment": null}, "total_daily_payout_fee_amount": {"type": "numeric", "index": 12, "name": "total_daily_payout_fee_amount", "comment": null}, "total_daily_gross_payout_amount": {"type": "numeric", "index": 13, "name": "total_daily_gross_payout_amount", "comment": null}, "daily_net_activity_amount": {"type": "numeric", "index": 14, "name": "daily_net_activity_amount", "comment": null}, "daily_end_balance_amount": {"type": "numeric", "index": 15, "name": "daily_end_balance_amount", "comment": null}, "total_daily_sales_count": {"type": "numeric", "index": 16, "name": "total_daily_sales_count", "comment": null}, "total_daily_payouts_count": {"type": "numeric", "index": 17, "name": "total_daily_payouts_count", "comment": null}, "total_daily_adjustments_count": {"type": "numeric", "index": 18, "name": "total_daily_adjustments_count", "comment": null}, "total_daily_failed_charge_count": {"type": "numeric", "index": 19, "name": "total_daily_failed_charge_count", "comment": null}, "total_daily_failed_charge_amount": {"type": "numeric", "index": 20, "name": "total_daily_failed_charge_amount", "comment": null}, "rolling_total_daily_sales_amount": {"type": "numeric", "index": 21, "name": "rolling_total_daily_sales_amount", "comment": null}, "rolling_total_daily_refunds_amount": {"type": "numeric", "index": 22, "name": "rolling_total_daily_refunds_amount", "comment": null}, "rolling_total_daily_adjustments_amount": {"type": "numeric", "index": 23, "name": "rolling_total_daily_adjustments_amount", "comment": null}, "rolling_total_daily_other_transactions_amount": {"type": "numeric", "index": 24, "name": "rolling_total_daily_other_transactions_amount", "comment": null}, "rolling_total_daily_gross_transaction_amount": {"type": "numeric", "index": 25, "name": "rolling_total_daily_gross_transaction_amount", "comment": null}, "rolling_total_daily_net_transactions_amount": {"type": "numeric", "index": 26, "name": "rolling_total_daily_net_transactions_amount", "comment": null}, "rolling_total_daily_payout_fee_amount": {"type": "numeric", "index": 27, "name": "rolling_total_daily_payout_fee_amount", "comment": null}, "rolling_total_daily_gross_payout_amount": {"type": "numeric", "index": 28, "name": "rolling_total_daily_gross_payout_amount", "comment": null}, "rolling_daily_net_activity_amount": {"type": "numeric", "index": 29, "name": "rolling_daily_net_activity_amount", "comment": null}, "rolling_daily_end_balance_amount": {"type": "numeric", "index": 30, "name": "rolling_daily_end_balance_amount", "comment": null}, "rolling_total_daily_sales_count": {"type": "numeric", "index": 31, "name": "rolling_total_daily_sales_count", "comment": null}, "rolling_total_daily_payouts_count": {"type": "numeric", "index": 32, "name": "rolling_total_daily_payouts_count", "comment": null}, "rolling_total_daily_adjustments_count": {"type": "numeric", "index": 33, "name": "rolling_total_daily_adjustments_count", "comment": null}, "rolling_total_daily_failed_charge_count": {"type": "numeric", "index": 34, "name": "rolling_total_daily_failed_charge_count", "comment": null}, "rolling_total_daily_failed_charge_amount": {"type": "numeric", "index": 35, "name": "rolling_total_daily_failed_charge_amount", "comment": null}, "date_index": {"type": "bigint", "index": 36, "name": "date_index", "comment": null}, "source_relation": {"type": "text", "index": 37, "name": "source_relation", "comment": null}, "rolling_total_daily_sales_amount_partition": {"type": "bigint", "index": 38, "name": "rolling_total_daily_sales_amount_partition", "comment": null}, "rolling_total_daily_refunds_amount_partition": {"type": "bigint", "index": 39, "name": "rolling_total_daily_refunds_amount_partition", "comment": null}, "rolling_total_daily_adjustments_amount_partition": {"type": "bigint", "index": 40, "name": "rolling_total_daily_adjustments_amount_partition", "comment": null}, "rolling_total_daily_other_transactions_amount_partition": {"type": "bigint", "index": 41, "name": "rolling_total_daily_other_transactions_amount_partition", "comment": null}, "rolling_total_daily_gross_transaction_amount_partition": {"type": "bigint", "index": 42, "name": "rolling_total_daily_gross_transaction_amount_partition", "comment": null}, "rolling_total_daily_net_transactions_amount_partition": {"type": "bigint", "index": 43, "name": "rolling_total_daily_net_transactions_amount_partition", "comment": null}, "rolling_total_daily_payout_fee_amount_partition": {"type": "bigint", "index": 44, "name": "rolling_total_daily_payout_fee_amount_partition", "comment": null}, "rolling_total_daily_gross_payout_amount_partition": {"type": "bigint", "index": 45, "name": "rolling_total_daily_gross_payout_amount_partition", "comment": null}, "rolling_daily_net_activity_amount_partition": {"type": "bigint", "index": 46, "name": "rolling_daily_net_activity_amount_partition", "comment": null}, "rolling_daily_end_balance_amount_partition": {"type": "bigint", "index": 47, "name": "rolling_daily_end_balance_amount_partition", "comment": null}, "rolling_total_daily_sales_count_partition": {"type": "bigint", "index": 48, "name": "rolling_total_daily_sales_count_partition", "comment": null}, "rolling_total_daily_payouts_count_partition": {"type": "bigint", "index": 49, "name": "rolling_total_daily_payouts_count_partition", "comment": null}, "rolling_total_daily_adjustments_count_partition": {"type": "bigint", "index": 50, "name": "rolling_total_daily_adjustments_count_partition", "comment": null}, "rolling_total_daily_failed_charge_count_partition": {"type": "bigint", "index": 51, "name": "rolling_total_daily_failed_charge_count_partition", "comment": null}, "rolling_total_daily_failed_charge_amount_partition": {"type": "bigint", "index": 52, "name": "rolling_total_daily_failed_charge_amount_partition", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.int_stripe__account_partitions"}, "model.stripe.int_stripe__account_rolling_totals": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "int_stripe__account_rolling_totals", "database": "postgres", "comment": "Each record represents each day's ending balances per account, in addition to changes over time.", "owner": "postgres"}, "columns": {"account_id": {"type": "integer", "index": 1, "name": "account_id", "comment": null}, "date_day": {"type": "date", "index": 2, "name": "date_day", "comment": null}, "date_week": {"type": "date", "index": 3, "name": "date_week", "comment": null}, "date_month": {"type": "date", "index": 4, "name": "date_month", "comment": null}, "date_year": {"type": "date", "index": 5, "name": "date_year", "comment": null}, "total_daily_sales_amount": {"type": "numeric", "index": 6, "name": "total_daily_sales_amount", "comment": null}, "total_daily_refunds_amount": {"type": "numeric", "index": 7, "name": "total_daily_refunds_amount", "comment": null}, "total_daily_adjustments_amount": {"type": "numeric", "index": 8, "name": "total_daily_adjustments_amount", "comment": null}, "total_daily_other_transactions_amount": {"type": "numeric", "index": 9, "name": "total_daily_other_transactions_amount", "comment": null}, "total_daily_gross_transaction_amount": {"type": "numeric", "index": 10, "name": "total_daily_gross_transaction_amount", "comment": null}, "total_daily_net_transactions_amount": {"type": "numeric", "index": 11, "name": "total_daily_net_transactions_amount", "comment": null}, "total_daily_payout_fee_amount": {"type": "numeric", "index": 12, "name": "total_daily_payout_fee_amount", "comment": null}, "total_daily_gross_payout_amount": {"type": "numeric", "index": 13, "name": "total_daily_gross_payout_amount", "comment": null}, "daily_net_activity_amount": {"type": "numeric", "index": 14, "name": "daily_net_activity_amount", "comment": null}, "daily_end_balance_amount": {"type": "numeric", "index": 15, "name": "daily_end_balance_amount", "comment": null}, "total_daily_sales_count": {"type": "numeric", "index": 16, "name": "total_daily_sales_count", "comment": null}, "total_daily_payouts_count": {"type": "numeric", "index": 17, "name": "total_daily_payouts_count", "comment": null}, "total_daily_adjustments_count": {"type": "numeric", "index": 18, "name": "total_daily_adjustments_count", "comment": null}, "total_daily_failed_charge_count": {"type": "numeric", "index": 19, "name": "total_daily_failed_charge_count", "comment": null}, "total_daily_failed_charge_amount": {"type": "numeric", "index": 20, "name": "total_daily_failed_charge_amount", "comment": null}, "rolling_total_daily_sales_amount": {"type": "numeric", "index": 21, "name": "rolling_total_daily_sales_amount", "comment": null}, "rolling_total_daily_refunds_amount": {"type": "numeric", "index": 22, "name": "rolling_total_daily_refunds_amount", "comment": null}, "rolling_total_daily_adjustments_amount": {"type": "numeric", "index": 23, "name": "rolling_total_daily_adjustments_amount", "comment": null}, "rolling_total_daily_other_transactions_amount": {"type": "numeric", "index": 24, "name": "rolling_total_daily_other_transactions_amount", "comment": null}, "rolling_total_daily_gross_transaction_amount": {"type": "numeric", "index": 25, "name": "rolling_total_daily_gross_transaction_amount", "comment": null}, "rolling_total_daily_net_transactions_amount": {"type": "numeric", "index": 26, "name": "rolling_total_daily_net_transactions_amount", "comment": null}, "rolling_total_daily_payout_fee_amount": {"type": "numeric", "index": 27, "name": "rolling_total_daily_payout_fee_amount", "comment": null}, "rolling_total_daily_gross_payout_amount": {"type": "numeric", "index": 28, "name": "rolling_total_daily_gross_payout_amount", "comment": null}, "rolling_daily_net_activity_amount": {"type": "numeric", "index": 29, "name": "rolling_daily_net_activity_amount", "comment": null}, "rolling_daily_end_balance_amount": {"type": "numeric", "index": 30, "name": "rolling_daily_end_balance_amount", "comment": null}, "rolling_total_daily_sales_count": {"type": "numeric", "index": 31, "name": "rolling_total_daily_sales_count", "comment": null}, "rolling_total_daily_payouts_count": {"type": "numeric", "index": 32, "name": "rolling_total_daily_payouts_count", "comment": null}, "rolling_total_daily_adjustments_count": {"type": "numeric", "index": 33, "name": "rolling_total_daily_adjustments_count", "comment": null}, "rolling_total_daily_failed_charge_count": {"type": "numeric", "index": 34, "name": "rolling_total_daily_failed_charge_count", "comment": null}, "rolling_total_daily_failed_charge_amount": {"type": "numeric", "index": 35, "name": "rolling_total_daily_failed_charge_amount", "comment": null}, "date_index": {"type": "bigint", "index": 36, "name": "date_index", "comment": null}, "source_relation": {"type": "text", "index": 37, "name": "source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.int_stripe__account_rolling_totals"}, "model.stripe.int_stripe__date_spine": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "int_stripe__date_spine", "database": "postgres", "comment": "Each record represents a day of each calendar year.", "owner": "postgres"}, "columns": {"account_id": {"type": "integer", "index": 1, "name": "account_id", "comment": null}, "source_relation": {"type": "text", "index": 2, "name": "source_relation", "comment": null}, "date_day": {"type": "date", "index": 3, "name": "date_day", "comment": null}, "date_week": {"type": "date", "index": 4, "name": "date_week", "comment": null}, "date_month": {"type": "date", "index": 5, "name": "date_month", "comment": null}, "date_year": {"type": "date", "index": 6, "name": "date_year", "comment": null}, "date_index": {"type": "bigint", "index": 7, "name": "date_index", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.int_stripe__date_spine"}, "model.stripe.int_stripe__incomplete_charges": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "int_stripe__incomplete_charges", "database": "postgres", "comment": "Each record represents a charge that is incomplete.", "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "character varying(500)", "index": 1, "name": "balance_transaction_id", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 2, "name": "created_at", "comment": null}, "customer_id": {"type": "text", "index": 3, "name": "customer_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 4, "name": "connected_account_id", "comment": null}, "amount": {"type": "bigint", "index": 5, "name": "amount", "comment": null}, "source_relation": {"type": "text", "index": 6, "name": "source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.int_stripe__incomplete_charges"}, "model.stripe.stg_stripe__account": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__account", "database": "postgres", "comment": "Properties belonging to a Stripe account.", "owner": "postgres"}, "columns": {"account_id": {"type": "integer", "index": 1, "name": "account_id", "comment": "Unique identifier for the object."}, "business_profile_mcc": {"type": "integer", "index": 2, "name": "business_profile_mcc", "comment": "The merchant category code for the account. MCCs are used to classify businesses based on the goods or services they provide."}, "business_profile_name": {"type": "text", "index": 3, "name": "business_profile_name", "comment": "The customer-facing business name."}, "business_type": {"type": "integer", "index": 4, "name": "business_type", "comment": "The business type."}, "charges_enabled": {"type": "boolean", "index": 5, "name": "charges_enabled", "comment": "Whether the account can create live charges."}, "company_address_city": {"type": "integer", "index": 6, "name": "company_address_city", "comment": "City, district, suburb, town, or village."}, "company_address_country": {"type": "integer", "index": 7, "name": "company_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "company_address_line_1": {"type": "integer", "index": 8, "name": "company_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "company_address_line_2": {"type": "integer", "index": 9, "name": "company_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "company_address_postal_code": {"type": "integer", "index": 10, "name": "company_address_postal_code", "comment": "ZIP or postal code."}, "company_address_state": {"type": "integer", "index": 11, "name": "company_address_state", "comment": "State, county, province, or region."}, "company_name": {"type": "integer", "index": 12, "name": "company_name", "comment": "The company\u2019s legal name."}, "company_phone": {"type": "integer", "index": 13, "name": "company_phone", "comment": "The company\u2019s phone number (used for verification)."}, "country": {"type": "text", "index": 14, "name": "country", "comment": "The account's country."}, "created_at": {"type": "timestamp without time zone", "index": 15, "name": "created_at", "comment": "Time at which the account was connected. Measured in seconds since the Unix epoch."}, "default_currency": {"type": "text", "index": 16, "name": "default_currency", "comment": "Three-letter ISO currency code representing the default currency for the account. This must be a currency that Stripe supports in the account\u2019s country."}, "email": {"type": "text", "index": 17, "name": "email", "comment": "An email address associated with the account. You can treat this as metadata; it is not used for authentication or messaging account holders."}, "is_deleted": {"type": "boolean", "index": 18, "name": "is_deleted", "comment": "Boolean of whether account has been deleted. Accounts created using test-mode keys can be deleted at any time. Standard accounts created using live-mode keys cannot be deleted. Custom or Express accounts created using live-mode keys can only be deleted once all balances are zero."}, "metadata": {"type": "integer", "index": 19, "name": "metadata", "comment": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata."}, "is_payouts_enabled": {"type": "boolean", "index": 20, "name": "is_payouts_enabled", "comment": "Boolean of whether payouts are enabled."}, "account_type": {"type": "text", "index": 21, "name": "account_type", "comment": "Account type"}, "source_relation": {"type": "text", "index": 22, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__account"}, "model.stripe.stg_stripe__account_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__account_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "business_profile_mcc": {"type": "integer", "index": 3, "name": "business_profile_mcc", "comment": null}, "business_profile_name": {"type": "text", "index": 4, "name": "business_profile_name", "comment": null}, "business_profile_product_description": {"type": "integer", "index": 5, "name": "business_profile_product_description", "comment": null}, "business_profile_support_address_city": {"type": "text", "index": 6, "name": "business_profile_support_address_city", "comment": null}, "business_profile_support_address_country": {"type": "text", "index": 7, "name": "business_profile_support_address_country", "comment": null}, "business_profile_support_address_line_1": {"type": "text", "index": 8, "name": "business_profile_support_address_line_1", "comment": null}, "business_profile_support_address_line_2": {"type": "text", "index": 9, "name": "business_profile_support_address_line_2", "comment": null}, "business_profile_support_address_postal_code": {"type": "integer", "index": 10, "name": "business_profile_support_address_postal_code", "comment": null}, "business_profile_support_address_state": {"type": "text", "index": 11, "name": "business_profile_support_address_state", "comment": null}, "business_profile_support_email": {"type": "text", "index": 12, "name": "business_profile_support_email", "comment": null}, "business_profile_support_phone": {"type": "integer", "index": 13, "name": "business_profile_support_phone", "comment": null}, "business_profile_support_url": {"type": "text", "index": 14, "name": "business_profile_support_url", "comment": null}, "business_profile_url": {"type": "text", "index": 15, "name": "business_profile_url", "comment": null}, "business_type": {"type": "integer", "index": 16, "name": "business_type", "comment": null}, "capabilities_afterpay_clearpay_payments": {"type": "text", "index": 17, "name": "capabilities_afterpay_clearpay_payments", "comment": null}, "capabilities_au_becs_debit_payments": {"type": "integer", "index": 18, "name": "capabilities_au_becs_debit_payments", "comment": null}, "capabilities_bacs_debit_payments": {"type": "integer", "index": 19, "name": "capabilities_bacs_debit_payments", "comment": null}, "capabilities_bancontact_payments": {"type": "text", "index": 20, "name": "capabilities_bancontact_payments", "comment": null}, "capabilities_card_issuing": {"type": "integer", "index": 21, "name": "capabilities_card_issuing", "comment": null}, "capabilities_card_payments": {"type": "text", "index": 22, "name": "capabilities_card_payments", "comment": null}, "capabilities_cartes_bancaires_payments": {"type": "integer", "index": 23, "name": "capabilities_cartes_bancaires_payments", "comment": null}, "capabilities_eps_payments": {"type": "text", "index": 24, "name": "capabilities_eps_payments", "comment": null}, "capabilities_fpx_payments": {"type": "integer", "index": 25, "name": "capabilities_fpx_payments", "comment": null}, "capabilities_giropay_payments": {"type": "text", "index": 26, "name": "capabilities_giropay_payments", "comment": null}, "capabilities_grabpay_payments": {"type": "integer", "index": 27, "name": "capabilities_grabpay_payments", "comment": null}, "capabilities_ideal_payments": {"type": "text", "index": 28, "name": "capabilities_ideal_payments", "comment": null}, "capabilities_jcb_payments": {"type": "integer", "index": 29, "name": "capabilities_jcb_payments", "comment": null}, "capabilities_legacy_payments": {"type": "integer", "index": 30, "name": "capabilities_legacy_payments", "comment": null}, "capabilities_oxxo_payments": {"type": "integer", "index": 31, "name": "capabilities_oxxo_payments", "comment": null}, "capabilities_p_24_payments": {"type": "text", "index": 32, "name": "capabilities_p_24_payments", "comment": null}, "capabilities_platform_payments": {"type": "text", "index": 33, "name": "capabilities_platform_payments", "comment": null}, "capabilities_sepa_debit_payments": {"type": "text", "index": 34, "name": "capabilities_sepa_debit_payments", "comment": null}, "capabilities_sofort_payments": {"type": "text", "index": 35, "name": "capabilities_sofort_payments", "comment": null}, "capabilities_tax_reporting_us_1099_k": {"type": "integer", "index": 36, "name": "capabilities_tax_reporting_us_1099_k", "comment": null}, "capabilities_tax_reporting_us_1099_misc": {"type": "integer", "index": 37, "name": "capabilities_tax_reporting_us_1099_misc", "comment": null}, "capabilities_transfers": {"type": "integer", "index": 38, "name": "capabilities_transfers", "comment": null}, "charges_enabled": {"type": "boolean", "index": 39, "name": "charges_enabled", "comment": null}, "company_address_city": {"type": "integer", "index": 40, "name": "company_address_city", "comment": null}, "company_address_country": {"type": "integer", "index": 41, "name": "company_address_country", "comment": null}, "company_address_kana_city": {"type": "integer", "index": 42, "name": "company_address_kana_city", "comment": null}, "company_address_kana_country": {"type": "integer", "index": 43, "name": "company_address_kana_country", "comment": null}, "company_address_kana_line_1": {"type": "integer", "index": 44, "name": "company_address_kana_line_1", "comment": null}, "company_address_kana_line_2": {"type": "integer", "index": 45, "name": "company_address_kana_line_2", "comment": null}, "company_address_kana_postal_code": {"type": "integer", "index": 46, "name": "company_address_kana_postal_code", "comment": null}, "company_address_kana_state": {"type": "integer", "index": 47, "name": "company_address_kana_state", "comment": null}, "company_address_kana_town": {"type": "integer", "index": 48, "name": "company_address_kana_town", "comment": null}, "company_address_kanji_city": {"type": "integer", "index": 49, "name": "company_address_kanji_city", "comment": null}, "company_address_kanji_country": {"type": "integer", "index": 50, "name": "company_address_kanji_country", "comment": null}, "company_address_kanji_line_1": {"type": "integer", "index": 51, "name": "company_address_kanji_line_1", "comment": null}, "company_address_kanji_line_2": {"type": "integer", "index": 52, "name": "company_address_kanji_line_2", "comment": null}, "company_address_kanji_postal_code": {"type": "integer", "index": 53, "name": "company_address_kanji_postal_code", "comment": null}, "company_address_kanji_state": {"type": "integer", "index": 54, "name": "company_address_kanji_state", "comment": null}, "company_address_kanji_town": {"type": "integer", "index": 55, "name": "company_address_kanji_town", "comment": null}, "company_address_line_1": {"type": "integer", "index": 56, "name": "company_address_line_1", "comment": null}, "company_address_line_2": {"type": "integer", "index": 57, "name": "company_address_line_2", "comment": null}, "company_address_postal_code": {"type": "integer", "index": 58, "name": "company_address_postal_code", "comment": null}, "company_address_state": {"type": "integer", "index": 59, "name": "company_address_state", "comment": null}, "company_directors_provided": {"type": "integer", "index": 60, "name": "company_directors_provided", "comment": null}, "company_executives_provided": {"type": "integer", "index": 61, "name": "company_executives_provided", "comment": null}, "company_name": {"type": "integer", "index": 62, "name": "company_name", "comment": null}, "company_name_kana": {"type": "integer", "index": 63, "name": "company_name_kana", "comment": null}, "company_name_kanji": {"type": "integer", "index": 64, "name": "company_name_kanji", "comment": null}, "company_owners_provided": {"type": "integer", "index": 65, "name": "company_owners_provided", "comment": null}, "company_phone": {"type": "integer", "index": 66, "name": "company_phone", "comment": null}, "company_structure": {"type": "integer", "index": 67, "name": "company_structure", "comment": null}, "company_tax_id_provided": {"type": "integer", "index": 68, "name": "company_tax_id_provided", "comment": null}, "company_tax_id_registrar": {"type": "integer", "index": 69, "name": "company_tax_id_registrar", "comment": null}, "company_vat_id_provided": {"type": "integer", "index": 70, "name": "company_vat_id_provided", "comment": null}, "company_verification_document_back": {"type": "integer", "index": 71, "name": "company_verification_document_back", "comment": null}, "company_verification_document_details": {"type": "integer", "index": 72, "name": "company_verification_document_details", "comment": null}, "company_verification_document_details_code": {"type": "integer", "index": 73, "name": "company_verification_document_details_code", "comment": null}, "company_verification_document_front": {"type": "integer", "index": 74, "name": "company_verification_document_front", "comment": null}, "country": {"type": "text", "index": 75, "name": "country", "comment": null}, "created": {"type": "timestamp without time zone", "index": 76, "name": "created", "comment": null}, "default_currency": {"type": "text", "index": 77, "name": "default_currency", "comment": null}, "details_submitted": {"type": "boolean", "index": 78, "name": "details_submitted", "comment": null}, "email": {"type": "text", "index": 79, "name": "email", "comment": null}, "individual_id": {"type": "integer", "index": 80, "name": "individual_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 81, "name": "is_deleted", "comment": null}, "metadata": {"type": "integer", "index": 82, "name": "metadata", "comment": null}, "payouts_enabled": {"type": "boolean", "index": 83, "name": "payouts_enabled", "comment": null}, "requirements_current_deadline": {"type": "integer", "index": 84, "name": "requirements_current_deadline", "comment": null}, "requirements_currently_due": {"type": "integer", "index": 85, "name": "requirements_currently_due", "comment": null}, "requirements_disabled_reason": {"type": "integer", "index": 86, "name": "requirements_disabled_reason", "comment": null}, "requirements_errors": {"type": "integer", "index": 87, "name": "requirements_errors", "comment": null}, "requirements_eventually_due": {"type": "integer", "index": 88, "name": "requirements_eventually_due", "comment": null}, "requirements_past_due": {"type": "integer", "index": 89, "name": "requirements_past_due", "comment": null}, "requirements_pending_verification": {"type": "integer", "index": 90, "name": "requirements_pending_verification", "comment": null}, "settings_branding_icon": {"type": "integer", "index": 91, "name": "settings_branding_icon", "comment": null}, "settings_branding_logo": {"type": "text", "index": 92, "name": "settings_branding_logo", "comment": null}, "settings_branding_primary_color": {"type": "text", "index": 93, "name": "settings_branding_primary_color", "comment": null}, "settings_card_payments_decline_on_avs_failure": {"type": "integer", "index": 94, "name": "settings_card_payments_decline_on_avs_failure", "comment": null}, "settings_card_payments_decline_on_cvc_failure": {"type": "integer", "index": 95, "name": "settings_card_payments_decline_on_cvc_failure", "comment": null}, "settings_card_payments_statement_descriptor_prefix": {"type": "integer", "index": 96, "name": "settings_card_payments_statement_descriptor_prefix", "comment": null}, "settings_dashboard_display_name": {"type": "text", "index": 97, "name": "settings_dashboard_display_name", "comment": null}, "settings_dashboard_timezone": {"type": "text", "index": 98, "name": "settings_dashboard_timezone", "comment": null}, "settings_payments_statement_descriptor": {"type": "text", "index": 99, "name": "settings_payments_statement_descriptor", "comment": null}, "settings_payments_statement_descriptor_kana": {"type": "integer", "index": 100, "name": "settings_payments_statement_descriptor_kana", "comment": null}, "settings_payments_statement_descriptor_kanji": {"type": "integer", "index": 101, "name": "settings_payments_statement_descriptor_kanji", "comment": null}, "settings_payouts_debit_negative_balances": {"type": "boolean", "index": 102, "name": "settings_payouts_debit_negative_balances", "comment": null}, "settings_payouts_schedule_delay_days": {"type": "integer", "index": 103, "name": "settings_payouts_schedule_delay_days", "comment": null}, "settings_payouts_schedule_interval": {"type": "text", "index": 104, "name": "settings_payouts_schedule_interval", "comment": null}, "settings_payouts_schedule_monthly_anchor": {"type": "integer", "index": 105, "name": "settings_payouts_schedule_monthly_anchor", "comment": null}, "settings_payouts_schedule_weekly_anchor": {"type": "integer", "index": 106, "name": "settings_payouts_schedule_weekly_anchor", "comment": null}, "settings_payouts_statement_descriptor": {"type": "integer", "index": 107, "name": "settings_payouts_statement_descriptor", "comment": null}, "tos_acceptance_date": {"type": "integer", "index": 108, "name": "tos_acceptance_date", "comment": null}, "tos_acceptance_ip": {"type": "integer", "index": 109, "name": "tos_acceptance_ip", "comment": null}, "tos_acceptance_user_agent": {"type": "integer", "index": 110, "name": "tos_acceptance_user_agent", "comment": null}, "type": {"type": "text", "index": 111, "name": "type", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 112, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__account_tmp"}, "model.stripe.stg_stripe__balance_transaction": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__balance_transaction", "database": "postgres", "comment": "Balance transactions represent funds moving through your Stripe account. They're created for every type of transaction that comes into or flows out of your Stripe account balance.", "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": "Unique identifier for the object."}, "amount": {"type": "integer", "index": 2, "name": "amount", "comment": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "fee": {"type": "integer", "index": 3, "name": "fee", "comment": "fees (in currency units) paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "net": {"type": "integer", "index": 4, "name": "net", "comment": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "available_on": {"type": "timestamp without time zone", "index": 5, "name": "available_on", "comment": "The date the transaction\u2019s net funds will become available in the Stripe balance."}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": "Timestamp of when the transaction was created, in UTC."}, "connected_account_id": {"type": "integer", "index": 7, "name": "connected_account_id", "comment": "The ID of the account connected to the transaction."}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "description": {"type": "text", "index": 9, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "exchange_rate": {"type": "integer", "index": 10, "name": "exchange_rate", "comment": "The exchange rate used, if applicable, for this transaction. Specifically, if money was converted from currency A to currency B, then the amount in currency A, times exchange_rate, would be the amount in currency B."}, "reporting_category": {"type": "text", "index": 11, "name": "reporting_category", "comment": "Improves on the type field by providing a more-useful grouping for most finance and reporting purposes."}, "source": {"type": "text", "index": 12, "name": "source", "comment": "The Stripe object to which this transaction is related."}, "status": {"type": "text", "index": 13, "name": "status", "comment": "If the transaction\u2019s net funds are available in the Stripe balance yet. Either 'available' or 'pending'."}, "type": {"type": "text", "index": 14, "name": "type", "comment": "The type of transaction. Possible values are adjustment, advance, advance_funding, application_fee, application_fee_refund, charge, connect_collection_transfer, issuing_authorization_hold, issuing_authorization_release, issuing_dispute, issuing_transaction, payment, payment_failure_refund, payment_refund, payout, payout_cancel, payout_failure, refund, refund_failure, reserve_transaction, reserved_funds, stripe_fee, stripe_fx_fee, tax_fee, topup, topup_reversal, transfer, transfer_cancel, transfer_failure, or transfer_refund."}, "source_relation": {"type": "text", "index": 15, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__balance_transaction"}, "model.stripe.stg_stripe__balance_transaction_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__balance_transaction_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "available_on": {"type": "timestamp without time zone", "index": 4, "name": "available_on", "comment": null}, "connected_account_id": {"type": "integer", "index": 5, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "exchange_rate": {"type": "integer", "index": 9, "name": "exchange_rate", "comment": null}, "fee": {"type": "integer", "index": 10, "name": "fee", "comment": null}, "net": {"type": "integer", "index": 11, "name": "net", "comment": null}, "source": {"type": "text", "index": 12, "name": "source", "comment": null}, "status": {"type": "text", "index": 13, "name": "status", "comment": null}, "type": {"type": "text", "index": 14, "name": "type", "comment": null}, "payout_id": {"type": "text", "index": 15, "name": "payout_id", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 16, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__balance_transaction_tmp"}, "model.stripe.stg_stripe__card": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__card", "database": "postgres", "comment": "Details of a credit card that has been saved to the system.", "owner": "postgres"}, "columns": {"card_id": {"type": "text", "index": 1, "name": "card_id", "comment": "Unique identifier for the object."}, "account_id": {"type": "integer", "index": 2, "name": "account_id", "comment": "ID of account that this card is associated with."}, "card_address_city": {"type": "integer", "index": 3, "name": "card_address_city", "comment": "City, district, suburb, town, or village."}, "card_address_country": {"type": "integer", "index": 4, "name": "card_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "card_address_line_1": {"type": "integer", "index": 5, "name": "card_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "card_address_line_2": {"type": "integer", "index": 6, "name": "card_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "card_address_state": {"type": "integer", "index": 7, "name": "card_address_state", "comment": "State, county, province, or region."}, "card_address_postal_code": {"type": "integer", "index": 8, "name": "card_address_postal_code", "comment": "ZIP or postal code."}, "wallet_type": {"type": "text", "index": 9, "name": "wallet_type", "comment": "The type of the card wallet, one of amex_express_checkout, apple_pay, google_pay, masterpass, samsung_pay, or visa_checkout. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type."}, "brand": {"type": "text", "index": 10, "name": "brand", "comment": "Card brand. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown."}, "country": {"type": "text", "index": 11, "name": "country", "comment": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you\u2019ve collected."}, "created_at": {"type": "timestamp without time zone", "index": 12, "name": "created_at", "comment": "Timestamp of when the entry for the card was created"}, "customer_id": {"type": "integer", "index": 13, "name": "customer_id", "comment": "The customer that this card belongs to. NULL if belongs to an account or recipient."}, "card_name": {"type": "integer", "index": 14, "name": "card_name", "comment": "Cardholder name"}, "recipient": {"type": "integer", "index": 15, "name": "recipient", "comment": "The recipient that this card belongs to. NULL if the card belongs to a customer or account instead."}, "funding": {"type": "text", "index": 16, "name": "funding", "comment": "Card funding type. Can be credit, debit, prepaid, or unknown."}, "source_relation": {"type": "text", "index": 17, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__card"}, "model.stripe.stg_stripe__card_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__card_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "address_city": {"type": "integer", "index": 4, "name": "address_city", "comment": null}, "address_country": {"type": "integer", "index": 5, "name": "address_country", "comment": null}, "address_line_1": {"type": "integer", "index": 6, "name": "address_line_1", "comment": null}, "address_line_1_check": {"type": "integer", "index": 7, "name": "address_line_1_check", "comment": null}, "address_line_2": {"type": "integer", "index": 8, "name": "address_line_2", "comment": null}, "address_state": {"type": "integer", "index": 9, "name": "address_state", "comment": null}, "address_zip": {"type": "integer", "index": 10, "name": "address_zip", "comment": null}, "address_zip_check": {"type": "integer", "index": 11, "name": "address_zip_check", "comment": null}, "brand": {"type": "text", "index": 12, "name": "brand", "comment": null}, "connected_account_id": {"type": "integer", "index": 13, "name": "connected_account_id", "comment": null}, "country": {"type": "text", "index": 14, "name": "country", "comment": null}, "created": {"type": "timestamp without time zone", "index": 15, "name": "created", "comment": null}, "currency": {"type": "text", "index": 16, "name": "currency", "comment": null}, "customer_id": {"type": "integer", "index": 17, "name": "customer_id", "comment": null}, "cvc_check": {"type": "text", "index": 18, "name": "cvc_check", "comment": null}, "dynamic_last_4": {"type": "integer", "index": 19, "name": "dynamic_last_4", "comment": null}, "exp_month": {"type": "integer", "index": 20, "name": "exp_month", "comment": null}, "exp_year": {"type": "integer", "index": 21, "name": "exp_year", "comment": null}, "fingerprint": {"type": "text", "index": 22, "name": "fingerprint", "comment": null}, "funding": {"type": "text", "index": 23, "name": "funding", "comment": null}, "is_deleted": {"type": "boolean", "index": 24, "name": "is_deleted", "comment": null}, "last_4": {"type": "integer", "index": 25, "name": "last_4", "comment": null}, "name": {"type": "integer", "index": 26, "name": "name", "comment": null}, "network": {"type": "text", "index": 27, "name": "network", "comment": null}, "recipient": {"type": "integer", "index": 28, "name": "recipient", "comment": null}, "tokenization_method": {"type": "integer", "index": 29, "name": "tokenization_method", "comment": null}, "metadata": {"type": "text", "index": 30, "name": "metadata", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 31, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__card_tmp"}, "model.stripe.stg_stripe__charge": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__charge", "database": "postgres", "comment": "To charge a credit or a debit card, you create a Charge object. You can retrieve and refund individual charges as well as list all charges. Charges are identified by a unique, random ID.", "owner": "postgres"}, "columns": {"charge_id": {"type": "text", "index": 1, "name": "charge_id", "comment": "Unique identifier for the object."}, "amount": {"type": "bigint", "index": 2, "name": "amount", "comment": "Amount intended to be collected by this payment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "amount_refunded": {"type": "bigint", "index": 3, "name": "amount_refunded", "comment": "The amount of the charge, if any, that has been refunded. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "application_fee_amount": {"type": "bigint", "index": 4, "name": "application_fee_amount", "comment": "The amount of the application fee (if any) for the charge. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "balance_transaction_id": {"type": "character varying(500)", "index": 5, "name": "balance_transaction_id", "comment": "ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes)."}, "is_captured": {"type": "boolean", "index": 6, "name": "is_captured", "comment": "If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured."}, "card_id": {"type": "text", "index": 7, "name": "card_id", "comment": "ID of the card that was charged."}, "created_at": {"type": "timestamp without time zone", "index": 8, "name": "created_at", "comment": "Timestamp of when the charge took place."}, "connected_account_id": {"type": "integer", "index": 9, "name": "connected_account_id", "comment": "ID of account connected for this charge."}, "customer_id": {"type": "text", "index": 10, "name": "customer_id", "comment": "ID of the customer this charge is for if one exists."}, "currency": {"type": "text", "index": 11, "name": "currency", "comment": "The currency of the charge."}, "description": {"type": "text", "index": 12, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "failure_code": {"type": "text", "index": 13, "name": "failure_code", "comment": "Error code explaining reason for charge failure if available."}, "failure_message": {"type": "text", "index": 14, "name": "failure_message", "comment": "Message to user further explaining reason for charge failure if available."}, "metadata": {"type": "text", "index": 15, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "is_paid": {"type": "boolean", "index": 16, "name": "is_paid", "comment": "true if the charge succeeded, or was successfully authorized for later capture."}, "payment_intent_id": {"type": "text", "index": 17, "name": "payment_intent_id", "comment": "ID of the PaymentIntent associated with this charge, if one exists."}, "payment_method_id": {"type": "text", "index": 18, "name": "payment_method_id", "comment": "Unique identifier for the payment method object used in this charge."}, "receipt_email": {"type": "text", "index": 19, "name": "receipt_email", "comment": "This is the email address that the receipt for this charge was sent to."}, "receipt_number": {"type": "integer", "index": 20, "name": "receipt_number", "comment": "This is the transaction number that appears on email receipts sent for this charge."}, "is_refunded": {"type": "boolean", "index": 21, "name": "is_refunded", "comment": "Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false."}, "status": {"type": "text", "index": 22, "name": "status", "comment": "The status of the payment is either succeeded, pending, or failed."}, "shipping_address_city": {"type": "integer", "index": 23, "name": "shipping_address_city", "comment": "City, district, suburb, town, or village."}, "shipping_address_country": {"type": "integer", "index": 24, "name": "shipping_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "shipping_address_line_1": {"type": "integer", "index": 25, "name": "shipping_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "shipping_address_line_2": {"type": "integer", "index": 26, "name": "shipping_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "shipping_address_postal_code": {"type": "integer", "index": 27, "name": "shipping_address_postal_code", "comment": "ZIP or postal code."}, "shipping_address_state": {"type": "integer", "index": 28, "name": "shipping_address_state", "comment": "State, county, province, or region."}, "shipping_carrier": {"type": "integer", "index": 29, "name": "shipping_carrier", "comment": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc."}, "shipping_name": {"type": "integer", "index": 30, "name": "shipping_name", "comment": "Recipient name."}, "shipping_phone": {"type": "integer", "index": 31, "name": "shipping_phone", "comment": "Recipient phone (including extension)."}, "shipping_tracking_number": {"type": "integer", "index": 32, "name": "shipping_tracking_number", "comment": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were"}, "source_id": {"type": "integer", "index": 33, "name": "source_id", "comment": "ID of the source associated. Source objects allow you to accept a variety of payment methods. They represent a cu"}, "source_transfer": {"type": "integer", "index": 34, "name": "source_transfer", "comment": "The transfer ID which created this charge. Only present if the charge came from another Stripe account."}, "statement_descriptor": {"type": "integer", "index": 35, "name": "statement_descriptor", "comment": "Extra information about a source. This will appear on your customer\u2019s statement every time you charge the source."}, "invoice_id": {"type": "character varying(500)", "index": 36, "name": "invoice_id", "comment": "The id of the invoice associated with this charge."}, "calculated_statement_descriptor": {"type": "text", "index": 37, "name": "calculated_statement_descriptor", "comment": "The full statement descriptor that is passed to card networks, and that is displayed on your customers\u2019 credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined."}, "billing_detail_address_city": {"type": "text", "index": 38, "name": "billing_detail_address_city", "comment": "City, district, suburb, town, or village."}, "billing_detail_address_country": {"type": "text", "index": 39, "name": "billing_detail_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "billing_detail_address_line1": {"type": "text", "index": 40, "name": "billing_detail_address_line1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "billing_detail_address_line2": {"type": "text", "index": 41, "name": "billing_detail_address_line2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "billing_detail_address_postal_code": {"type": "text", "index": 42, "name": "billing_detail_address_postal_code", "comment": "ZIP or postal code."}, "billing_detail_address_state": {"type": "text", "index": 43, "name": "billing_detail_address_state", "comment": "State, county, province, or region."}, "billing_detail_email": {"type": "text", "index": 44, "name": "billing_detail_email", "comment": "Email address."}, "billing_detail_name": {"type": "text", "index": 45, "name": "billing_detail_name", "comment": "Full name."}, "billing_detail_phone": {"type": "text", "index": 46, "name": "billing_detail_phone", "comment": "Billing phone number (including extension)."}, "source_relation": {"type": "text", "index": 47, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__charge"}, "model.stripe.stg_stripe__charge_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__charge_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "bigint", "index": 3, "name": "amount", "comment": null}, "amount_refunded": {"type": "bigint", "index": 4, "name": "amount_refunded", "comment": null}, "application": {"type": "text", "index": 5, "name": "application", "comment": null}, "application_fee_amount": {"type": "bigint", "index": 6, "name": "application_fee_amount", "comment": null}, "balance_transaction_id": {"type": "character varying(500)", "index": 7, "name": "balance_transaction_id", "comment": null}, "bank_account_id": {"type": "integer", "index": 8, "name": "bank_account_id", "comment": null}, "captured": {"type": "boolean", "index": 9, "name": "captured", "comment": null}, "card_id": {"type": "text", "index": 10, "name": "card_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 11, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "text", "index": 13, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "description": {"type": "text", "index": 15, "name": "description", "comment": null}, "destination": {"type": "integer", "index": 16, "name": "destination", "comment": null}, "failure_code": {"type": "text", "index": 17, "name": "failure_code", "comment": null}, "failure_message": {"type": "text", "index": 18, "name": "failure_message", "comment": null}, "fraud_details_stripe_report": {"type": "integer", "index": 19, "name": "fraud_details_stripe_report", "comment": null}, "fraud_details_user_report": {"type": "integer", "index": 20, "name": "fraud_details_user_report", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 21, "name": "invoice_id", "comment": null}, "livemode": {"type": "boolean", "index": 22, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 23, "name": "metadata", "comment": null}, "on_behalf_of": {"type": "integer", "index": 24, "name": "on_behalf_of", "comment": null}, "outcome_network_status": {"type": "text", "index": 25, "name": "outcome_network_status", "comment": null}, "outcome_reason": {"type": "text", "index": 26, "name": "outcome_reason", "comment": null}, "outcome_risk_level": {"type": "text", "index": 27, "name": "outcome_risk_level", "comment": null}, "outcome_risk_score": {"type": "double precision", "index": 28, "name": "outcome_risk_score", "comment": null}, "outcome_seller_message": {"type": "text", "index": 29, "name": "outcome_seller_message", "comment": null}, "outcome_type": {"type": "text", "index": 30, "name": "outcome_type", "comment": null}, "paid": {"type": "boolean", "index": 31, "name": "paid", "comment": null}, "payment_intent_id": {"type": "text", "index": 32, "name": "payment_intent_id", "comment": null}, "receipt_email": {"type": "text", "index": 33, "name": "receipt_email", "comment": null}, "receipt_number": {"type": "integer", "index": 34, "name": "receipt_number", "comment": null}, "receipt_url": {"type": "integer", "index": 35, "name": "receipt_url", "comment": null}, "refunded": {"type": "boolean", "index": 36, "name": "refunded", "comment": null}, "shipping_address_city": {"type": "integer", "index": 37, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "integer", "index": 38, "name": "shipping_address_country", "comment": null}, "shipping_address_line_1": {"type": "integer", "index": 39, "name": "shipping_address_line_1", "comment": null}, "shipping_address_line_2": {"type": "integer", "index": 40, "name": "shipping_address_line_2", "comment": null}, "shipping_address_postal_code": {"type": "integer", "index": 41, "name": "shipping_address_postal_code", "comment": null}, "shipping_address_state": {"type": "integer", "index": 42, "name": "shipping_address_state", "comment": null}, "shipping_carrier": {"type": "integer", "index": 43, "name": "shipping_carrier", "comment": null}, "shipping_name": {"type": "integer", "index": 44, "name": "shipping_name", "comment": null}, "shipping_phone": {"type": "integer", "index": 45, "name": "shipping_phone", "comment": null}, "shipping_tracking_number": {"type": "integer", "index": 46, "name": "shipping_tracking_number", "comment": null}, "source_id": {"type": "integer", "index": 47, "name": "source_id", "comment": null}, "source_transfer": {"type": "integer", "index": 48, "name": "source_transfer", "comment": null}, "statement_descriptor": {"type": "integer", "index": 49, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 50, "name": "status", "comment": null}, "transfer_data_destination": {"type": "integer", "index": 51, "name": "transfer_data_destination", "comment": null}, "transfer_group": {"type": "integer", "index": 52, "name": "transfer_group", "comment": null}, "transfer_id": {"type": "integer", "index": 53, "name": "transfer_id", "comment": null}, "calculated_statement_descriptor": {"type": "text", "index": 54, "name": "calculated_statement_descriptor", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 55, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__charge_tmp"}, "model.stripe.stg_stripe__coupon": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__coupon", "database": "postgres", "comment": "Properties belonging to a Stripe coupon.", "owner": "postgres"}, "columns": {"coupon_id": {"type": "text", "index": 1, "name": "coupon_id", "comment": "Unique identifier for the object."}, "coupon_name": {"type": "text", "index": 2, "name": "coupon_name", "comment": "Name of the coupon or promotion."}, "created_at": {"type": "timestamp without time zone", "index": 3, "name": "created_at", "comment": "Time at which the object was created."}, "redeem_by": {"type": "timestamp without time zone", "index": 4, "name": "redeem_by", "comment": "The date by which the coupon must be redeemed."}, "duration": {"type": "text", "index": 5, "name": "duration", "comment": "The duration of the coupon. Typically \"forever,\" \"once,\" or \"repeating.\""}, "duration_in_months": {"type": "integer", "index": 6, "name": "duration_in_months", "comment": "If the coupon does not last forever, the duration in months you can apply it. For a forever coupon, this attribute is null."}, "amount_off": {"type": "integer", "index": 7, "name": "amount_off", "comment": "The amount taken off the total price in the selected currency."}, "percent_off": {"type": "double precision", "index": 8, "name": "percent_off", "comment": "The percentage taken off the total price."}, "currency": {"type": "text", "index": 9, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "metadata": {"type": "integer", "index": 10, "name": "metadata", "comment": null}, "max_redemptions": {"type": "integer", "index": 11, "name": "max_redemptions", "comment": "The maximum number of times this coupon can be redeemed."}, "times_redeemed": {"type": "integer", "index": 12, "name": "times_redeemed", "comment": "The number of times this coupon has been redeemed."}, "valid": {"type": "boolean", "index": 13, "name": "valid", "comment": "Indicates whether the coupon can still be applied to a customer."}, "source_relation": {"type": "text", "index": 14, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__coupon"}, "model.stripe.stg_stripe__coupon_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__coupon_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "amount_off": {"type": "integer", "index": 2, "name": "amount_off", "comment": null}, "created": {"type": "timestamp without time zone", "index": 3, "name": "created", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "duration": {"type": "text", "index": 5, "name": "duration", "comment": null}, "duration_in_months": {"type": "integer", "index": 6, "name": "duration_in_months", "comment": null}, "livemode": {"type": "boolean", "index": 7, "name": "livemode", "comment": null}, "max_redemptions": {"type": "integer", "index": 8, "name": "max_redemptions", "comment": null}, "metadata": {"type": "integer", "index": 9, "name": "metadata", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "percent_off": {"type": "double precision", "index": 11, "name": "percent_off", "comment": null}, "redeem_by": {"type": "timestamp without time zone", "index": 12, "name": "redeem_by", "comment": null}, "times_redeemed": {"type": "integer", "index": 13, "name": "times_redeemed", "comment": null}, "valid": {"type": "boolean", "index": 14, "name": "valid", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 15, "name": "_fivetran_synced", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 16, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__coupon_tmp"}, "model.stripe.stg_stripe__credit_note": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note", "database": "postgres", "comment": "Credit notes are documents that decrease the amount owed on an invoice. They\u2019re the only way to adjust the amount of a finalized invoice other than voiding and recreating the invoice.", "owner": "postgres"}, "columns": {"credit_note_id": {"type": "text", "index": 1, "name": "credit_note_id", "comment": "Unique identifier for the object."}, "credit_note_amount": {"type": "integer", "index": 2, "name": "credit_note_amount", "comment": "The integer amount in currency units representing the total amount of the credit note, including tax. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "credit_note_discount_amount": {"type": "integer", "index": 3, "name": "credit_note_discount_amount", "comment": "The integer amount in currency units representing the total amount of discount that was credited. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "credit_note_subtotal": {"type": "integer", "index": 4, "name": "credit_note_subtotal", "comment": "The integer amount in currency units representing the amount of the credit note, excluding tax and invoice level discounts. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "credit_note_total": {"type": "integer", "index": 5, "name": "credit_note_total", "comment": "The integer amount in currency units representing the total amount of the credit note, including tax and all discount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": "Timestamp of the when the credit_note was created."}, "credit_note_currency": {"type": "text", "index": 7, "name": "credit_note_currency", "comment": "The currency of the charge. Three-letter ISO currency code, in lowercase."}, "memo": {"type": "integer", "index": 8, "name": "memo", "comment": "Customer-facing text that appears on the credit note PDF."}, "metadata": {"type": "text", "index": 9, "name": "metadata", "comment": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format."}, "credit_note_number": {"type": "text", "index": 10, "name": "credit_note_number", "comment": "A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice."}, "pdf": {"type": "text", "index": 11, "name": "pdf", "comment": "The link to download the PDF of the credit note."}, "credit_note_reason": {"type": "integer", "index": 12, "name": "credit_note_reason", "comment": "Reason for issuing this credit note, one of duplicate, fraudulent, order_change, or product_unsatisfactory"}, "credit_note_status": {"type": "text", "index": 13, "name": "credit_note_status", "comment": "Status of this credit note, one of issued or void."}, "credit_note_type": {"type": "text", "index": 14, "name": "credit_note_type", "comment": "Type of this credit note, one of pre_payment or post_payment. A pre_payment credit note means it was issued when the invoice was open. A post_payment credit note means it was issued when the invoice was paid."}, "voided_at": {"type": "timestamp without time zone", "index": 15, "name": "voided_at", "comment": "The time that the credit note was voided."}, "customer_balance_transaction": {"type": "integer", "index": 16, "name": "customer_balance_transaction", "comment": "Customer balance transaction related to this credit note."}, "invoice_id": {"type": "character varying(500)", "index": 17, "name": "invoice_id", "comment": "The id of the invoice associated with this credit note."}, "refund_id": {"type": "text", "index": 18, "name": "refund_id", "comment": "The id of the refund associated with this credit note."}, "source_relation": {"type": "text", "index": 19, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__credit_note"}, "model.stripe.stg_stripe__credit_note_line_item": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note_line_item", "database": "postgres", "comment": "The different items that a credit note contains.", "owner": "postgres"}, "columns": {"credit_note_line_item_id": {"type": "text", "index": 1, "name": "credit_note_line_item_id", "comment": "Unique identifier for the object."}, "credit_note_id": {"type": "text", "index": 2, "name": "credit_note_id", "comment": "The ID of the credit note this item is a part of."}, "credit_note_line_item_amount": {"type": "integer", "index": 3, "name": "credit_note_line_item_amount", "comment": "The integer amount in currency units representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "credit_note_line_item_discount_amount": {"type": "integer", "index": 4, "name": "credit_note_line_item_discount_amount", "comment": "The integer amount in currency units representing the discount being credited for this line item. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "credit_note_line_item_description": {"type": "text", "index": 5, "name": "credit_note_line_item_description", "comment": "Description of the item being credited."}, "quantity": {"type": "integer", "index": 6, "name": "quantity", "comment": "The number of units of product being credited."}, "credit_note_line_item_type": {"type": "text", "index": 7, "name": "credit_note_line_item_type", "comment": "The type of the credit note line item, one of invoice_line_item or custom_line_item. When the type is invoice_line_item there is an additional invoice_line_item property on the resource the value of which is the id of the credited line item on the invoice."}, "credit_note_line_item_unit_amount": {"type": "integer", "index": 8, "name": "credit_note_line_item_unit_amount", "comment": "The cost of each unit of product being credited. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "livemode": {"type": "boolean", "index": 9, "name": "livemode", "comment": "Has the value true if the object exists in live mode or the value false if the object exists in test mode."}, "source_relation": {"type": "text", "index": 10, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__credit_note_line_item"}, "model.stripe.stg_stripe__credit_note_line_item_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note_line_item_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"credit_note_id": {"type": "text", "index": 1, "name": "credit_note_id", "comment": null}, "id": {"type": "text", "index": 2, "name": "id", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "discount_amount": {"type": "integer", "index": 4, "name": "discount_amount", "comment": null}, "description": {"type": "text", "index": 5, "name": "description", "comment": null}, "livemode": {"type": "boolean", "index": 6, "name": "livemode", "comment": null}, "quantity": {"type": "integer", "index": 7, "name": "quantity", "comment": null}, "type": {"type": "text", "index": 8, "name": "type", "comment": null}, "unit_amount": {"type": "integer", "index": 9, "name": "unit_amount", "comment": null}, "unit_amount_decimal": {"type": "integer", "index": 10, "name": "unit_amount_decimal", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 12, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__credit_note_line_item_tmp"}, "model.stripe.stg_stripe__credit_note_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "amount": {"type": "integer", "index": 2, "name": "amount", "comment": null}, "created": {"type": "timestamp without time zone", "index": 3, "name": "created", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "discount_amount": {"type": "integer", "index": 5, "name": "discount_amount", "comment": null}, "subtotal": {"type": "integer", "index": 6, "name": "subtotal", "comment": null}, "total": {"type": "integer", "index": 7, "name": "total", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "memo": {"type": "integer", "index": 9, "name": "memo", "comment": null}, "metadata": {"type": "text", "index": 10, "name": "metadata", "comment": null}, "number": {"type": "text", "index": 11, "name": "number", "comment": null}, "pdf": {"type": "text", "index": 12, "name": "pdf", "comment": null}, "reason": {"type": "integer", "index": 13, "name": "reason", "comment": null}, "status": {"type": "text", "index": 14, "name": "status", "comment": null}, "type": {"type": "text", "index": 15, "name": "type", "comment": null}, "voided_at": {"type": "timestamp without time zone", "index": 16, "name": "voided_at", "comment": null}, "customer_balance_transaction_id": {"type": "integer", "index": 17, "name": "customer_balance_transaction_id", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 18, "name": "invoice_id", "comment": null}, "refund_id": {"type": "text", "index": 19, "name": "refund_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 20, "name": "_fivetran_synced", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 21, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__credit_note_tmp"}, "model.stripe.stg_stripe__customer": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__customer", "database": "postgres", "comment": "Customer objects allow you to perform recurring charges, and to track multiple charges, that are associated with the same customer.", "owner": "postgres"}, "columns": {"customer_id": {"type": "text", "index": 1, "name": "customer_id", "comment": "Unique identifier for the object."}, "account_balance": {"type": "integer", "index": 2, "name": "account_balance", "comment": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice."}, "customer_address_city": {"type": "integer", "index": 3, "name": "customer_address_city", "comment": "City, district, suburb, town, or village."}, "customer_address_country": {"type": "integer", "index": 4, "name": "customer_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "customer_address_line_1": {"type": "integer", "index": 5, "name": "customer_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "customer_address_line_2": {"type": "integer", "index": 6, "name": "customer_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "customer_address_postal_code": {"type": "integer", "index": 7, "name": "customer_address_postal_code", "comment": "ZIP or postal code."}, "customer_address_state": {"type": "integer", "index": 8, "name": "customer_address_state", "comment": "State, county, province, or region."}, "customer_balance": {"type": "integer", "index": 9, "name": "customer_balance", "comment": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized."}, "bank_account_id": {"type": "text", "index": 10, "name": "bank_account_id", "comment": "ID of the bank account associated with this customer."}, "created_at": {"type": "timestamp without time zone", "index": 11, "name": "created_at", "comment": "Timestamp of when the customer entry was created."}, "currency": {"type": "integer", "index": 12, "name": "currency", "comment": "Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes."}, "default_card_id": {"type": "integer", "index": 13, "name": "default_card_id", "comment": "ID for the default card used by the customer."}, "is_delinquent": {"type": "boolean", "index": 14, "name": "is_delinquent", "comment": "When the customer\u2019s latest invoice is billed by charging automatically, delinquent is true if the invoice\u2019s latest charge is failed. When the customer\u2019s latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date."}, "description": {"type": "character varying(500)", "index": 15, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "email": {"type": "integer", "index": 16, "name": "email", "comment": "The customer\u2019s email address."}, "metadata": {"type": "text", "index": 17, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "customer_name": {"type": "text", "index": 18, "name": "customer_name", "comment": "Customer name."}, "phone": {"type": "integer", "index": 19, "name": "phone", "comment": "Customer's phone number."}, "shipping_address_city": {"type": "integer", "index": 20, "name": "shipping_address_city", "comment": "Attribute of the customer's shipping address."}, "shipping_address_country": {"type": "integer", "index": 21, "name": "shipping_address_country", "comment": "Attribute of the customer's shipping address."}, "shipping_address_line_1": {"type": "integer", "index": 22, "name": "shipping_address_line_1", "comment": "Attribute of the customer's shipping address."}, "shipping_address_line_2": {"type": "integer", "index": 23, "name": "shipping_address_line_2", "comment": "Attribute of the customer's shipping address."}, "shipping_address_postal_code": {"type": "integer", "index": 24, "name": "shipping_address_postal_code", "comment": "Attribute of the customer's shipping address."}, "shipping_address_state": {"type": "integer", "index": 25, "name": "shipping_address_state", "comment": "Attribute of the customer's shipping address."}, "shipping_name": {"type": "integer", "index": 26, "name": "shipping_name", "comment": "Attribute of the customer's shipping address."}, "shipping_phone": {"type": "integer", "index": 27, "name": "shipping_phone", "comment": "Attribute of the customer's shipping address."}, "source_relation": {"type": "text", "index": 28, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}, "is_deleted": {"type": "boolean", "index": 29, "name": "is_deleted", "comment": "Boolean reflecting whether the customer has been deleted in Stripe."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__customer"}, "model.stripe.stg_stripe__customer_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__customer_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "account_balance": {"type": "integer", "index": 3, "name": "account_balance", "comment": null}, "address_city": {"type": "integer", "index": 4, "name": "address_city", "comment": null}, "address_country": {"type": "integer", "index": 5, "name": "address_country", "comment": null}, "address_line_1": {"type": "integer", "index": 6, "name": "address_line_1", "comment": null}, "address_line_2": {"type": "integer", "index": 7, "name": "address_line_2", "comment": null}, "address_postal_code": {"type": "integer", "index": 8, "name": "address_postal_code", "comment": null}, "address_state": {"type": "integer", "index": 9, "name": "address_state", "comment": null}, "balance": {"type": "integer", "index": 10, "name": "balance", "comment": null}, "bank_account_id": {"type": "text", "index": 11, "name": "bank_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "integer", "index": 13, "name": "currency", "comment": null}, "default_card_id": {"type": "integer", "index": 14, "name": "default_card_id", "comment": null}, "delinquent": {"type": "boolean", "index": 15, "name": "delinquent", "comment": null}, "description": {"type": "character varying(500)", "index": 16, "name": "description", "comment": null}, "email": {"type": "integer", "index": 17, "name": "email", "comment": null}, "invoice_prefix": {"type": "text", "index": 18, "name": "invoice_prefix", "comment": null}, "invoice_settings_default_payment_method": {"type": "integer", "index": 19, "name": "invoice_settings_default_payment_method", "comment": null}, "invoice_settings_footer": {"type": "integer", "index": 20, "name": "invoice_settings_footer", "comment": null}, "is_deleted": {"type": "boolean", "index": 21, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 22, "name": "livemode", "comment": null}, "name": {"type": "text", "index": 23, "name": "name", "comment": null}, "phone": {"type": "integer", "index": 24, "name": "phone", "comment": null}, "shipping_address_city": {"type": "integer", "index": 25, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "integer", "index": 26, "name": "shipping_address_country", "comment": null}, "shipping_address_line_1": {"type": "integer", "index": 27, "name": "shipping_address_line_1", "comment": null}, "shipping_address_line_2": {"type": "integer", "index": 28, "name": "shipping_address_line_2", "comment": null}, "shipping_address_postal_code": {"type": "integer", "index": 29, "name": "shipping_address_postal_code", "comment": null}, "shipping_address_state": {"type": "integer", "index": 30, "name": "shipping_address_state", "comment": null}, "shipping_carrier": {"type": "integer", "index": 31, "name": "shipping_carrier", "comment": null}, "shipping_name": {"type": "integer", "index": 32, "name": "shipping_name", "comment": null}, "shipping_phone": {"type": "integer", "index": 33, "name": "shipping_phone", "comment": null}, "shipping_tracking_number": {"type": "integer", "index": 34, "name": "shipping_tracking_number", "comment": null}, "source_id": {"type": "integer", "index": 35, "name": "source_id", "comment": null}, "tax_exempt": {"type": "text", "index": 36, "name": "tax_exempt", "comment": null}, "tax_info_tax_id": {"type": "integer", "index": 37, "name": "tax_info_tax_id", "comment": null}, "tax_info_type": {"type": "integer", "index": 38, "name": "tax_info_type", "comment": null}, "tax_info_verification_status": {"type": "integer", "index": 39, "name": "tax_info_verification_status", "comment": null}, "tax_info_verification_verified_name": {"type": "integer", "index": 40, "name": "tax_info_verification_verified_name", "comment": null}, "metadata": {"type": "text", "index": 41, "name": "metadata", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 42, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__customer_tmp"}, "model.stripe.stg_stripe__discount": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__discount", "database": "postgres", "comment": "Properties belonging to a Stripe discount.", "owner": "postgres"}, "columns": {"discount_id": {"type": "text", "index": 1, "name": "discount_id", "comment": "The ID of the discount object."}, "type": {"type": "integer", "index": 2, "name": "type", "comment": "String representing the object\u2019s type."}, "type_id": {"type": "text", "index": 3, "name": "type_id", "comment": "Identifier of the related object type (e.g., coupon ID, promotion code)."}, "amount": {"type": "bigint", "index": 4, "name": "amount", "comment": "The amount of discount applied. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "checkout_session_id": {"type": "integer", "index": 5, "name": "checkout_session_id", "comment": "The Checkout session that this discount is applied to, if it is applied to a particular session in payment mode."}, "checkout_session_line_item_id": {"type": "integer", "index": 6, "name": "checkout_session_line_item_id", "comment": "The ID of the specific line item within the checkout session that the discount is applied to."}, "coupon_id": {"type": "text", "index": 7, "name": "coupon_id", "comment": "The ID of the coupon applied to create this discount."}, "credit_note_line_item_id": {"type": "text", "index": 8, "name": "credit_note_line_item_id", "comment": "The ID of the credit note line item associated with this discount."}, "customer_id": {"type": "text", "index": 9, "name": "customer_id", "comment": "The ID of the customer associated with this discount."}, "end_at": {"type": "timestamp without time zone", "index": 10, "name": "end_at", "comment": "If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null."}, "invoice_id": {"type": "character varying(500)", "index": 11, "name": "invoice_id", "comment": "The invoice that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice."}, "invoice_item_id": {"type": "integer", "index": 12, "name": "invoice_item_id", "comment": "The invoice item id (or invoice line item id for invoice line items of type=\u2018subscription\u2019) that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."}, "promotion_code": {"type": "integer", "index": 13, "name": "promotion_code", "comment": "The promotion code applied to create this discount."}, "start_at": {"type": "timestamp without time zone", "index": 14, "name": "start_at", "comment": "The date that the coupon was applied."}, "subscription_id": {"type": "text", "index": 15, "name": "subscription_id", "comment": "The subscription that this coupon is applied to, if it is applied to a particular subscription."}, "source_relation": {"type": "text", "index": 16, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__discount"}, "model.stripe.stg_stripe__discount_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__discount_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "type": {"type": "integer", "index": 2, "name": "type", "comment": null}, "type_id": {"type": "text", "index": 3, "name": "type_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 4, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "bigint", "index": 5, "name": "amount", "comment": null}, "checkout_session_id": {"type": "integer", "index": 6, "name": "checkout_session_id", "comment": null}, "checkout_session_line_item_id": {"type": "integer", "index": 7, "name": "checkout_session_line_item_id", "comment": null}, "coupon_id": {"type": "text", "index": 8, "name": "coupon_id", "comment": null}, "credit_note_line_item_id": {"type": "text", "index": 9, "name": "credit_note_line_item_id", "comment": null}, "customer_id": {"type": "text", "index": 10, "name": "customer_id", "comment": null}, "end": {"type": "timestamp without time zone", "index": 11, "name": "end", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 12, "name": "invoice_id", "comment": null}, "invoice_item_id": {"type": "integer", "index": 13, "name": "invoice_item_id", "comment": null}, "promotion_code": {"type": "integer", "index": 14, "name": "promotion_code", "comment": null}, "start": {"type": "text", "index": 15, "name": "start", "comment": null}, "subscription_id": {"type": "text", "index": 16, "name": "subscription_id", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 17, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__discount_tmp"}, "model.stripe.stg_stripe__dispute": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__dispute", "database": "postgres", "comment": "Properties belonging to a Stripe dispute.", "owner": "postgres"}, "columns": {"dispute_id": {"type": "text", "index": 1, "name": "dispute_id", "comment": "Unique identifier for the object."}, "dispute_amount": {"type": "integer", "index": 2, "name": "dispute_amount", "comment": "Disputed amount. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "balance_transaction": {"type": "text", "index": 3, "name": "balance_transaction", "comment": "List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute."}, "charge_id": {"type": "text", "index": 4, "name": "charge_id", "comment": "ID of the charge that was disputed."}, "connected_account_id": {"type": "integer", "index": 5, "name": "connected_account_id", "comment": "Account id associated with this dispute."}, "dispute_created_at": {"type": "timestamp without time zone", "index": 6, "name": "dispute_created_at", "comment": "Time at which the object was created. Measured in seconds since the Unix epoch."}, "dispute_currency": {"type": "text", "index": 7, "name": "dispute_currency", "comment": "Three-letter ISO currency code, in lowercase. Must be a supported currency."}, "evidence_access_activity_log": {"type": "integer", "index": 8, "name": "evidence_access_activity_log", "comment": "Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity. Has a maximum character count of 20,000."}, "evidence_billing_address": {"type": "text", "index": 9, "name": "evidence_billing_address", "comment": "The billing address provided by the customer."}, "evidence_cancellation_policy": {"type": "integer", "index": 10, "name": "evidence_cancellation_policy", "comment": "(ID of a file upload) Your subscription cancellation policy, as shown to the customer."}, "evidence_cancellation_policy_disclosure": {"type": "integer", "index": 11, "name": "evidence_cancellation_policy_disclosure", "comment": "An explanation of how and when the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000."}, "evidence_cancellation_rebuttal": {"type": "integer", "index": 12, "name": "evidence_cancellation_rebuttal", "comment": "A justification for why the customer\u2019s subscription was not canceled. Has a maximum character count of 20,000."}, "evidence_customer_communication": {"type": "integer", "index": 13, "name": "evidence_customer_communication", "comment": "(ID of a file upload) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service."}, "evidence_customer_email_address": {"type": "text", "index": 14, "name": "evidence_customer_email_address", "comment": "The email address of the customer."}, "evidence_customer_name": {"type": "text", "index": 15, "name": "evidence_customer_name", "comment": "The name of the customer."}, "evidence_customer_purchase_ip": {"type": "text", "index": 16, "name": "evidence_customer_purchase_ip", "comment": "The IP address that the customer used when making the purchase."}, "evidence_customer_signature": {"type": "integer", "index": 17, "name": "evidence_customer_signature", "comment": "(ID of a file upload) A relevant document or contract showing the customer\u2019s signature."}, "evidence_details_due_by": {"type": "text", "index": 18, "name": "evidence_details_due_by", "comment": "Date by which evidence must be submitted in order to successfully challenge dispute. Will be 0 if the customer\u2019s bank or credit card company doesn\u2019t allow a response for this particular dispute."}, "evidence_details_has_evidence": {"type": "boolean", "index": 19, "name": "evidence_details_has_evidence", "comment": "Whether evidence has been staged for this dispute."}, "evidence_details_past_due": {"type": "boolean", "index": 20, "name": "evidence_details_past_due", "comment": "Whether the last evidence submission was submitted past the due date. Defaults to false if no evidence submissions have occurred. If true, then delivery of the latest evidence is not guaranteed."}, "evidence_details_submission_count": {"type": "integer", "index": 21, "name": "evidence_details_submission_count", "comment": "The number of times evidence has been submitted. Typically, you may only submit evidence once."}, "evidence_duplicate_charge_documentation": {"type": "integer", "index": 22, "name": "evidence_duplicate_charge_documentation", "comment": "(ID of a file upload) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate."}, "evidence_duplicate_charge_explanation": {"type": "integer", "index": 23, "name": "evidence_duplicate_charge_explanation", "comment": "An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate. Has a maximum character count of 20,000."}, "evidence_duplicate_charge_id": {"type": "integer", "index": 24, "name": "evidence_duplicate_charge_id", "comment": "The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge."}, "evidence_product_description": {"type": "integer", "index": 25, "name": "evidence_product_description", "comment": "A description of the product or service that was sold. Has a maximum character count of 20,000."}, "evidence_receipt": {"type": "text", "index": 26, "name": "evidence_receipt", "comment": "(ID of a file upload) Any receipt or message sent to the customer notifying them of the charge."}, "evidence_refund_policy": {"type": "integer", "index": 27, "name": "evidence_refund_policy", "comment": "(ID of a file upload) Your refund policy, as shown to the customer."}, "evidence_refund_policy_disclosure": {"type": "integer", "index": 28, "name": "evidence_refund_policy_disclosure", "comment": "Documentation demonstrating that the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000."}, "evidence_refund_refusal_explanation": {"type": "integer", "index": 29, "name": "evidence_refund_refusal_explanation", "comment": "A justification for why the customer is not entitled to a refund. Has a maximum character count of 20,000."}, "evidence_service_date": {"type": "integer", "index": 30, "name": "evidence_service_date", "comment": "The date on which the customer received or began receiving the purchased service, in a clear human-readable format."}, "evidence_service_documentation": {"type": "integer", "index": 31, "name": "evidence_service_documentation", "comment": "(ID of a file upload) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement."}, "evidence_shipping_address": {"type": "integer", "index": 32, "name": "evidence_shipping_address", "comment": "The address to which a physical product was shipped. You should try to include as complete address information as possible."}, "evidence_shipping_carrier": {"type": "integer", "index": 33, "name": "evidence_shipping_carrier", "comment": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas."}, "evidence_shipping_date": {"type": "integer", "index": 34, "name": "evidence_shipping_date", "comment": "The date on which a physical product began its route to the shipping address, in a clear human-readable format."}, "evidence_shipping_documentation": {"type": "integer", "index": 35, "name": "evidence_shipping_documentation", "comment": "(ID of a file upload) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer\u2019s full shipping address, if possible."}, "evidence_shipping_tracking_number": {"type": "integer", "index": 36, "name": "evidence_shipping_tracking_number", "comment": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas."}, "evidence_uncategorized_file": {"type": "integer", "index": 37, "name": "evidence_uncategorized_file", "comment": "(ID of a file upload) Any additional evidence or statements."}, "evidence_uncategorized_text": {"type": "integer", "index": 38, "name": "evidence_uncategorized_text", "comment": "Any additional evidence or statements. Has a maximum character count of 20,000."}, "is_charge_refundable": {"type": "boolean", "index": 39, "name": "is_charge_refundable", "comment": "Boolean ff true, it is still possible to refund the disputed payment. Once the payment has been fully refunded, no further funds will be withdrawn from your Stripe account as a result of this dispute."}, "dispute_metadata": {"type": "text", "index": 40, "name": "dispute_metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "dispute_reason": {"type": "text", "index": 41, "name": "dispute_reason", "comment": "Reason given by cardholder for dispute. Possible values are bank_cannot_process, check_returned, credit_not_processed, customer_initiated, debit_not_authorized, duplicate, fraudulent, general, incorrect_account_details, insufficient_funds, product_not_received, product_unacceptable, subscription_canceled, or unrecognized."}, "dispute_status": {"type": "text", "index": 42, "name": "dispute_status", "comment": "Current status of dispute. Possible values are warning_needs_response, warning_under_review, warning_closed, needs_response, under_review, won, or lost."}, "source_relation": {"type": "text", "index": 43, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__dispute"}, "model.stripe.stg_stripe__dispute_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__dispute_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "balance_transaction": {"type": "text", "index": 4, "name": "balance_transaction", "comment": null}, "charge_id": {"type": "text", "index": 5, "name": "charge_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 6, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 7, "name": "created", "comment": null}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": null}, "evidence_access_activity_log": {"type": "integer", "index": 9, "name": "evidence_access_activity_log", "comment": null}, "evidence_billing_address": {"type": "text", "index": 10, "name": "evidence_billing_address", "comment": null}, "evidence_cancellation_policy": {"type": "integer", "index": 11, "name": "evidence_cancellation_policy", "comment": null}, "evidence_cancellation_policy_disclosure": {"type": "integer", "index": 12, "name": "evidence_cancellation_policy_disclosure", "comment": null}, "evidence_cancellation_rebuttal": {"type": "integer", "index": 13, "name": "evidence_cancellation_rebuttal", "comment": null}, "evidence_customer_communication": {"type": "integer", "index": 14, "name": "evidence_customer_communication", "comment": null}, "evidence_customer_email_address": {"type": "text", "index": 15, "name": "evidence_customer_email_address", "comment": null}, "evidence_customer_name": {"type": "text", "index": 16, "name": "evidence_customer_name", "comment": null}, "evidence_customer_purchase_ip": {"type": "text", "index": 17, "name": "evidence_customer_purchase_ip", "comment": null}, "evidence_customer_signature": {"type": "integer", "index": 18, "name": "evidence_customer_signature", "comment": null}, "evidence_details_due_by": {"type": "text", "index": 19, "name": "evidence_details_due_by", "comment": null}, "evidence_details_has_evidence": {"type": "boolean", "index": 20, "name": "evidence_details_has_evidence", "comment": null}, "evidence_details_past_due": {"type": "boolean", "index": 21, "name": "evidence_details_past_due", "comment": null}, "evidence_details_submission_count": {"type": "integer", "index": 22, "name": "evidence_details_submission_count", "comment": null}, "evidence_duplicate_charge_documentation": {"type": "integer", "index": 23, "name": "evidence_duplicate_charge_documentation", "comment": null}, "evidence_duplicate_charge_explanation": {"type": "integer", "index": 24, "name": "evidence_duplicate_charge_explanation", "comment": null}, "evidence_duplicate_charge_id": {"type": "integer", "index": 25, "name": "evidence_duplicate_charge_id", "comment": null}, "evidence_product_description": {"type": "integer", "index": 26, "name": "evidence_product_description", "comment": null}, "evidence_receipt": {"type": "text", "index": 27, "name": "evidence_receipt", "comment": null}, "evidence_refund_policy": {"type": "integer", "index": 28, "name": "evidence_refund_policy", "comment": null}, "evidence_refund_policy_disclosure": {"type": "integer", "index": 29, "name": "evidence_refund_policy_disclosure", "comment": null}, "evidence_refund_refusal_explanation": {"type": "integer", "index": 30, "name": "evidence_refund_refusal_explanation", "comment": null}, "evidence_service_date": {"type": "integer", "index": 31, "name": "evidence_service_date", "comment": null}, "evidence_service_documentation": {"type": "integer", "index": 32, "name": "evidence_service_documentation", "comment": null}, "evidence_shipping_address": {"type": "integer", "index": 33, "name": "evidence_shipping_address", "comment": null}, "evidence_shipping_carrier": {"type": "integer", "index": 34, "name": "evidence_shipping_carrier", "comment": null}, "evidence_shipping_date": {"type": "integer", "index": 35, "name": "evidence_shipping_date", "comment": null}, "evidence_shipping_documentation": {"type": "integer", "index": 36, "name": "evidence_shipping_documentation", "comment": null}, "evidence_shipping_tracking_number": {"type": "integer", "index": 37, "name": "evidence_shipping_tracking_number", "comment": null}, "evidence_uncategorized_file": {"type": "integer", "index": 38, "name": "evidence_uncategorized_file", "comment": null}, "evidence_uncategorized_text": {"type": "integer", "index": 39, "name": "evidence_uncategorized_text", "comment": null}, "is_charge_refundable": {"type": "boolean", "index": 40, "name": "is_charge_refundable", "comment": null}, "livemode": {"type": "boolean", "index": 41, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 42, "name": "metadata", "comment": null}, "reason": {"type": "text", "index": 43, "name": "reason", "comment": null}, "status": {"type": "text", "index": 44, "name": "status", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 45, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__dispute_tmp"}, "model.stripe.stg_stripe__fee": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__fee", "database": "postgres", "comment": "The details of a fee associated with a balance transaction", "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": "ID of the balance transaction entry the fee applies to"}, "index": {"type": "integer", "index": 2, "name": "index", "comment": "The index of the fee within the balance transaction"}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": "Amount of the fee. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "application": {"type": "integer", "index": 4, "name": "application", "comment": "ID of the Connect application that earned the fee."}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "description": {"type": "text", "index": 6, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "type": {"type": "text", "index": 7, "name": "type", "comment": "Type of the fee, can be application_fee, stripe_fee or tax."}, "source_relation": {"type": "text", "index": 8, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__fee"}, "model.stripe.stg_stripe__fee_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__fee_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": null}, "index": {"type": "integer", "index": 2, "name": "index", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "application": {"type": "integer", "index": 5, "name": "application", "comment": null}, "connected_account_id": {"type": "integer", "index": 6, "name": "connected_account_id", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "type": {"type": "text", "index": 9, "name": "type", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 10, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__fee_tmp"}, "model.stripe.stg_stripe__invoice": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__invoice", "database": "postgres", "comment": "Invoices are statements of amounts owed by a customer, and are either generated one-off, or generated periodically from a subscription.", "owner": "postgres"}, "columns": {"invoice_id": {"type": "text", "index": 1, "name": "invoice_id", "comment": "Unique identifier for the object."}, "default_payment_method_id": {"type": "text", "index": 2, "name": "default_payment_method_id", "comment": "ID of the default payment method in this invoice."}, "payment_intent_id": {"type": "text", "index": 3, "name": "payment_intent_id", "comment": "ID of the PaymentIntent associated with this invoice."}, "subscription_id": {"type": "text", "index": 4, "name": "subscription_id", "comment": "The ID of the subscription that the invoice pertains to,."}, "amount_due": {"type": "bigint", "index": 5, "name": "amount_due", "comment": "Final amount due at this time for this invoice. If the invoice\u2019s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "amount_paid": {"type": "bigint", "index": 6, "name": "amount_paid", "comment": "The amount, that was paid. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "amount_remaining": {"type": "bigint", "index": 7, "name": "amount_remaining", "comment": "The amount remaining, that is due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "post_payment_credit_notes_amount": {"type": "bigint", "index": 8, "name": "post_payment_credit_notes_amount", "comment": "Total amount of all post-payment credit notes issued for this invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "pre_payment_credit_notes_amount": {"type": "bigint", "index": 9, "name": "pre_payment_credit_notes_amount", "comment": "Total amount of all pre-payment credit notes issued for this invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "subtotal": {"type": "bigint", "index": 10, "name": "subtotal", "comment": "Total of all subscriptions, invoice items, and prorations on the invoice before any discount or tax is applied."}, "tax": {"type": "bigint", "index": 11, "name": "tax", "comment": "The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total": {"type": "bigint", "index": 12, "name": "total", "comment": "Total after discounts and taxes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "attempt_count": {"type": "bigint", "index": 13, "name": "attempt_count", "comment": "Number of payment attempts made for this invoice, from the perspective of the payment retry schedule."}, "auto_advance": {"type": "boolean", "index": 14, "name": "auto_advance", "comment": "Controls whether Stripe will perform automatic collection of the invoice. When false, the invoice\u2019s state will not automatically advance without an explicit action."}, "billing_reason": {"type": "text", "index": 15, "name": "billing_reason", "comment": "Indicates the reason why the invoice was created."}, "charge_id": {"type": "text", "index": 16, "name": "charge_id", "comment": "ID of the latest charge generated for this invoice, if any."}, "created_at": {"type": "timestamp without time zone", "index": 17, "name": "created_at", "comment": "Time at which the object was created."}, "currency": {"type": "text", "index": 18, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "customer_id": {"type": "text", "index": 19, "name": "customer_id", "comment": "The ID of the customer who will be billed."}, "description": {"type": "text", "index": 20, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users. Referenced as \u2018memo\u2019 in the Dashboard."}, "due_date": {"type": "timestamp without time zone", "index": 21, "name": "due_date", "comment": "The date on which payment for this invoice is due. This value will be null for invoices where collection_method=charge_automatically."}, "metadata": {"type": "text", "index": 22, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "number": {"type": "bigint", "index": 23, "name": "number", "comment": "A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer\u2019s unique invoice_prefix if it is specified."}, "is_paid": {"type": "boolean", "index": 24, "name": "is_paid", "comment": "Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer\u2019s account balance."}, "receipt_number": {"type": "integer", "index": 25, "name": "receipt_number", "comment": "This is the transaction number that appears on email receipts sent for this invoice."}, "status": {"type": "text", "index": 26, "name": "status", "comment": "Status of the invoice."}, "period_start": {"type": "timestamp without time zone", "index": 27, "name": "period_start", "comment": "Start of the usage period during for which the invoice was created."}, "period_end": {"type": "timestamp without time zone", "index": 28, "name": "period_end", "comment": "End of the usage period during for which the invoice was created."}, "status_transitions_finalized_at": {"type": "timestamp without time zone", "index": 29, "name": "status_transitions_finalized_at", "comment": "The time that the invoice draft was finalized."}, "status_transitions_marked_uncollectible_at": {"type": "timestamp without time zone", "index": 30, "name": "status_transitions_marked_uncollectible_at", "comment": "The time that the invoice was marked uncollectible."}, "status_transitions_paid_at": {"type": "timestamp without time zone", "index": 31, "name": "status_transitions_paid_at", "comment": "The time that the invoice was paid."}, "status_transitions_voided_at": {"type": "timestamp without time zone", "index": 32, "name": "status_transitions_voided_at", "comment": "The time that the invoice was voided."}, "source_relation": {"type": "text", "index": 33, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__invoice"}, "model.stripe.stg_stripe__invoice_line_item": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__invoice_line_item", "database": "postgres", "comment": "The different items that an invoice contains", "owner": "postgres"}, "columns": {"invoice_line_item_id": {"type": "text", "index": 1, "name": "invoice_line_item_id", "comment": "Unique identifier for the object. Note that the same line item can be shown across different invoices, so this value can appear multiple times."}, "invoice_id": {"type": "character varying(500)", "index": 2, "name": "invoice_id", "comment": "The ID of the invoice this item is a part of"}, "invoice_item_id": {"type": "text", "index": 3, "name": "invoice_item_id", "comment": "The ID of the invoice item this item is a part of"}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": "The amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "description": {"type": "text", "index": 6, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "is_discountable": {"type": "boolean", "index": 7, "name": "is_discountable", "comment": "If true, discounts will apply to this line item. Always false for prorations."}, "plan_id": {"type": "text", "index": 8, "name": "plan_id", "comment": "The ID of the plan of the subscription, if the line item is a subscription or a proration."}, "price_id": {"type": "text", "index": 9, "name": "price_id", "comment": "ID of the price object this item pertains to"}, "proration": {"type": "boolean", "index": 10, "name": "proration", "comment": "Whether this is a proration."}, "quantity": {"type": "integer", "index": 11, "name": "quantity", "comment": "The quantity of the subscription, if the line item is a subscription or a proration."}, "subscription_id": {"type": "text", "index": 12, "name": "subscription_id", "comment": "The ID of the subscription that the invoice item pertains to, if any."}, "subscription_item_id": {"type": "text", "index": 13, "name": "subscription_item_id", "comment": "The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription."}, "type": {"type": "integer", "index": 14, "name": "type", "comment": "A string identifying the type of the source of this line item, either an invoice item or a subscription."}, "unique_invoice_line_item_id": {"type": "text", "index": 15, "name": "unique_invoice_line_item_id", "comment": "A unique id generated and only for old invoice line item ID's from a past version of the API. The introduction of this field resolves the pagination break issue for invoice line items, which was introduced by the [Stripe API update](https://stripe.com/docs/upgrades#2019-12-03)."}, "period_start": {"type": "timestamp without time zone", "index": 16, "name": "period_start", "comment": "Start of the usage period during which invoice items were added to this invoice."}, "period_end": {"type": "timestamp without time zone", "index": 17, "name": "period_end", "comment": "End of the usage period during which invoice items were added to this invoice."}, "source_relation": {"type": "text", "index": 18, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__invoice_line_item"}, "model.stripe.stg_stripe__invoice_line_item_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__invoice_line_item_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 2, "name": "invoice_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "description": {"type": "text", "index": 6, "name": "description", "comment": null}, "discountable": {"type": "boolean", "index": 7, "name": "discountable", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "period_end": {"type": "timestamp without time zone", "index": 9, "name": "period_end", "comment": null}, "period_start": {"type": "timestamp without time zone", "index": 10, "name": "period_start", "comment": null}, "plan_id": {"type": "text", "index": 11, "name": "plan_id", "comment": null}, "proration": {"type": "boolean", "index": 12, "name": "proration", "comment": null}, "quantity": {"type": "integer", "index": 13, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 14, "name": "subscription_id", "comment": null}, "subscription_item_id": {"type": "text", "index": 15, "name": "subscription_item_id", "comment": null}, "type": {"type": "integer", "index": 16, "name": "type", "comment": null}, "unique_id": {"type": "text", "index": 17, "name": "unique_id", "comment": null}, "metadata": {"type": "text", "index": 18, "name": "metadata", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 19, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__invoice_line_item_tmp"}, "model.stripe.stg_stripe__invoice_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__invoice_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 5, "name": "customer_id", "comment": null}, "due_date": {"type": "timestamp without time zone", "index": 6, "name": "due_date", "comment": null}, "description": {"type": "text", "index": 7, "name": "description", "comment": null}, "discountable": {"type": "boolean", "index": 8, "name": "discountable", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 9, "name": "invoice_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 10, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 11, "name": "livemode", "comment": null}, "period_end": {"type": "timestamp without time zone", "index": 12, "name": "period_end", "comment": null}, "period_start": {"type": "timestamp without time zone", "index": 13, "name": "period_start", "comment": null}, "proration": {"type": "boolean", "index": 14, "name": "proration", "comment": null}, "quantity": {"type": "integer", "index": 15, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 16, "name": "subscription_id", "comment": null}, "subscription_item_id": {"type": "text", "index": 17, "name": "subscription_item_id", "comment": null}, "unit_amount": {"type": "integer", "index": 18, "name": "unit_amount", "comment": null}, "default_payment_method_id": {"type": "text", "index": 19, "name": "default_payment_method_id", "comment": null}, "amount_due": {"type": "bigint", "index": 20, "name": "amount_due", "comment": null}, "amount_paid": {"type": "bigint", "index": 21, "name": "amount_paid", "comment": null}, "amount_remaining": {"type": "bigint", "index": 22, "name": "amount_remaining", "comment": null}, "post_payment_credit_notes_amount": {"type": "bigint", "index": 23, "name": "post_payment_credit_notes_amount", "comment": null}, "pre_payment_credit_notes_amount": {"type": "bigint", "index": 24, "name": "pre_payment_credit_notes_amount", "comment": null}, "subtotal": {"type": "bigint", "index": 25, "name": "subtotal", "comment": null}, "tax": {"type": "bigint", "index": 26, "name": "tax", "comment": null}, "total": {"type": "bigint", "index": 27, "name": "total", "comment": null}, "attempt_count": {"type": "bigint", "index": 28, "name": "attempt_count", "comment": null}, "auto_advance": {"type": "boolean", "index": 29, "name": "auto_advance", "comment": null}, "billing_reason": {"type": "text", "index": 30, "name": "billing_reason", "comment": null}, "metadata": {"type": "text", "index": 31, "name": "metadata", "comment": null}, "number": {"type": "bigint", "index": 32, "name": "number", "comment": null}, "paid": {"type": "boolean", "index": 33, "name": "paid", "comment": null}, "receipt_number": {"type": "integer", "index": 34, "name": "receipt_number", "comment": null}, "status": {"type": "text", "index": 35, "name": "status", "comment": null}, "source_relation": {"type": "integer", "index": 36, "name": "source_relation", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 37, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__invoice_tmp"}, "model.stripe.stg_stripe__payment_intent": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__payment_intent", "database": "postgres", "comment": "A Payment Intent guides you through the process of collecting a payment from your customer.", "owner": "postgres"}, "columns": {"payment_intent_id": {"type": "text", "index": 1, "name": "payment_intent_id", "comment": "Unique identifier for the object."}, "amount": {"type": "integer", "index": 2, "name": "amount", "comment": "Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the major currency unit. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "amount_capturable": {"type": "integer", "index": 3, "name": "amount_capturable", "comment": "Amount that can be captured from this PaymentIntent. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "amount_received": {"type": "integer", "index": 4, "name": "amount_received", "comment": "Amount that was collected by this PaymentIntent. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "application_fee_amount": {"type": "integer", "index": 5, "name": "application_fee_amount", "comment": "The amount of the application fee (if any) for the resulting payment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "application": {"type": "text", "index": 6, "name": "application", "comment": "ID of the Connect application that created the PaymentIntent."}, "canceled_at": {"type": "timestamp without time zone", "index": 7, "name": "canceled_at", "comment": "Populated when status is canceled, this is the time at which the PaymentIntent was canceled."}, "cancellation_reason": {"type": "integer", "index": 8, "name": "cancellation_reason", "comment": "Reason for cancellation of this PaymentIntent, either user-provided (duplicate, fraudulent, requested_by_customer, or abandoned) or generated by Stripe internally (failed_invoice, void_invoice, or automatic)."}, "capture_method": {"type": "text", "index": 9, "name": "capture_method", "comment": "Controls when the funds will be captured from the customer\u2019s account."}, "confirmation_method": {"type": "text", "index": 10, "name": "confirmation_method", "comment": "Whether confirmed automatically or manually"}, "created_at": {"type": "timestamp without time zone", "index": 11, "name": "created_at", "comment": "Time at which the object was created."}, "currency": {"type": "text", "index": 12, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "customer_id": {"type": "text", "index": 13, "name": "customer_id", "comment": "ID of the Customer this PaymentIntent belongs to, if one exists."}, "description": {"type": "text", "index": 14, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "metadata": {"type": "text", "index": 15, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "payment_method_id": {"type": "text", "index": 16, "name": "payment_method_id", "comment": "ID of the payment method used in this PaymentIntent."}, "receipt_email": {"type": "text", "index": 17, "name": "receipt_email", "comment": "Email address that the receipt for the resulting payment will be sent to."}, "statement_descriptor": {"type": "integer", "index": 18, "name": "statement_descriptor", "comment": "For non-card charges, you can use this value as the complete description that appears on your customers\u2019 statements."}, "status": {"type": "text", "index": 19, "name": "status", "comment": "Status of this PaymentIntent, one of requires_payment_method, requires_confirmation, requires_action, processing, requires_capture, canceled, or succeeded."}, "source_relation": {"type": "text", "index": 20, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payment_intent"}, "model.stripe.stg_stripe__payment_intent_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__payment_intent_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "amount_capturable": {"type": "integer", "index": 4, "name": "amount_capturable", "comment": null}, "amount_received": {"type": "integer", "index": 5, "name": "amount_received", "comment": null}, "application": {"type": "text", "index": 6, "name": "application", "comment": null}, "application_fee_amount": {"type": "integer", "index": 7, "name": "application_fee_amount", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 8, "name": "canceled_at", "comment": null}, "cancellation_reason": {"type": "integer", "index": 9, "name": "cancellation_reason", "comment": null}, "capture_method": {"type": "text", "index": 10, "name": "capture_method", "comment": null}, "confirmation_method": {"type": "text", "index": 11, "name": "confirmation_method", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "text", "index": 13, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "description": {"type": "text", "index": 15, "name": "description", "comment": null}, "last_payment_error_charge_id": {"type": "integer", "index": 16, "name": "last_payment_error_charge_id", "comment": null}, "last_payment_error_code": {"type": "integer", "index": 17, "name": "last_payment_error_code", "comment": null}, "last_payment_error_decline_code": {"type": "integer", "index": 18, "name": "last_payment_error_decline_code", "comment": null}, "last_payment_error_doc_url": {"type": "integer", "index": 19, "name": "last_payment_error_doc_url", "comment": null}, "last_payment_error_message": {"type": "integer", "index": 20, "name": "last_payment_error_message", "comment": null}, "last_payment_error_param": {"type": "integer", "index": 21, "name": "last_payment_error_param", "comment": null}, "last_payment_error_source_id": {"type": "integer", "index": 22, "name": "last_payment_error_source_id", "comment": null}, "last_payment_error_type": {"type": "integer", "index": 23, "name": "last_payment_error_type", "comment": null}, "livemode": {"type": "boolean", "index": 24, "name": "livemode", "comment": null}, "on_behalf_of": {"type": "integer", "index": 25, "name": "on_behalf_of", "comment": null}, "payment_method_id": {"type": "text", "index": 26, "name": "payment_method_id", "comment": null}, "receipt_email": {"type": "text", "index": 27, "name": "receipt_email", "comment": null}, "source_id": {"type": "integer", "index": 28, "name": "source_id", "comment": null}, "statement_descriptor": {"type": "integer", "index": 29, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 30, "name": "status", "comment": null}, "transfer_data_destination": {"type": "integer", "index": 31, "name": "transfer_data_destination", "comment": null}, "transfer_group": {"type": "integer", "index": 32, "name": "transfer_group", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 33, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payment_intent_tmp"}, "model.stripe.stg_stripe__payment_method": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method", "database": "postgres", "comment": "PaymentMethod objects represent your customer's payment instruments. They can be used with PaymentIntents to collect payments or saved to Customer objects to store instrument details for future payments.", "owner": "postgres"}, "columns": {"payment_method_id": {"type": "text", "index": 1, "name": "payment_method_id", "comment": "Unique identifier for the object."}, "created_at": {"type": "timestamp without time zone", "index": 2, "name": "created_at", "comment": "Time at which the object was created."}, "customer_id": {"type": "text", "index": 3, "name": "customer_id", "comment": "The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer."}, "metadata": {"type": "text", "index": 4, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "type": {"type": "text", "index": 5, "name": "type", "comment": "The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type."}, "source_relation": {"type": "text", "index": 6, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payment_method"}, "model.stripe.stg_stripe__payment_method_card": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method_card", "database": "postgres", "comment": "Table with the relationships between a payment method and a card", "owner": "postgres"}, "columns": {"payment_method_id": {"type": "text", "index": 1, "name": "payment_method_id", "comment": "ID of the payment method"}, "brand": {"type": "text", "index": 2, "name": "brand", "comment": "Card brand. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown."}, "funding": {"type": "text", "index": 3, "name": "funding", "comment": "Card funding type. Can be credit, debit, prepaid, or unknown."}, "charge_id": {"type": "integer", "index": 4, "name": "charge_id", "comment": "ID of the charge that this card belongs to."}, "type": {"type": "integer", "index": 5, "name": "type", "comment": "The type of the payment method."}, "wallet_type": {"type": "integer", "index": 6, "name": "wallet_type", "comment": "The type of the card wallet, one of amex_express_checkout, apple_pay, google_pay, masterpass, samsung_pay, or visa_checkout. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type."}, "three_d_secure_authentication_flow": {"type": "text", "index": 7, "name": "three_d_secure_authentication_flow", "comment": "For authenticated transactions, how the customer was authenticated by the issuing bank."}, "three_d_secure_result": {"type": "text", "index": 8, "name": "three_d_secure_result", "comment": "Indicates the outcome of 3D Secure authentication."}, "three_d_secure_result_reason": {"type": "text", "index": 9, "name": "three_d_secure_result_reason", "comment": "Additional information about why 3D Secure succeeded or failed based on the result."}, "three_d_secure_version": {"type": "text", "index": 10, "name": "three_d_secure_version", "comment": "The version of 3D Secure that was used."}, "source_relation": {"type": "text", "index": 11, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payment_method_card"}, "model.stripe.stg_stripe__payment_method_card_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method_card_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"payment_method_id": {"type": "text", "index": 1, "name": "payment_method_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "brand": {"type": "text", "index": 3, "name": "brand", "comment": null}, "charge_id": {"type": "integer", "index": 4, "name": "charge_id", "comment": null}, "description": {"type": "integer", "index": 5, "name": "description", "comment": null}, "fingerprint": {"type": "text", "index": 6, "name": "fingerprint", "comment": null}, "funding": {"type": "text", "index": 7, "name": "funding", "comment": null}, "type": {"type": "integer", "index": 8, "name": "type", "comment": null}, "wallet_type": {"type": "integer", "index": 9, "name": "wallet_type", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 10, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payment_method_card_tmp"}, "model.stripe.stg_stripe__payment_method_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "billing_detail_address_city": {"type": "integer", "index": 3, "name": "billing_detail_address_city", "comment": null}, "billing_detail_address_country": {"type": "integer", "index": 4, "name": "billing_detail_address_country", "comment": null}, "billing_detail_address_line_1": {"type": "integer", "index": 5, "name": "billing_detail_address_line_1", "comment": null}, "billing_detail_address_line_2": {"type": "integer", "index": 6, "name": "billing_detail_address_line_2", "comment": null}, "billing_detail_address_postal_code": {"type": "text", "index": 7, "name": "billing_detail_address_postal_code", "comment": null}, "billing_detail_address_state": {"type": "integer", "index": 8, "name": "billing_detail_address_state", "comment": null}, "billing_detail_email": {"type": "text", "index": 9, "name": "billing_detail_email", "comment": null}, "billing_detail_name": {"type": "text", "index": 10, "name": "billing_detail_name", "comment": null}, "billing_detail_phone": {"type": "integer", "index": 11, "name": "billing_detail_phone", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "customer_id": {"type": "text", "index": 13, "name": "customer_id", "comment": null}, "livemode": {"type": "boolean", "index": 14, "name": "livemode", "comment": null}, "type": {"type": "text", "index": 15, "name": "type", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 16, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payment_method_tmp"}, "model.stripe.stg_stripe__payout": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__payout", "database": "postgres", "comment": "A Payout object is created when you receive funds from Stripe, or when you initiate a payout to either a bank account or debit card of a connected Stripe account.", "owner": "postgres"}, "columns": {"payout_id": {"type": "text", "index": 1, "name": "payout_id", "comment": "Unique identifier for the object."}, "amount": {"type": "integer", "index": 2, "name": "amount", "comment": "Amount (in currency units) to be transferred to your bank account or debit card. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "arrival_date_at": {"type": "timestamp without time zone", "index": 3, "name": "arrival_date_at", "comment": "Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays."}, "is_automatic": {"type": "boolean", "index": 4, "name": "is_automatic", "comment": "true if the payout was created by an automated payout schedule, and false if it was requested manually."}, "balance_transaction_id": {"type": "text", "index": 5, "name": "balance_transaction_id", "comment": "ID of the latest balance transaction linked to this payout, describing its impact on your account balance. The payout to balance_transaction relationship is 1:many.\n"}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": "Time at which the object was created."}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "description": {"type": "text", "index": 8, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "destination_bank_account_id": {"type": "character varying(500)", "index": 9, "name": "destination_bank_account_id", "comment": "ID of the bank account the payout was sent to."}, "destination_card_id": {"type": "character varying(500)", "index": 10, "name": "destination_card_id", "comment": "ID of the card the payout was sent to."}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "method": {"type": "text", "index": 12, "name": "method", "comment": "The method used to send this payout, which can be standard or instant."}, "source_type": {"type": "text", "index": 13, "name": "source_type", "comment": "The source balance this payout came from. One of card, fpx, or bank_account."}, "status": {"type": "text", "index": 14, "name": "status", "comment": "Current status of the payout. Can be paid, pending, in_transit, canceled or failed."}, "type": {"type": "text", "index": 15, "name": "type", "comment": "Can be bank_account or card."}, "source_relation": {"type": "text", "index": 16, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payout"}, "model.stripe.stg_stripe__payout_balance_transaction": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__payout_balance_transaction", "database": "postgres", "comment": "Table that contains the complete mapping between `payout_id` and `balance_transaction_id`. The payout to balance_transaction relationship is 1:many.\n", "owner": "postgres"}, "columns": {"payout_id": {"type": "text", "index": 1, "name": "payout_id", "comment": "Unique identifier for the payout."}, "balance_transaction_id": {"type": "text", "index": 2, "name": "balance_transaction_id", "comment": "Unique identifier for the balance transaction."}, "source_relation": {"type": "text", "index": 3, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payout_balance_transaction"}, "model.stripe.stg_stripe__payout_balance_transaction_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__payout_balance_transaction_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"payout_id": {"type": "text", "index": 1, "name": "payout_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "balance_transaction_id": {"type": "text", "index": 3, "name": "balance_transaction_id", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 4, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payout_balance_transaction_tmp"}, "model.stripe.stg_stripe__payout_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__payout_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "arrival_date": {"type": "timestamp without time zone", "index": 4, "name": "arrival_date", "comment": null}, "automatic": {"type": "boolean", "index": 5, "name": "automatic", "comment": null}, "balance_transaction_id": {"type": "text", "index": 6, "name": "balance_transaction_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 7, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 8, "name": "created", "comment": null}, "currency": {"type": "text", "index": 9, "name": "currency", "comment": null}, "description": {"type": "text", "index": 10, "name": "description", "comment": null}, "destination_bank_account_id": {"type": "character varying(500)", "index": 11, "name": "destination_bank_account_id", "comment": null}, "destination_card_id": {"type": "character varying(500)", "index": 12, "name": "destination_card_id", "comment": null}, "failure_balance_transaction_id": {"type": "integer", "index": 13, "name": "failure_balance_transaction_id", "comment": null}, "failure_code": {"type": "integer", "index": 14, "name": "failure_code", "comment": null}, "failure_message": {"type": "integer", "index": 15, "name": "failure_message", "comment": null}, "livemode": {"type": "boolean", "index": 16, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 17, "name": "metadata", "comment": null}, "method": {"type": "text", "index": 18, "name": "method", "comment": null}, "source_type": {"type": "text", "index": 19, "name": "source_type", "comment": null}, "statement_descriptor": {"type": "integer", "index": 20, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 21, "name": "status", "comment": null}, "type": {"type": "text", "index": 22, "name": "type", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 23, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payout_tmp"}, "model.stripe.stg_stripe__price_plan": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__price_plan", "database": "postgres", "comment": "This model defines the base price, currency, and billing cycle for recurring purchases of products. Please note that the Prices API replaced the Plans API in Stripe, so if you have migrated and choose to use the Price object then these columns come from the Price object. Otherwise, these will come from the Plan object. For how to configure, refer to the README.", "owner": "postgres"}, "columns": {"price_plan_id": {"type": "text", "index": 1, "name": "price_plan_id", "comment": "The ID of the record. If you have opted to use the Prices API, this will be the ID from the price object. If you opted not to, this will be the ID from the plan object."}, "is_active": {"type": "boolean", "index": 2, "name": "is_active", "comment": "Whether the plan can be used for new purchases."}, "unit_amount": {"type": "integer", "index": 3, "name": "unit_amount", "comment": "The unit amount in currency units to be charged, represented as a whole integer if possible. In the Plan source table as Amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "recurring_interval": {"type": "text", "index": 5, "name": "recurring_interval", "comment": "The frequency at which a subscription is billed. One of day, week, month or year. In the Plan table as Interval."}, "recurring_interval_count": {"type": "integer", "index": 6, "name": "recurring_interval_count", "comment": "The number of intervals between subscription billings. For example, interval_count=3 bills every 3 months. In the plan source table as interval_count."}, "recurring_usage_type": {"type": "character varying(100)", "index": 7, "name": "recurring_usage_type", "comment": "Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed. In the Plan object as usage_type."}, "recurring_aggregate_usage": {"type": "character varying(100)", "index": 8, "name": "recurring_aggregate_usage", "comment": "Specifies a usage aggregation strategy for prices of usage_type=metered. Allowed values are sum for summing up all usage during a period, last_during_period for using the last usage record reported within a period, last_ever for using the last usage record ever (across period bounds) or max which uses the usage record with the maximum reported usage during a period. Defaults to sum. In the plan source table as aggregate_usage."}, "metadata": {"type": "text", "index": 9, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "nickname": {"type": "text", "index": 10, "name": "nickname", "comment": "A brief description of the plan, hidden from customers."}, "product_id": {"type": "text", "index": 11, "name": "product_id", "comment": "The id of the product whose pricing this plan determines."}, "billing_scheme": {"type": "text", "index": 12, "name": "billing_scheme", "comment": "Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in unit_amount or unit_amount_decimal) will be charged per unit in quantity (for prices with usage_type=licensed), or per unit of total usage (for prices with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes."}, "created_at": {"type": "timestamp without time zone", "index": 13, "name": "created_at", "comment": "Time at which the object was created. Measured in seconds since the Unix epoch."}, "is_deleted": {"type": "boolean", "index": 14, "name": "is_deleted", "comment": "Whether record has been deleted."}, "source_relation": {"type": "text", "index": 15, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__price_plan"}, "model.stripe.stg_stripe__price_plan_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__price_plan_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "billing_scheme": {"type": "text", "index": 4, "name": "billing_scheme", "comment": null}, "created": {"type": "timestamp without time zone", "index": 5, "name": "created", "comment": null}, "currency": {"type": "text", "index": 6, "name": "currency", "comment": null}, "invoice_item_id": {"type": "text", "index": 7, "name": "invoice_item_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 8, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 9, "name": "livemode", "comment": null}, "lookup_key": {"type": "integer", "index": 10, "name": "lookup_key", "comment": null}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": null}, "nickname": {"type": "text", "index": 12, "name": "nickname", "comment": null}, "product_id": {"type": "text", "index": 13, "name": "product_id", "comment": null}, "recurring_aggregate_usage": {"type": "character varying(100)", "index": 14, "name": "recurring_aggregate_usage", "comment": null}, "recurring_interval": {"type": "character varying(100)", "index": 15, "name": "recurring_interval", "comment": null}, "recurring_interval_count": {"type": "bigint", "index": 16, "name": "recurring_interval_count", "comment": null}, "recurring_usage_type": {"type": "character varying(100)", "index": 17, "name": "recurring_usage_type", "comment": null}, "tiers_mode": {"type": "integer", "index": 18, "name": "tiers_mode", "comment": null}, "transform_quantity_divide_by": {"type": "integer", "index": 19, "name": "transform_quantity_divide_by", "comment": null}, "transform_quantity_round": {"type": "integer", "index": 20, "name": "transform_quantity_round", "comment": null}, "type": {"type": "text", "index": 21, "name": "type", "comment": null}, "unit_amount": {"type": "integer", "index": 22, "name": "unit_amount", "comment": null}, "unit_amount_decimal": {"type": "integer", "index": 23, "name": "unit_amount_decimal", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 24, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__price_plan_tmp"}, "model.stripe.stg_stripe__product": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__product", "database": "postgres", "comment": "Properties belonging to a Stripe product.", "owner": "postgres"}, "columns": {"product_id": {"type": "text", "index": 1, "name": "product_id", "comment": "Unique identifier for the object."}, "is_active": {"type": "boolean", "index": 2, "name": "is_active", "comment": "Whether the product is currently available for purchase."}, "attributes": {"type": "text", "index": 3, "name": "attributes", "comment": "Key-value pairs that can be attached to a product object, useful for storing additional structured information."}, "caption": {"type": "text", "index": 4, "name": "caption", "comment": "A brief explanation or description of the product for display purposes."}, "created_at": {"type": "timestamp without time zone", "index": 5, "name": "created_at", "comment": "Timestamp indicating when the product was created."}, "deactivate_at": {"type": "timestamp without time zone", "index": 6, "name": "deactivate_at", "comment": "List of dates when the product will be deactivated."}, "description": {"type": "text", "index": 7, "name": "description", "comment": "The product\u2019s description, meant to be displayable to the customer."}, "images": {"type": "text", "index": 8, "name": "images", "comment": "A list of up to 8 URLs of images for this product, meant to be displayable to the customer."}, "is_deleted": {"type": "boolean", "index": 9, "name": "is_deleted", "comment": "Indicates whether the product has been deleted."}, "name": {"type": "text", "index": 10, "name": "name", "comment": "The product\u2019s name, meant to be displayable to the customer."}, "shippable": {"type": "boolean", "index": 11, "name": "shippable", "comment": "Whether this product is shipped (i.e., physical goods)."}, "statement_descriptor": {"type": "integer", "index": 12, "name": "statement_descriptor", "comment": "Extra information about a product which will appear on your customer\u2019s credit card statement."}, "type": {"type": "text", "index": 13, "name": "type", "comment": "The type of the product (e.g., good, service)."}, "unit_label": {"type": "integer", "index": 14, "name": "unit_label", "comment": "A label that represents units of this product, included in receipts and invoices."}, "updated": {"type": "text", "index": 15, "name": "updated", "comment": "Time at which the object was last updated, measured in seconds since the Unix epoch."}, "url": {"type": "text", "index": 16, "name": "url", "comment": "A URL of a publicly-accessible webpage for this product."}, "source_relation": {"type": "text", "index": 17, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__product"}, "model.stripe.stg_stripe__product_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__product_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "caption": {"type": "text", "index": 4, "name": "caption", "comment": null}, "created": {"type": "timestamp without time zone", "index": 5, "name": "created", "comment": null}, "description": {"type": "text", "index": 6, "name": "description", "comment": null}, "is_deleted": {"type": "boolean", "index": 7, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 9, "name": "metadata", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "package_dimensions_height": {"type": "integer", "index": 11, "name": "package_dimensions_height", "comment": null}, "package_dimensions_length": {"type": "integer", "index": 12, "name": "package_dimensions_length", "comment": null}, "package_dimensions_weight": {"type": "integer", "index": 13, "name": "package_dimensions_weight", "comment": null}, "package_dimensions_width": {"type": "integer", "index": 14, "name": "package_dimensions_width", "comment": null}, "shippable": {"type": "boolean", "index": 15, "name": "shippable", "comment": null}, "statement_descriptor": {"type": "integer", "index": 16, "name": "statement_descriptor", "comment": null}, "type": {"type": "text", "index": 17, "name": "type", "comment": null}, "unit_label": {"type": "integer", "index": 18, "name": "unit_label", "comment": null}, "updated": {"type": "text", "index": 19, "name": "updated", "comment": null}, "url": {"type": "text", "index": 20, "name": "url", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 21, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__product_tmp"}, "model.stripe.stg_stripe__refund": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__refund", "database": "postgres", "comment": "Details of transactions that have been refunded", "owner": "postgres"}, "columns": {"refund_id": {"type": "text", "index": 1, "name": "refund_id", "comment": "Unique identifier for the object."}, "payment_intent_id": {"type": "text", "index": 2, "name": "payment_intent_id", "comment": "ID of the payment intent associated with this refund."}, "balance_transaction_id": {"type": "text", "index": 3, "name": "balance_transaction_id", "comment": "ID for the balance transaction that describes the impact on your account balance."}, "charge_id": {"type": "text", "index": 4, "name": "charge_id", "comment": "ID of the charge that was refunded."}, "amount": {"type": "integer", "index": 5, "name": "amount", "comment": "Amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": "Time at which the object was created."}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "description": {"type": "integer", "index": 8, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users. (Available on non-card refunds only)"}, "metadata": {"type": "text", "index": 9, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "reason": {"type": "text", "index": 10, "name": "reason", "comment": "Reason for the refund, either user-provided (duplicate, fraudulent, or requested_by_customer) or generated by Stripe internally (expired_uncaptured_charge)."}, "receipt_number": {"type": "text", "index": 11, "name": "receipt_number", "comment": "This is the transaction number that appears on email receipts sent for this refund."}, "status": {"type": "text", "index": 12, "name": "status", "comment": "Status of the refund. For credit card refunds, this can be pending, succeeded, or failed. For other types of refunds, it can be pending, succeeded, failed, or canceled."}, "source_relation": {"type": "text", "index": 13, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__refund"}, "model.stripe.stg_stripe__refund_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__refund_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "balance_transaction_id": {"type": "text", "index": 4, "name": "balance_transaction_id", "comment": null}, "charge_id": {"type": "text", "index": 5, "name": "charge_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "integer", "index": 8, "name": "description", "comment": null}, "failure_balance_transaction_id": {"type": "integer", "index": 9, "name": "failure_balance_transaction_id", "comment": null}, "failure_reason": {"type": "integer", "index": 10, "name": "failure_reason", "comment": null}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": null}, "reason": {"type": "text", "index": 12, "name": "reason", "comment": null}, "receipt_number": {"type": "text", "index": 13, "name": "receipt_number", "comment": null}, "status": {"type": "text", "index": 14, "name": "status", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 15, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__refund_tmp"}, "model.stripe.stg_stripe__subscription": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__subscription", "database": "postgres", "comment": "Subscriptions allow you to charge a customer on a recurring basis. Please note that the more recent `subscription_history` table replaced the `subscription` table, so the source used in this model depends on which one you have.", "owner": "postgres"}, "columns": {"subscription_id": {"type": "text", "index": 1, "name": "subscription_id", "comment": "Unique identifier for the object."}, "latest_invoice_id": {"type": "text", "index": 2, "name": "latest_invoice_id", "comment": "ID of the latest invoice for this subscription."}, "customer_id": {"type": "text", "index": 3, "name": "customer_id", "comment": "ID of customer this subscription belongs to."}, "default_payment_method_id": {"type": "text", "index": 4, "name": "default_payment_method_id", "comment": "ID of the default payment method for this subscription."}, "pending_setup_intent_id": {"type": "text", "index": 5, "name": "pending_setup_intent_id", "comment": "ID of the payment setup intent for this subscription."}, "status": {"type": "text", "index": 6, "name": "status", "comment": "Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid."}, "billing": {"type": "text", "index": 7, "name": "billing", "comment": "How the invoice is billed"}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 8, "name": "billing_cycle_anchor", "comment": "Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices."}, "cancel_at": {"type": "timestamp without time zone", "index": 9, "name": "cancel_at", "comment": "A date in the future at which the subscription will automatically get canceled"}, "is_cancel_at_period_end": {"type": "boolean", "index": 10, "name": "is_cancel_at_period_end", "comment": "Boolean indicating whether this subscription should cancel at the end of the current period."}, "canceled_at": {"type": "timestamp without time zone", "index": 11, "name": "canceled_at", "comment": "If the subscription has been canceled, the date of that cancellation."}, "created_at": {"type": "timestamp without time zone", "index": 12, "name": "created_at", "comment": "Time at which the object was created."}, "current_period_start": {"type": "timestamp without time zone", "index": 13, "name": "current_period_start", "comment": "Start of the current period that the subscription has been invoiced for."}, "current_period_end": {"type": "timestamp without time zone", "index": 14, "name": "current_period_end", "comment": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created."}, "days_until_due": {"type": "integer", "index": 15, "name": "days_until_due", "comment": "Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically."}, "metadata": {"type": "text", "index": 16, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "start_date_at": {"type": "timestamp without time zone", "index": 17, "name": "start_date_at", "comment": "Date when the subscription was first created. The date might differ from the created date due to backdating."}, "ended_at": {"type": "timestamp without time zone", "index": 18, "name": "ended_at", "comment": "If the subscription has ended, the date the subscription ended."}, "pause_collection_behavior": {"type": "text", "index": 19, "name": "pause_collection_behavior", "comment": "The payment collection behavior for this subscription while paused. One of \"keep_as_draft\", \"mark_uncollectible\", or \"void\"."}, "pause_collection_resumes_at": {"type": "timestamp without time zone", "index": 20, "name": "pause_collection_resumes_at", "comment": "The time after which the subscription will resume collecting payments."}, "source_relation": {"type": "text", "index": 21, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__subscription"}, "model.stripe.stg_stripe__subscription_discount": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_discount", "database": "postgres", "comment": "Properties belonging to a Stripe subscription discount.", "owner": "postgres"}, "columns": {"subscription_discount_id": {"type": "text", "index": 1, "name": "subscription_discount_id", "comment": "The ID of the subscription discount object."}, "checkout_session_id": {"type": "integer", "index": 2, "name": "checkout_session_id", "comment": "The Checkout Session that this discount is applied to, if it is applied to a particular session in payment mode."}, "coupon_id": {"type": "text", "index": 3, "name": "coupon_id", "comment": "The ID of the coupon applied to create this discount."}, "customer_id": {"type": "text", "index": 4, "name": "customer_id", "comment": "The ID of the customer associated with this discount."}, "end_at": {"type": "timestamp without time zone", "index": 5, "name": "end_at", "comment": "If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null."}, "invoice_id": {"type": "character varying(500)", "index": 6, "name": "invoice_id", "comment": "The invoice that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice."}, "invoice_item_id": {"type": "integer", "index": 7, "name": "invoice_item_id", "comment": "The invoice item id (or invoice line item id for invoice line items of type=\u2018subscription\u2019) that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."}, "start_at": {"type": "timestamp without time zone", "index": 8, "name": "start_at", "comment": "The date that the coupon was applied."}, "subscription_id": {"type": "text", "index": 9, "name": "subscription_id", "comment": "The subscription that this coupon is applied to, if it is applied to a particular subscription."}, "source_relation": {"type": "text", "index": 10, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__subscription_discount"}, "model.stripe.stg_stripe__subscription_discount_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_discount_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "checkout_session": {"type": "integer", "index": 3, "name": "checkout_session", "comment": null}, "coupon_id": {"type": "text", "index": 4, "name": "coupon_id", "comment": null}, "customer_id": {"type": "text", "index": 5, "name": "customer_id", "comment": null}, "end": {"type": "timestamp without time zone", "index": 6, "name": "end", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 7, "name": "invoice_id", "comment": null}, "invoice_item_id": {"type": "integer", "index": 8, "name": "invoice_item_id", "comment": null}, "start": {"type": "text", "index": 9, "name": "start", "comment": null}, "subscription_id": {"type": "text", "index": 10, "name": "subscription_id", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 11, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__subscription_discount_tmp"}, "model.stripe.stg_stripe__subscription_item": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_item", "database": "postgres", "comment": "Subscription items allow you to create customer subscriptions with more than one plan, making it easy to represent complex billing relationships.", "owner": "postgres"}, "columns": {"subscription_item_id": {"type": "text", "index": 1, "name": "subscription_item_id", "comment": "Unique identifier for the object."}, "plan_id": {"type": "text", "index": 2, "name": "plan_id", "comment": "The ID of the plan associated with this subscription_item."}, "subscription_id": {"type": "text", "index": 3, "name": "subscription_id", "comment": "The ID of the subscription this item belongs to. Join key to the subscription_history table."}, "created_at": {"type": "timestamp without time zone", "index": 4, "name": "created_at", "comment": "Time at which the object was created"}, "current_period_start": {"type": "timestamp without time zone", "index": 5, "name": "current_period_start", "comment": "Start of the current period that the subscription has been invoiced for."}, "current_period_end": {"type": "timestamp without time zone", "index": 6, "name": "current_period_end", "comment": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created."}, "metadata": {"type": "text", "index": 7, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "quantity": {"type": "bigint", "index": 8, "name": "quantity", "comment": "The quantity of the plan to which the customer is subscribed."}, "source_relation": {"type": "text", "index": 9, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__subscription_item"}, "model.stripe.stg_stripe__subscription_item_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_item_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "created": {"type": "timestamp without time zone", "index": 2, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 3, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 4, "name": "current_period_start", "comment": null}, "id": {"type": "text", "index": 5, "name": "id", "comment": null}, "metadata": {"type": "text", "index": 6, "name": "metadata", "comment": null}, "plan_id": {"type": "text", "index": 7, "name": "plan_id", "comment": null}, "quantity": {"type": "bigint", "index": 8, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 9, "name": "subscription_id", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 10, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__subscription_item_tmp"}, "model.stripe.stg_stripe__subscription_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "_fivetran_active": {"type": "boolean", "index": 3, "name": "_fivetran_active", "comment": null}, "application_fee_percent": {"type": "integer", "index": 4, "name": "application_fee_percent", "comment": null}, "billing": {"type": "text", "index": 5, "name": "billing", "comment": null}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 6, "name": "billing_cycle_anchor", "comment": null}, "billing_threshold_amount_gte": {"type": "integer", "index": 7, "name": "billing_threshold_amount_gte", "comment": null}, "billing_threshold_reset_billing_cycle_anchor": {"type": "boolean", "index": 8, "name": "billing_threshold_reset_billing_cycle_anchor", "comment": null}, "cancel_at": {"type": "timestamp without time zone", "index": 9, "name": "cancel_at", "comment": null}, "cancel_at_period_end": {"type": "boolean", "index": 10, "name": "cancel_at_period_end", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 11, "name": "canceled_at", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 13, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 14, "name": "current_period_start", "comment": null}, "customer_id": {"type": "text", "index": 15, "name": "customer_id", "comment": null}, "days_until_due": {"type": "integer", "index": 16, "name": "days_until_due", "comment": null}, "default_source_id": {"type": "text", "index": 17, "name": "default_source_id", "comment": null}, "ended_at": {"type": "timestamp without time zone", "index": 18, "name": "ended_at", "comment": null}, "livemode": {"type": "boolean", "index": 19, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 20, "name": "metadata", "comment": null}, "quantity": {"type": "integer", "index": 21, "name": "quantity", "comment": null}, "start_date": {"type": "timestamp without time zone", "index": 22, "name": "start_date", "comment": null}, "status": {"type": "text", "index": 23, "name": "status", "comment": null}, "tax_percent": {"type": "integer", "index": 24, "name": "tax_percent", "comment": null}, "trial_end": {"type": "timestamp without time zone", "index": 25, "name": "trial_end", "comment": null}, "trial_start": {"type": "timestamp without time zone", "index": 26, "name": "trial_start", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 27, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__subscription_tmp"}, "model.stripe.stg_stripe__transfer": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__transfer", "database": "postgres", "comment": "Properties belonging to a Stripe transfer.", "owner": "postgres"}, "columns": {"transfer_id": {"type": "text", "index": 1, "name": "transfer_id", "comment": "Unique identifier for the object."}, "transfer_amount": {"type": "integer", "index": 2, "name": "transfer_amount", "comment": "Amount in currency units to be transferred. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "transfer_amount_reversed": {"type": "integer", "index": 3, "name": "transfer_amount_reversed", "comment": "Amount in currency units reversed (can be less than the amount attribute on the transfer if a partial reversal was issued). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "balance_transaction_id": {"type": "text", "index": 4, "name": "balance_transaction_id", "comment": "Balance transaction that describes the impact of this transfer on your account balance."}, "transfer_created_at": {"type": "timestamp without time zone", "index": 5, "name": "transfer_created_at", "comment": "Time that this record of the transfer was first created."}, "transfer_currency": {"type": "text", "index": 6, "name": "transfer_currency", "comment": "Three-letter ISO currency code, in lowercase. Must be a supported currency."}, "transfer_description": {"type": "text", "index": 7, "name": "transfer_description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "transfer_destination": {"type": "text", "index": 8, "name": "transfer_destination", "comment": "ID of the Stripe account the transfer was sent to."}, "destination_payment": {"type": "integer", "index": 9, "name": "destination_payment", "comment": "If the destination is a Stripe account, the payment that the destination account received for the transfer."}, "destination_payment_id": {"type": "integer", "index": 10, "name": "destination_payment_id", "comment": "If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer."}, "transfer_metadata": {"type": "text", "index": 11, "name": "transfer_metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "transfer_is_reversed": {"type": "boolean", "index": 12, "name": "transfer_is_reversed", "comment": "Boolean of whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false."}, "source_transaction": {"type": "integer", "index": 13, "name": "source_transaction", "comment": "The source transaction related to this transfer."}, "source_transaction_id": {"type": "integer", "index": 14, "name": "source_transaction_id", "comment": "ID of the charge or payment that was used to fund the transfer. If null, the transfer was funded from the available balance."}, "source_type": {"type": "text", "index": 15, "name": "source_type", "comment": "The source balance this transfer came from. One of card, fpx, or bank_account."}, "transfer_group": {"type": "integer", "index": 16, "name": "transfer_group", "comment": "A string that identifies this transaction as part of a group. See the Connect documentation for details."}, "source_relation": {"type": "text", "index": 17, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__transfer"}, "model.stripe.stg_stripe__transfer_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__transfer_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "amount_reversed": {"type": "integer", "index": 4, "name": "amount_reversed", "comment": null}, "balance_transaction_id": {"type": "text", "index": 5, "name": "balance_transaction_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "destination": {"type": "text", "index": 9, "name": "destination", "comment": null}, "destination_payment": {"type": "integer", "index": 10, "name": "destination_payment", "comment": null}, "destination_payment_id": {"type": "integer", "index": 11, "name": "destination_payment_id", "comment": null}, "livemode": {"type": "boolean", "index": 12, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 13, "name": "metadata", "comment": null}, "reversed": {"type": "boolean", "index": 14, "name": "reversed", "comment": null}, "source_transaction": {"type": "integer", "index": 15, "name": "source_transaction", "comment": null}, "source_transaction_id": {"type": "integer", "index": 16, "name": "source_transaction_id", "comment": null}, "source_type": {"type": "text", "index": 17, "name": "source_type", "comment": null}, "transfer_group": {"type": "integer", "index": 18, "name": "transfer_group", "comment": null}, "_dbt_source_relation": {"type": "text", "index": 19, "name": "_dbt_source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__transfer_tmp"}, "model.stripe.stripe__activity_itemized_2": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__activity_itemized_2", "database": "postgres", "comment": "Modeled after the [titular report](https://stripe.com/docs/reports/activity#downloading-data) from Stripe, each record represents a balance transaction and additional details such as associated customer, charge, refund, fee, and invoice information. This class of Activity reports allows you to see your payments activity alongside the related fees for the same period of time. Designed specifically for users with Interchange Plus (IC+) pricing, it presents users with fees on the date they incur them. This makes it useful for calculating fee accrual entries and understanding your net payments activity. This itemized report contains a full list of individual transactions.", "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": "Unique identifier for the related balance transaction."}, "balance_transaction_created_at": {"type": "timestamp without time zone", "index": 2, "name": "balance_transaction_created_at", "comment": "Time (in UTC) at which the balance transaction affected your Stripe balance."}, "balance_transaction_reporting_category": {"type": "text", "index": 3, "name": "balance_transaction_reporting_category", "comment": "(Beta) Reporting category is a top-level categorization of balance transactions for financial accounting purposes."}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": "Three-letter ISO code for the currency in which the amount is defined."}, "amount": {"type": "integer", "index": 5, "name": "amount", "comment": "Amount of this activity."}, "charge_id": {"type": "text", "index": 6, "name": "charge_id", "comment": "The unique ID of the related charge, if any. For charges, this will be the charge itself; for refunds or disputes, this will be the original charge being refunded or disputed."}, "payment_intent_id": {"type": "text", "index": 7, "name": "payment_intent_id", "comment": "The unique ID of the related Payment Intent, if any."}, "refund_id": {"type": "text", "index": 8, "name": "refund_id", "comment": "The unique ID of the related refund, if any."}, "dispute_ids": {"type": "text", "index": 9, "name": "dispute_ids", "comment": "The unique IDs of the related disputes, if any."}, "invoice_id": {"type": "text", "index": 10, "name": "invoice_id", "comment": "Unique ID for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice."}, "invoice_number": {"type": "bigint", "index": 11, "name": "invoice_number", "comment": "Number for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice."}, "subscription_id": {"type": "text", "index": 12, "name": "subscription_id", "comment": "Unique ID for the subscription associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing subscription."}, "transfer_id": {"type": "text", "index": 13, "name": "transfer_id", "comment": "The unique ID of the related transfer, if any."}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": "The unique ID of the related customer, if any."}, "customer_email": {"type": "integer", "index": 15, "name": "customer_email", "comment": "Email address of the customer, if any, associated with this balance transaction."}, "customer_name": {"type": "text", "index": 16, "name": "customer_name", "comment": "Name of the customer, if any, associated with this balance transaction."}, "customer_description": {"type": "character varying(500)", "index": 17, "name": "customer_description", "comment": "Description provided when creating the customer, often used to store the customer name."}, "customer_shipping_address_line_1": {"type": "integer", "index": 18, "name": "customer_shipping_address_line_1", "comment": "First line of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_line_2": {"type": "integer", "index": 19, "name": "customer_shipping_address_line_2", "comment": "Second line of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_city": {"type": "integer", "index": 20, "name": "customer_shipping_address_city", "comment": "City of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_state": {"type": "integer", "index": 21, "name": "customer_shipping_address_state", "comment": "State of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_postal_code": {"type": "integer", "index": 22, "name": "customer_shipping_address_postal_code", "comment": "Postal code of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_country": {"type": "integer", "index": 23, "name": "customer_shipping_address_country", "comment": "Country of the customer shipping address associated with this charge, if any"}, "customer_address_line_1": {"type": "integer", "index": 24, "name": "customer_address_line_1", "comment": "First line of the customer address associated with this charge, if any"}, "customer_address_line_2": {"type": "integer", "index": 25, "name": "customer_address_line_2", "comment": "Second line of the customer address associated with this charge, if any"}, "customer_address_city": {"type": "integer", "index": 26, "name": "customer_address_city", "comment": "City of the customer address associated with this charge, if any"}, "customer_address_state": {"type": "integer", "index": 27, "name": "customer_address_state", "comment": "State of the customer address associated with this charge, if any"}, "customer_address_postal_code": {"type": "integer", "index": 28, "name": "customer_address_postal_code", "comment": "Postal code of the customer address associated with this charge, if any"}, "customer_address_country": {"type": "integer", "index": 29, "name": "customer_address_country", "comment": "Country of the customer address associated with this charge, if any"}, "shipping_address_line_1": {"type": "integer", "index": 30, "name": "shipping_address_line_1", "comment": "First line of the shipping address associated with this charge, if any"}, "shipping_address_line_2": {"type": "integer", "index": 31, "name": "shipping_address_line_2", "comment": "Second line of the shipping address associated with this charge, if any"}, "shipping_address_city": {"type": "integer", "index": 32, "name": "shipping_address_city", "comment": "City of the shipping address associated with this charge, if any"}, "shipping_address_state": {"type": "integer", "index": 33, "name": "shipping_address_state", "comment": "State of the shipping address associated with this charge, if any"}, "shipping_address_postal_code": {"type": "integer", "index": 34, "name": "shipping_address_postal_code", "comment": "Postal code of the shipping address associated with this charge, if any"}, "shipping_address_country": {"type": "integer", "index": 35, "name": "shipping_address_country", "comment": "Country of the shipping address associated with this charge, if any"}, "card_address_line_1": {"type": "integer", "index": 36, "name": "card_address_line_1", "comment": "First line of the card address associated with this charge, if any"}, "card_address_line_2": {"type": "integer", "index": 37, "name": "card_address_line_2", "comment": "Second line of the card address associated with this charge, if any"}, "card_address_city": {"type": "integer", "index": 38, "name": "card_address_city", "comment": "City of the card address associated with this charge, if any"}, "card_address_state": {"type": "integer", "index": 39, "name": "card_address_state", "comment": "State of the card address associated with this charge, if any"}, "card_address_postal_code": {"type": "integer", "index": 40, "name": "card_address_postal_code", "comment": "Postal code of the card address associated with this charge, if any"}, "card_address_country": {"type": "integer", "index": 41, "name": "card_address_country", "comment": "Country of the card address associated with this charge, if any"}, "automatic_payout_id": {"type": "text", "index": 42, "name": "automatic_payout_id", "comment": "(Applies only to accounts on automatic payouts.) For paid-out activity, this will be the unique ID for the associated payout."}, "automatic_payout_effective_at": {"type": "timestamp without time zone", "index": 43, "name": "automatic_payout_effective_at", "comment": "The date we expect this automatic payout to arrive in your bank account, in UTC. This is also when the paid-out funds are deducted from your Stripe balance."}, "payment_method_type": {"type": "text", "index": 44, "name": "payment_method_type", "comment": "The type of payment method used in the related payment."}, "card_brand": {"type": "text", "index": 45, "name": "card_brand", "comment": "Card brand, if applicable."}, "card_funding": {"type": "text", "index": 46, "name": "card_funding", "comment": "Card funding type, if applicable."}, "card_country": {"type": "text", "index": 47, "name": "card_country", "comment": "Two-letter ISO code representing the country of the card."}, "statement_descriptor": {"type": "integer", "index": 48, "name": "statement_descriptor", "comment": "The dynamic statement descriptor or suffix specified when the related charge was created."}, "customer_facing_amount": {"type": "bigint", "index": 49, "name": "customer_facing_amount", "comment": "For transactions associated with charges, refunds, or disputes, the amount of the original charge, the refund, or the latest dispute. If the customer was charged in a different currency than your account\u2019s default, this field will reflect the amount as seen by the customer."}, "balance_transaction_description": {"type": "text", "index": 50, "name": "balance_transaction_description", "comment": "An arbitrary string attached to the balance transaction."}, "connected_account_id": {"type": "integer", "index": 51, "name": "connected_account_id", "comment": "For Stripe Connect activity related to a connected account, the unique ID for the account."}, "connected_account_country": {"type": "text", "index": 52, "name": "connected_account_country", "comment": "For Stripe Connect activity related to a connected account, the two-letter ISO code representing the country of the account."}, "connected_account_direct_charge_id": {"type": "text", "index": 53, "name": "connected_account_direct_charge_id", "comment": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account."}, "source_relation": {"type": "text", "index": 54, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__activity_itemized_2"}, "model.stripe.stripe__balance_change_from_activity_itemized_3": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__balance_change_from_activity_itemized_3", "database": "postgres", "comment": "Modeled after the [titular report](https://stripe.com/docs/reports/balance#schema-balance-change-from-activity-itemized-3) from Stripe, each record represents a balance transaction and additional details such as associated customer, charge, refund, card, and invoice information. This class of Balance reports is similar to a bank statement, helping you to reconcile your Stripe balance at the end of the month. The Balance report is most useful if you treat Stripe like a bank account for accounting purposes, reconciling the balance at the end of each month. If you have automatic payouts enabled and prefer to reconcile the transactions settled in each payout, see the Payout reconciliation report instead. The Balance Change from Activity reports provides a more detailed breakdown of your transactions by reporting category. This section includes all transactions except for payouts that affect your balance, including charges, refunds, disputes, other adjustments, and fees.", "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": "Unique identifier for the balance transaction."}, "created": {"type": "timestamp without time zone", "index": 2, "name": "created", "comment": "Time at which the balance transaction was created. Dates in the requested timezone, or UTC if not provided."}, "available_on": {"type": "timestamp without time zone", "index": 3, "name": "available_on", "comment": "The date the balance transaction\u2019s net funds will become available in the Stripe balance. Dates in the requested timezone, or UTC if not provided."}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": "Three-letter ISO code for the currency in which gross, fee and net are defined."}, "gross": {"type": "integer", "index": 5, "name": "gross", "comment": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "fee": {"type": "integer", "index": 6, "name": "fee", "comment": "Fees paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "net": {"type": "integer", "index": 7, "name": "net", "comment": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "reporting_category": {"type": "text", "index": 8, "name": "reporting_category", "comment": "Reporting Category is a new categorization of balance transactions, meant to improve on the current type field."}, "source_id": {"type": "text", "index": 9, "name": "source_id", "comment": "The Stripe object to which this transaction is related."}, "description": {"type": "text", "index": 10, "name": "description", "comment": "An arbitrary string attached to the balance transaction. Often useful for displaying to users."}, "customer_facing_amount": {"type": "bigint", "index": 11, "name": "customer_facing_amount", "comment": "For transactions associated with charges, refunds, or disputes, the amount of the original charge, the refund, or the latest dispute. If the customer was charged in a different currency than your account\u2019s default, this field will reflect the amount as seen by the customer."}, "customer_facing_currency": {"type": "text", "index": 12, "name": "customer_facing_currency", "comment": "For transactions associated with charges, refunds, or disputes, the three-letter ISO currency code for customer_facing_amount."}, "automatic_payout_id": {"type": "text", "index": 13, "name": "automatic_payout_id", "comment": "ID of the automatically created payout associated with this balance transaction (only set if your account is on an automatic payout schedule)."}, "automatic_payout_effective_at": {"type": "timestamp without time zone", "index": 14, "name": "automatic_payout_effective_at", "comment": "The date we expect this automatic payout to arrive in your bank account, in the requested timezone, or UTC if not provided. This is also when the paid-out funds are deducted from your Stripe balance."}, "customer_id": {"type": "text", "index": 15, "name": "customer_id", "comment": "The unique ID of the related customer, if any."}, "customer_email": {"type": "integer", "index": 16, "name": "customer_email", "comment": "Email address of the customer, if any, associated with this balance transaction."}, "customer_name": {"type": "text", "index": 17, "name": "customer_name", "comment": "Name of the customer, if any, associated with this balance transaction."}, "customer_description": {"type": "character varying(500)", "index": 18, "name": "customer_description", "comment": "Description provided when creating the customer, often used to store the customer name."}, "customer_shipping_address_line_1": {"type": "integer", "index": 19, "name": "customer_shipping_address_line_1", "comment": "First line of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_line_2": {"type": "integer", "index": 20, "name": "customer_shipping_address_line_2", "comment": "Second line of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_city": {"type": "integer", "index": 21, "name": "customer_shipping_address_city", "comment": "City of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_state": {"type": "integer", "index": 22, "name": "customer_shipping_address_state", "comment": "State of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_postal_code": {"type": "integer", "index": 23, "name": "customer_shipping_address_postal_code", "comment": "Postal code of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_country": {"type": "integer", "index": 24, "name": "customer_shipping_address_country", "comment": "Country of the customer shipping address associated with this charge, if any"}, "customer_address_line_1": {"type": "integer", "index": 25, "name": "customer_address_line_1", "comment": "First line of the customer address associated with this charge, if any"}, "customer_address_line_2": {"type": "integer", "index": 26, "name": "customer_address_line_2", "comment": "Second line of the customer address associated with this charge, if any"}, "customer_address_city": {"type": "integer", "index": 27, "name": "customer_address_city", "comment": "City of the customer address associated with this charge, if any"}, "customer_address_state": {"type": "integer", "index": 28, "name": "customer_address_state", "comment": "State of the customer address associated with this charge, if any"}, "customer_address_postal_code": {"type": "integer", "index": 29, "name": "customer_address_postal_code", "comment": "Postal code of the customer address associated with this charge, if any"}, "customer_address_country": {"type": "integer", "index": 30, "name": "customer_address_country", "comment": "Country of the customer address associated with this charge, if any"}, "shipping_address_line_1": {"type": "integer", "index": 31, "name": "shipping_address_line_1", "comment": "First line of the shipping address associated with this charge, if any"}, "shipping_address_line_2": {"type": "integer", "index": 32, "name": "shipping_address_line_2", "comment": "Second line of the shipping address associated with this charge, if any"}, "shipping_address_city": {"type": "integer", "index": 33, "name": "shipping_address_city", "comment": "City of the shipping address associated with this charge, if any"}, "shipping_address_state": {"type": "integer", "index": 34, "name": "shipping_address_state", "comment": "State of the shipping address associated with this charge, if any"}, "shipping_address_postal_code": {"type": "integer", "index": 35, "name": "shipping_address_postal_code", "comment": "Postal code of the shipping address associated with this charge, if any"}, "shipping_address_country": {"type": "integer", "index": 36, "name": "shipping_address_country", "comment": "Country of the shipping address associated with this charge, if any"}, "card_address_line_1": {"type": "integer", "index": 37, "name": "card_address_line_1", "comment": "First line of the card address associated with this charge, if any"}, "card_address_line_2": {"type": "integer", "index": 38, "name": "card_address_line_2", "comment": "Second line of the card address associated with this charge, if any"}, "card_address_city": {"type": "integer", "index": 39, "name": "card_address_city", "comment": "City of the card address associated with this charge, if any"}, "card_address_state": {"type": "integer", "index": 40, "name": "card_address_state", "comment": "State of the card address associated with this charge, if any"}, "card_address_postal_code": {"type": "integer", "index": 41, "name": "card_address_postal_code", "comment": "Postal code of the card address associated with this charge, if any"}, "card_address_country": {"type": "integer", "index": 42, "name": "card_address_country", "comment": "Country of the card address associated with this charge, if any"}, "charge_id": {"type": "text", "index": 43, "name": "charge_id", "comment": "Unique identifier for the original charge associated with this balance transaction. Available for charges, refunds and disputes."}, "payment_intent_id": {"type": "text", "index": 44, "name": "payment_intent_id", "comment": "The unique ID of the related Payment Intent, if any."}, "charge_created": {"type": "timestamp without time zone", "index": 45, "name": "charge_created", "comment": "Creation time of the original charge associated with this balance transaction. Available for charges, refunds and disputes. For charges that were separately authorized and captured, this is the authorization time. Dates in the requested timezone, or UTC if not provided."}, "invoice_id": {"type": "text", "index": 46, "name": "invoice_id", "comment": "Unique ID for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice."}, "invoice_number": {"type": "bigint", "index": 47, "name": "invoice_number", "comment": "Number for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice."}, "subscription_id": {"type": "text", "index": 48, "name": "subscription_id", "comment": "Unique ID for the subscription associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing subscription."}, "payment_method_type": {"type": "text", "index": 49, "name": "payment_method_type", "comment": "The type of payment method used in the related payment."}, "card_brand": {"type": "text", "index": 50, "name": "card_brand", "comment": "Card brand, if applicable."}, "card_funding": {"type": "text", "index": 51, "name": "card_funding", "comment": "Card funding type, if applicable."}, "card_country": {"type": "text", "index": 52, "name": "card_country", "comment": "Two-letter ISO code representing the country of the card."}, "statement_descriptor": {"type": "integer", "index": 53, "name": "statement_descriptor", "comment": "The dynamic statement descriptor or suffix specified when the related charge was created."}, "dispute_reasons": {"type": "text", "index": 54, "name": "dispute_reasons", "comment": "Reasons given by cardholder for disputes. Read more about [dispute reasons](https://docs.stripe.com/disputes/categories)."}, "connected_account_id": {"type": "integer", "index": 55, "name": "connected_account_id", "comment": "For Stripe Connect activity related to a connected account, the unique ID for the account."}, "connected_account_country": {"type": "text", "index": 56, "name": "connected_account_country", "comment": "For Stripe Connect activity related to a connected account, the two-letter ISO code representing the country of the account."}, "connected_account_direct_charge_id": {"type": "text", "index": 57, "name": "connected_account_direct_charge_id", "comment": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account."}, "source_relation": {"type": "text", "index": 58, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__balance_change_from_activity_itemized_3"}, "model.stripe.stripe__balance_transactions": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__balance_transactions", "database": "postgres", "comment": "Each record represents a change to your account balance, enriched with data about the transaction.", "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": "Unique identifier for the transaction."}, "balance_transaction_created_at": {"type": "timestamp without time zone", "index": 2, "name": "balance_transaction_created_at", "comment": "When the transaction took place"}, "balance_transaction_available_on": {"type": "timestamp without time zone", "index": 3, "name": "balance_transaction_available_on", "comment": "The date the transaction\u2019s net funds will become available in the Stripe balance."}, "balance_transaction_currency": {"type": "text", "index": 4, "name": "balance_transaction_currency", "comment": "Three-letter ISO currency code, in lowercase."}, "balance_transaction_amount": {"type": "integer", "index": 5, "name": "balance_transaction_amount", "comment": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "balance_transaction_fee": {"type": "integer", "index": 6, "name": "balance_transaction_fee", "comment": "Fees (in currency units) paid for this transaction."}, "balance_transaction_net": {"type": "integer", "index": 7, "name": "balance_transaction_net", "comment": "Net amount of the transaction. Gross amount minus fees, refunds, and disputes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "balance_transaction_source_id": {"type": "text", "index": 8, "name": "balance_transaction_source_id", "comment": "The Stripe object to which this transaction is related."}, "balance_transaction_description": {"type": "text", "index": 9, "name": "balance_transaction_description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "balance_transaction_type": {"type": "text", "index": 10, "name": "balance_transaction_type", "comment": "The type of transaction. Possible values are adjustment, advance, advance_funding, application_fee, application_fee_refund, charge, connect_collection_transfer, issuing_authorization_hold, issuing_authorization_release, issuing_dispute, issuing_transaction, payment, payment_failure_refund, payment_refund, payout, payout_cancel, payout_failure, refund, refund_failure, reserve_transaction, reserved_funds, stripe_fee, stripe_fx_fee, tax_fee, topup, topup_reversal, transfer, transfer_cancel, transfer_failure, or transfer_refund."}, "balance_transaction_reporting_category": {"type": "text", "index": 11, "name": "balance_transaction_reporting_category", "comment": "Groupings of transactions types based on how they show in Stripe's reporting"}, "customer_facing_amount": {"type": "bigint", "index": 12, "name": "customer_facing_amount", "comment": "The transaction amount that the customer sees. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "customer_facing_currency": {"type": "text", "index": 13, "name": "customer_facing_currency", "comment": "Three-letter ISO currency code that the customer sees."}, "latest_dispute_amount_won": {"type": "bigint", "index": 14, "name": "latest_dispute_amount_won", "comment": "Latest disputed amount that was won in favor of the merchant. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "latest_dispute_amount_lost": {"type": "bigint", "index": 15, "name": "latest_dispute_amount_lost", "comment": "Latest disputed amount that was lost and returned to the customer. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "latest_dispute_amount_under_review": {"type": "bigint", "index": 16, "name": "latest_dispute_amount_under_review", "comment": "Latest disputed amount that is currently under review by the bank. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "latest_dispute_amount_needs_response": {"type": "bigint", "index": 17, "name": "latest_dispute_amount_needs_response", "comment": "Latest disputed amount that currently needs a response (the dispute has been filed but the merchant has not yet responded with evidence). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "latest_dispute_amount_warning_closed": {"type": "bigint", "index": 18, "name": "latest_dispute_amount_warning_closed", "comment": "Latest disputed amount that is currently of status `warning_under_closed` (early fraud warning being closed due to no formal dispute). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "latest_dispute_amount_warning_under_review": {"type": "bigint", "index": 19, "name": "latest_dispute_amount_warning_under_review", "comment": "Latest disputed amount that is currently of status `warning_under_review` (card issuer suspects possible fraud but hasn't yet escalated the situation to a full dispute). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "latest_dispute_amount_warning_needs_response": {"type": "bigint", "index": 20, "name": "latest_dispute_amount_warning_needs_response", "comment": "Latest disputed amount that is currently of status `warning_needs_response` (early fraud warning has been escalated into formal dispute or card issuer has requested more information). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "effective_at": {"type": "timestamp without time zone", "index": 21, "name": "effective_at", "comment": "calendar day after available_at"}, "automatic_payout_id": {"type": "text", "index": 22, "name": "automatic_payout_id", "comment": "(Applies only to accounts on automatic payouts.) The unique ID for the associated payout."}, "payout_id": {"type": "text", "index": 23, "name": "payout_id", "comment": "ID for the payout associated with this balance transaction"}, "payout_created_at": {"type": "timestamp without time zone", "index": 24, "name": "payout_created_at", "comment": "Time at which the payout record was created."}, "payout_currency": {"type": "text", "index": 25, "name": "payout_currency", "comment": "Three-letter ISO currency code of the payout, in lowercase."}, "payout_is_automatic": {"type": "boolean", "index": 26, "name": "payout_is_automatic", "comment": "True if the payout was created by an automated payout schedule, and false if it was requested manually."}, "payout_arrival_date_at": {"type": "timestamp without time zone", "index": 27, "name": "payout_arrival_date_at", "comment": "Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays."}, "automatic_payout_effective_at": {"type": "timestamp without time zone", "index": 28, "name": "automatic_payout_effective_at", "comment": "The date we expect this automatic payout to arrive in your bank account, in UTC. This is also when the paid-out funds are deducted from your Stripe balance."}, "payout_type": {"type": "text", "index": 29, "name": "payout_type", "comment": "Whether the payout was to a bank_account or card."}, "payout_status": {"type": "text", "index": 30, "name": "payout_status", "comment": "Current status of the payout. Can be paid, pending, in_transit, canceled or failed."}, "payout_description": {"type": "text", "index": 31, "name": "payout_description", "comment": "An arbitrary string attached to the payout. Often useful for displaying to users."}, "destination_bank_account_id": {"type": "character varying(500)", "index": 32, "name": "destination_bank_account_id", "comment": "ID of the bank account the payout was sent to."}, "destination_card_id": {"type": "character varying(500)", "index": 33, "name": "destination_card_id", "comment": "ID of the card the payout was sent to."}, "payout_balance_transaction_is_current": {"type": "boolean", "index": 34, "name": "payout_balance_transaction_is_current", "comment": "Boolean if the current record matches the most recent balance_transaction_id recorded in the corresponding PAYOUT."}, "customer_id": {"type": "text", "index": 35, "name": "customer_id", "comment": "The customer associated with the balance transaction (based on charge or refund details)"}, "receipt_email": {"type": "text", "index": 36, "name": "receipt_email", "comment": "The email the receipt was emailed to for this transaction."}, "customer_email": {"type": "integer", "index": 37, "name": "customer_email", "comment": "The customer\u2019s email address."}, "customer_name": {"type": "text", "index": 38, "name": "customer_name", "comment": "Customer name."}, "customer_description": {"type": "character varying(500)", "index": 39, "name": "customer_description", "comment": "The description field associated with the customer"}, "customer_shipping_address_line_1": {"type": "integer", "index": 40, "name": "customer_shipping_address_line_1", "comment": "Attribute of the customer's shipping address."}, "customer_shipping_address_line_2": {"type": "integer", "index": 41, "name": "customer_shipping_address_line_2", "comment": "Attribute of the customer's shipping address."}, "customer_shipping_address_city": {"type": "integer", "index": 42, "name": "customer_shipping_address_city", "comment": "Attribute of the customer's shipping address."}, "customer_shipping_address_state": {"type": "integer", "index": 43, "name": "customer_shipping_address_state", "comment": "Attribute of the customer's shipping address."}, "customer_shipping_address_postal_code": {"type": "integer", "index": 44, "name": "customer_shipping_address_postal_code", "comment": "Attribute of the customer's shipping address."}, "customer_shipping_address_country": {"type": "integer", "index": 45, "name": "customer_shipping_address_country", "comment": "Attribute of the customer's shipping address."}, "customer_address_line_1": {"type": "integer", "index": 46, "name": "customer_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "customer_address_line_2": {"type": "integer", "index": 47, "name": "customer_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "customer_address_city": {"type": "integer", "index": 48, "name": "customer_address_city", "comment": "City, district, suburb, town, or village."}, "customer_address_state": {"type": "integer", "index": 49, "name": "customer_address_state", "comment": "State, county, province, or region."}, "customer_address_postal_code": {"type": "integer", "index": 50, "name": "customer_address_postal_code", "comment": "ZIP or postal code."}, "customer_address_country": {"type": "integer", "index": 51, "name": "customer_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "charge_shipping_address_line_1": {"type": "integer", "index": 52, "name": "charge_shipping_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name) belonging to the charge."}, "charge_shipping_address_line_2": {"type": "integer", "index": 53, "name": "charge_shipping_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building) belonging to the charge."}, "charge_shipping_address_city": {"type": "integer", "index": 54, "name": "charge_shipping_address_city", "comment": "City, district, suburb, town, or village belonging to the charge."}, "charge_shipping_address_state": {"type": "integer", "index": 55, "name": "charge_shipping_address_state", "comment": "State, county, province, or region belonging to the charge."}, "charge_shipping_address_postal_code": {"type": "integer", "index": 56, "name": "charge_shipping_address_postal_code", "comment": "ZIP or postal code belonging to the charge."}, "charge_shipping_address_country": {"type": "integer", "index": 57, "name": "charge_shipping_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2) belonging to the charge."}, "card_address_line_1": {"type": "integer", "index": 58, "name": "card_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "card_address_line_2": {"type": "integer", "index": 59, "name": "card_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "card_address_city": {"type": "integer", "index": 60, "name": "card_address_city", "comment": "City, district, suburb, town, or village."}, "card_address_state": {"type": "integer", "index": 61, "name": "card_address_state", "comment": "State, county, province, or region."}, "card_address_postal_code": {"type": "integer", "index": 62, "name": "card_address_postal_code", "comment": "ZIP or postal code."}, "card_address_country": {"type": "integer", "index": 63, "name": "card_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "charge_id": {"type": "text", "index": 64, "name": "charge_id", "comment": "The id of the charge associated with the balance transaction"}, "charge_created_at": {"type": "timestamp without time zone", "index": 65, "name": "charge_created_at", "comment": "Timestamp of the charge object associated with the balance transaction"}, "payment_intent_id": {"type": "text", "index": 66, "name": "payment_intent_id", "comment": "The id of the payment intent associated with the balance transaction"}, "invoice_id": {"type": "text", "index": 67, "name": "invoice_id", "comment": "The ID of the invoice this record is a part of."}, "invoice_number": {"type": "bigint", "index": 68, "name": "invoice_number", "comment": "The number of the invoice associated with this record."}, "subscription_id": {"type": "text", "index": 69, "name": "subscription_id", "comment": "The ID of the subscription is associated with this record."}, "payment_method_type": {"type": "text", "index": 70, "name": "payment_method_type", "comment": "The id of the payment method type associated with the balance transaction"}, "payment_method_brand": {"type": "text", "index": 71, "name": "payment_method_brand", "comment": "Card brand used for the payment method. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown."}, "payment_method_funding": {"type": "text", "index": 72, "name": "payment_method_funding", "comment": "Card funding type for the payment method. Can be credit, debit, prepaid, or unknown."}, "card_brand": {"type": "text", "index": 73, "name": "card_brand", "comment": "The brand of the card associated with the balance transaction"}, "card_funding": {"type": "text", "index": 74, "name": "card_funding", "comment": "Card funding type. Can be credit, debit, prepaid, or unknown."}, "card_country": {"type": "text", "index": 75, "name": "card_country", "comment": "The country the card was issued in."}, "charge_statement_descriptor": {"type": "integer", "index": 76, "name": "charge_statement_descriptor", "comment": "Extra information about a source. This will appear on your customer\u2019s statement every time you charge the source."}, "dispute_ids": {"type": "text", "index": 77, "name": "dispute_ids", "comment": "Unique identifiers for the object."}, "dispute_reasons": {"type": "text", "index": 78, "name": "dispute_reasons", "comment": "Reasons given by cardholder for dispute. Possible values are bank_cannot_process, check_returned, credit_not_processed, customer_initiated, debit_not_authorized, duplicate, fraudulent, general, incorrect_account_details, insufficient_funds, product_not_received, product_unacceptable, subscription_canceled, or unrecognized."}, "dispute_count": {"type": "bigint", "index": 79, "name": "dispute_count", "comment": "Count of disputes raised against this transaction. If > 1, join in `dispute` data for additional information on each dispute."}, "refund_id": {"type": "text", "index": 80, "name": "refund_id", "comment": "ID of the refund associated with this record."}, "refund_reason": {"type": "text", "index": 81, "name": "refund_reason", "comment": "Reason for the refund, either user-provided (duplicate, fraudulent, or requested_by_customer) or generated by Stripe internally (expired_uncaptured_charge)."}, "transfer_id": {"type": "text", "index": 82, "name": "transfer_id", "comment": "ID of the transfer associated with this record."}, "connected_account_id": {"type": "integer", "index": 83, "name": "connected_account_id", "comment": "The ID of the account connected to the transaction."}, "connected_account_country": {"type": "text", "index": 84, "name": "connected_account_country", "comment": "The country of the account connected to the transaction."}, "connected_account_direct_charge_id": {"type": "text", "index": 85, "name": "connected_account_direct_charge_id", "comment": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account."}, "source_relation": {"type": "text", "index": 86, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__balance_transactions"}, "model.stripe.stripe__customer_overview": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__customer_overview", "database": "postgres", "comment": "Each record represents a customer, enriched with metrics about their associated transactions.", "owner": "postgres"}, "columns": {"customer_id": {"type": "text", "index": 1, "name": "customer_id", "comment": "Unique identifier for each record from the Stripe customer object."}, "customer_description": {"type": "text", "index": 2, "name": "customer_description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "customer_created_at": {"type": "timestamp without time zone", "index": 3, "name": "customer_created_at", "comment": "Timestamp of when the customer entry was created."}, "customer_currency": {"type": "integer", "index": 4, "name": "customer_currency", "comment": "Currency used by the customer."}, "account_balance": {"type": "integer", "index": 5, "name": "account_balance", "comment": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice."}, "customer_address_city": {"type": "integer", "index": 6, "name": "customer_address_city", "comment": "City, district, suburb, town, or village."}, "customer_address_country": {"type": "integer", "index": 7, "name": "customer_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "customer_address_line_1": {"type": "integer", "index": 8, "name": "customer_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "customer_address_line_2": {"type": "integer", "index": 9, "name": "customer_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "customer_address_postal_code": {"type": "integer", "index": 10, "name": "customer_address_postal_code", "comment": "ZIP or postal code."}, "customer_address_state": {"type": "integer", "index": 11, "name": "customer_address_state", "comment": "State, county, province, or region."}, "customer_balance": {"type": "integer", "index": 12, "name": "customer_balance", "comment": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized."}, "bank_account_id": {"type": "text", "index": 13, "name": "bank_account_id", "comment": "ID of the bank account associated with this customer."}, "default_card_id": {"type": "integer", "index": 14, "name": "default_card_id", "comment": "ID of the default card used by the customer."}, "is_delinquent": {"type": "boolean", "index": 15, "name": "is_delinquent", "comment": "When the customer\u2019s latest invoice is billed by charging automatically, delinquent is true if the invoice\u2019s latest charge is failed. When the customer\u2019s latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date."}, "email": {"type": "integer", "index": 16, "name": "email", "comment": "Email address associated with the customer."}, "customer_name": {"type": "text", "index": 17, "name": "customer_name", "comment": "Customer name."}, "phone": {"type": "integer", "index": 18, "name": "phone", "comment": "Customer's phone number."}, "shipping_address_city": {"type": "integer", "index": 19, "name": "shipping_address_city", "comment": "Attribute of the customer's shipping address."}, "shipping_address_country": {"type": "integer", "index": 20, "name": "shipping_address_country", "comment": "Attribute of the customer's shipping address."}, "shipping_address_line_1": {"type": "integer", "index": 21, "name": "shipping_address_line_1", "comment": "Attribute of the customer's shipping address."}, "shipping_address_line_2": {"type": "integer", "index": 22, "name": "shipping_address_line_2", "comment": "Attribute of the customer's shipping address."}, "shipping_address_postal_code": {"type": "integer", "index": 23, "name": "shipping_address_postal_code", "comment": "Attribute of the customer's shipping address."}, "shipping_address_state": {"type": "integer", "index": 24, "name": "shipping_address_state", "comment": "Attribute of the customer's shipping address."}, "shipping_name": {"type": "integer", "index": 25, "name": "shipping_name", "comment": "Attribute of the customer's shipping address."}, "shipping_phone": {"type": "integer", "index": 26, "name": "shipping_phone", "comment": "Attribute of the customer's shipping address."}, "is_deleted": {"type": "boolean", "index": 27, "name": "is_deleted", "comment": "Boolean reflecting whether the customer has been deleted in Stripe."}, "total_sales": {"type": "bigint", "index": 28, "name": "total_sales", "comment": "Sum of all charges made to this customer."}, "total_refunds": {"type": "bigint", "index": 29, "name": "total_refunds", "comment": "Sum of all refunds made to this customer."}, "total_gross_transaction_amount": {"type": "bigint", "index": 30, "name": "total_gross_transaction_amount", "comment": "Gross amount of all transactions made with this customer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_fees": {"type": "bigint", "index": 31, "name": "total_fees", "comment": "Total fees charged on all transactions made with this customer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_net_transaction_amount": {"type": "bigint", "index": 32, "name": "total_net_transaction_amount", "comment": "Net amount of all transactions made with this customer. This is the gross amount excluding fees, refunds, and disputes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_sales_count": {"type": "bigint", "index": 33, "name": "total_sales_count", "comment": "The total number of sales made to this customer."}, "total_refund_count": {"type": "bigint", "index": 34, "name": "total_refund_count", "comment": "The total number of refunds made to this customer."}, "sales_this_month": {"type": "bigint", "index": 35, "name": "sales_this_month", "comment": "Sum of charges made to this customer this month."}, "refunds_this_month": {"type": "bigint", "index": 36, "name": "refunds_this_month", "comment": "Sum of refunds made to this customer this month."}, "gross_transaction_amount_this_month": {"type": "bigint", "index": 37, "name": "gross_transaction_amount_this_month", "comment": "Gross amount of transactions made with this customer this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "fees_this_month": {"type": "bigint", "index": 38, "name": "fees_this_month", "comment": "Total fees charged on transactions made with this customer this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "net_transaction_amount_this_month": {"type": "bigint", "index": 39, "name": "net_transaction_amount_this_month", "comment": "Net amount of transactions made with this customer this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "sales_count_this_month": {"type": "bigint", "index": 40, "name": "sales_count_this_month", "comment": "The number of sales made to this customer this month."}, "refund_count_this_month": {"type": "bigint", "index": 41, "name": "refund_count_this_month", "comment": "The number of refunds made to this customer this month."}, "first_sale_date": {"type": "timestamp without time zone", "index": 42, "name": "first_sale_date", "comment": "Date of the first time this customer was charged."}, "most_recent_sale_date": {"type": "timestamp without time zone", "index": 43, "name": "most_recent_sale_date", "comment": "Date of the most recent time this customer was charged."}, "total_failed_charge_count": {"type": "bigint", "index": 44, "name": "total_failed_charge_count", "comment": "The total number of incomplete charges this customer has had."}, "total_failed_charge_amount": {"type": "numeric", "index": 45, "name": "total_failed_charge_amount", "comment": "The total amount from incomplete charges this customer has had. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "failed_charge_count_this_month": {"type": "bigint", "index": 46, "name": "failed_charge_count_this_month", "comment": "The number of incomplete charges this customer has had this month."}, "failed_charge_amount_this_month": {"type": "numeric", "index": 47, "name": "failed_charge_amount_this_month", "comment": "The amount from incomplete charges this customer has had this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "source_relation": {"type": "text", "index": 48, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__customer_overview"}, "model.stripe.stripe__daily_overview": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__daily_overview", "database": "postgres", "comment": "Each record represents, per account per day, a summary of daily totals and rolling totals by transaction type (balances, payments, refunds, payouts, and other transactions).", "owner": "postgres"}, "columns": {"account_id": {"type": "integer", "index": 1, "name": "account_id", "comment": "The ID of the account tied to the balance."}, "account_daily_id": {"type": "text", "index": 2, "name": "account_daily_id", "comment": "A surrogate key made up of account_id and date_day."}, "date_day": {"type": "date", "index": 3, "name": "date_day", "comment": "Day of record, taken from the date of each balance transaction."}, "date_week": {"type": "date", "index": 4, "name": "date_week", "comment": "Week of record."}, "date_month": {"type": "date", "index": 5, "name": "date_month", "comment": "Month of record."}, "date_year": {"type": "date", "index": 6, "name": "date_year", "comment": "Year of record."}, "date_index": {"type": "bigint", "index": 7, "name": "date_index", "comment": "Index indicating the relative position of the date to all other dates available in this model."}, "source_relation": {"type": "text", "index": 8, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}, "total_daily_sales_amount": {"type": "numeric", "index": 9, "name": "total_daily_sales_amount", "comment": "Total amount for when transaction type is a charge or payment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_refunds_amount": {"type": "numeric", "index": 10, "name": "total_daily_refunds_amount", "comment": "Total amount for when transaction type is payment_refund or refund. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_adjustments_amount": {"type": "numeric", "index": 11, "name": "total_daily_adjustments_amount", "comment": "Total amount for when transaction type is adjustment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_other_transactions_amount": {"type": "numeric", "index": 12, "name": "total_daily_other_transactions_amount", "comment": "Total amount for when transaction type is not of the prior types. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_gross_transaction_amount": {"type": "numeric", "index": 13, "name": "total_daily_gross_transaction_amount", "comment": "Total amount for when transaction type is not payout or transfer \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_net_transactions_amount": {"type": "numeric", "index": 14, "name": "total_daily_net_transactions_amount", "comment": "Total net for when transaction type is not payout or transfer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_payout_fee_amount": {"type": "numeric", "index": 15, "name": "total_daily_payout_fee_amount", "comment": "Total fee for when transaction type is payout or transfer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_gross_payout_amount": {"type": "numeric", "index": 16, "name": "total_daily_gross_payout_amount", "comment": "Total amount for when transaction type is payout or transfer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "daily_net_activity_amount": {"type": "numeric", "index": 17, "name": "daily_net_activity_amount", "comment": "Net amount minus fees from payouts and transfers. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "daily_end_balance_amount": {"type": "numeric", "index": 18, "name": "daily_end_balance_amount", "comment": "daily_net_activity_amount + total_daily_gross_payout_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_sales_count": {"type": "numeric", "index": 19, "name": "total_daily_sales_count", "comment": "Count of total balance transactions where type is payment or charge."}, "total_daily_payouts_count": {"type": "numeric", "index": 20, "name": "total_daily_payouts_count", "comment": "Count of total balance transactions where type is payout."}, "total_daily_adjustments_count": {"type": "numeric", "index": 21, "name": "total_daily_adjustments_count", "comment": "Count of total balance transactions where type is adjustment."}, "total_daily_failed_charge_count": {"type": "numeric", "index": 22, "name": "total_daily_failed_charge_count", "comment": "Count of incomplete charges."}, "total_daily_failed_charge_amount": {"type": "numeric", "index": 23, "name": "total_daily_failed_charge_amount", "comment": "Total amount of incomplete charges. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_sales_amount": {"type": "numeric", "index": 24, "name": "rolling_total_daily_sales_amount", "comment": "Rolling total of total_daily_sales_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_refunds_amount": {"type": "numeric", "index": 25, "name": "rolling_total_daily_refunds_amount", "comment": "Rolling total of total_daily_refunds_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_adjustments_amount": {"type": "numeric", "index": 26, "name": "rolling_total_daily_adjustments_amount", "comment": "Rolling total of total_daily_adjustments_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_other_transactions_amount": {"type": "numeric", "index": 27, "name": "rolling_total_daily_other_transactions_amount", "comment": "Rolling total of total_daily_other_transactions_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_gross_transaction_amount": {"type": "numeric", "index": 28, "name": "rolling_total_daily_gross_transaction_amount", "comment": "Rolling total of total_daily_gross_transaction_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_net_transactions_amount": {"type": "numeric", "index": 29, "name": "rolling_total_daily_net_transactions_amount", "comment": "Rolling total of total_daily_net_transactions_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_payout_fee_amount": {"type": "numeric", "index": 30, "name": "rolling_total_daily_payout_fee_amount", "comment": "Rolling total of total_daily_payout_fee_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_gross_payout_amount": {"type": "numeric", "index": 31, "name": "rolling_total_daily_gross_payout_amount", "comment": "Rolling total of total_daily_gross_payout_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_daily_net_activity_amount": {"type": "numeric", "index": 32, "name": "rolling_daily_net_activity_amount", "comment": "Rolling total of daily_net_activity_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_daily_end_balance_amount": {"type": "numeric", "index": 33, "name": "rolling_daily_end_balance_amount", "comment": "Rolling total of daily_end_balance_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_sales_count": {"type": "numeric", "index": 34, "name": "rolling_total_daily_sales_count", "comment": "Rolling total of total_daily_sales_count"}, "rolling_total_daily_payouts_count": {"type": "numeric", "index": 35, "name": "rolling_total_daily_payouts_count", "comment": "Rolling total of total_daily_payouts_count"}, "rolling_total_daily_adjustments_count": {"type": "numeric", "index": 36, "name": "rolling_total_daily_adjustments_count", "comment": "Rolling total of total_daily_adjustments_count"}, "rolling_total_daily_failed_charge_count": {"type": "numeric", "index": 37, "name": "rolling_total_daily_failed_charge_count", "comment": "Rolling total of total_daily_failed_charge_count"}, "rolling_total_daily_failed_charge_amount": {"type": "numeric", "index": 38, "name": "rolling_total_daily_failed_charge_amount", "comment": "Rolling total of total_daily_failed_charge_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__daily_overview"}, "model.stripe.stripe__ending_balance_reconciliation_itemized_4": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__ending_balance_reconciliation_itemized_4", "database": "postgres", "comment": "Modeled after the [titular report](https://stripe.com/docs/reports/payout-reconciliation#schema-ending-balance-reconciliation-itemized-4) from Stripe, each record represents an automatic payout and additional details such as associated customer, shipping, card, subscription information. This report belongs to the class of Payout Reconciliation reports. The Payout reconciliation report helps you match the payouts you receive in your bank account with the batches of payments and other transactions that they relate to. The payout reconciliation report is only available for users with automatic payouts enabled, and is optimized for users who prefer to reconcile the transactions included in each payout as a settlement batch. If you use manual payouts or prefer to track and reconcile your Stripe balance like a bank account, see the Balance report instead. To help you decide which report is right for you, see the guide for selecting reports. This Ending Balance Reconciliation section provides a similar breakdown of the transactions that hadn\u2019t been settled as of the report\u2019s end date.", "owner": "postgres"}, "columns": {"automatic_payout_id": {"type": "text", "index": 1, "name": "automatic_payout_id", "comment": "ID of the automatically created payout associated with this balance transaction (only set if your account is on an automatic payout schedule)."}, "automatic_payout_effective_at": {"type": "timestamp without time zone", "index": 2, "name": "automatic_payout_effective_at", "comment": "The date we expect this automatic payout to arrive in your bank account, in the requested timezone, or UTC if not provided. This is also when the paid-out funds are deducted from your Stripe balance."}, "balance_transaction_id": {"type": "text", "index": 3, "name": "balance_transaction_id", "comment": "Unique identifier for the balance transaction."}, "created": {"type": "timestamp without time zone", "index": 4, "name": "created", "comment": "Time at which the balance transaction was created. Dates in the requested timezone, or UTC if not provided."}, "available_on": {"type": "timestamp without time zone", "index": 5, "name": "available_on", "comment": "The date the balance transaction\u2019s net funds will become available in the Stripe balance. Dates in the requested timezone, or UTC if not provided."}, "currency": {"type": "text", "index": 6, "name": "currency", "comment": "Three-letter ISO code for the currency in which gross, fee and net are defined."}, "gross": {"type": "integer", "index": 7, "name": "gross", "comment": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "fee": {"type": "integer", "index": 8, "name": "fee", "comment": "Fees paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "net": {"type": "integer", "index": 9, "name": "net", "comment": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "reporting_category": {"type": "text", "index": 10, "name": "reporting_category", "comment": "Reporting Category is a new categorization of balance transactions, meant to improve on the current type field."}, "source_id": {"type": "text", "index": 11, "name": "source_id", "comment": "The Stripe object to which this transaction is related."}, "description": {"type": "text", "index": 12, "name": "description", "comment": "An arbitrary string attached to the balance transaction. Often useful for displaying to users."}, "customer_facing_amount": {"type": "bigint", "index": 13, "name": "customer_facing_amount", "comment": "For transactions associated with charges, refunds, or disputes, the amount of the original charge, the refund, or the latest dispute. If the customer was charged in a different currency than your account\u2019s default, this field will reflect the amount as seen by the customer."}, "customer_facing_currency": {"type": "text", "index": 14, "name": "customer_facing_currency", "comment": "For transactions associated with charges, refunds, or disputes, the three-letter ISO currency code for customer_facing_amount."}, "customer_id": {"type": "text", "index": 15, "name": "customer_id", "comment": "The unique ID of the related customer, if any."}, "customer_email": {"type": "integer", "index": 16, "name": "customer_email", "comment": "Email address of the customer, if any, associated with this balance transaction."}, "customer_name": {"type": "text", "index": 17, "name": "customer_name", "comment": "Name of the customer, if any, associated with this balance transaction."}, "customer_description": {"type": "character varying(500)", "index": 18, "name": "customer_description", "comment": "Description provided when creating the customer, often used to store the customer name."}, "customer_shipping_address_line_1": {"type": "integer", "index": 19, "name": "customer_shipping_address_line_1", "comment": "First line of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_line_2": {"type": "integer", "index": 20, "name": "customer_shipping_address_line_2", "comment": "Second line of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_city": {"type": "integer", "index": 21, "name": "customer_shipping_address_city", "comment": "City of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_state": {"type": "integer", "index": 22, "name": "customer_shipping_address_state", "comment": "State of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_postal_code": {"type": "integer", "index": 23, "name": "customer_shipping_address_postal_code", "comment": "Postal code of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_country": {"type": "integer", "index": 24, "name": "customer_shipping_address_country", "comment": "Country of the customer shipping address associated with this charge, if any"}, "customer_address_line_1": {"type": "integer", "index": 25, "name": "customer_address_line_1", "comment": "First line of the customer address associated with this charge, if any"}, "customer_address_line_2": {"type": "integer", "index": 26, "name": "customer_address_line_2", "comment": "Second line of the customer address associated with this charge, if any"}, "customer_address_city": {"type": "integer", "index": 27, "name": "customer_address_city", "comment": "City of the customer address associated with this charge, if any"}, "customer_address_state": {"type": "integer", "index": 28, "name": "customer_address_state", "comment": "State of the customer address associated with this charge, if any"}, "customer_address_postal_code": {"type": "integer", "index": 29, "name": "customer_address_postal_code", "comment": "Postal code of the customer address associated with this charge, if any"}, "customer_address_country": {"type": "integer", "index": 30, "name": "customer_address_country", "comment": "Country of the customer address associated with this charge, if any"}, "shipping_address_line_1": {"type": "integer", "index": 31, "name": "shipping_address_line_1", "comment": "First line of the shipping address associated with this charge, if any"}, "shipping_address_line_2": {"type": "integer", "index": 32, "name": "shipping_address_line_2", "comment": "Second line of the shipping address associated with this charge, if any"}, "shipping_address_city": {"type": "integer", "index": 33, "name": "shipping_address_city", "comment": "City of the shipping address associated with this charge, if any"}, "shipping_address_state": {"type": "integer", "index": 34, "name": "shipping_address_state", "comment": "State of the shipping address associated with this charge, if any"}, "shipping_address_postal_code": {"type": "integer", "index": 35, "name": "shipping_address_postal_code", "comment": "Postal code of the shipping address associated with this charge, if any"}, "shipping_address_country": {"type": "integer", "index": 36, "name": "shipping_address_country", "comment": "Country of the shipping address associated with this charge, if any"}, "card_address_line_1": {"type": "integer", "index": 37, "name": "card_address_line_1", "comment": "First line of the card address associated with this charge, if any"}, "card_address_line_2": {"type": "integer", "index": 38, "name": "card_address_line_2", "comment": "Second line of the card address associated with this charge, if any"}, "card_address_city": {"type": "integer", "index": 39, "name": "card_address_city", "comment": "City of the card address associated with this charge, if any"}, "card_address_state": {"type": "integer", "index": 40, "name": "card_address_state", "comment": "State of the card address associated with this charge, if any"}, "card_address_postal_code": {"type": "integer", "index": 41, "name": "card_address_postal_code", "comment": "Postal code of the card address associated with this charge, if any"}, "card_address_country": {"type": "integer", "index": 42, "name": "card_address_country", "comment": "Country of the card address associated with this charge, if any"}, "charge_id": {"type": "text", "index": 43, "name": "charge_id", "comment": "Unique identifier for the original charge associated with this balance transaction. Available for charges, refunds and disputes."}, "payment_intent_id": {"type": "text", "index": 44, "name": "payment_intent_id", "comment": "The unique ID of the related Payment Intent, if any."}, "charge_created": {"type": "timestamp without time zone", "index": 45, "name": "charge_created", "comment": "Creation time of the original charge associated with this balance transaction. Available for charges, refunds and disputes. For charges that were separately authorized and captured, this is the authorization time. Dates in the requested timezone, or UTC if not provided."}, "invoice_id": {"type": "text", "index": 46, "name": "invoice_id", "comment": "Unique ID for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice."}, "invoice_number": {"type": "bigint", "index": 47, "name": "invoice_number", "comment": "Unique Number for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice."}, "subscription_id": {"type": "text", "index": 48, "name": "subscription_id", "comment": "Unique ID for the subscription associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing subscription."}, "payment_method_type": {"type": "text", "index": 49, "name": "payment_method_type", "comment": "The type of payment method used in the related payment."}, "card_brand": {"type": "text", "index": 50, "name": "card_brand", "comment": "Card brand, if applicable."}, "card_funding": {"type": "text", "index": 51, "name": "card_funding", "comment": "Card funding type, if applicable."}, "card_country": {"type": "text", "index": 52, "name": "card_country", "comment": "Two-letter ISO code representing the country of the card."}, "statement_descriptor": {"type": "integer", "index": 53, "name": "statement_descriptor", "comment": "The dynamic statement descriptor or suffix specified when the related charge was created."}, "dispute_reasons": {"type": "text", "index": 54, "name": "dispute_reasons", "comment": "Reasons given by cardholder for disputes. Read more about [dispute reasons](https://docs.stripe.com/disputes/categories)."}, "connected_account_id": {"type": "integer", "index": 55, "name": "connected_account_id", "comment": "For Stripe Connect activity related to a connected account, the unique ID for the account."}, "connected_account_country": {"type": "text", "index": 56, "name": "connected_account_country", "comment": "For Stripe Connect activity related to a connected account, the two-letter ISO code representing the country of the account."}, "connected_account_direct_charge_id": {"type": "text", "index": 57, "name": "connected_account_direct_charge_id", "comment": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account."}, "source_relation": {"type": "text", "index": 58, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__ending_balance_reconciliation_itemized_4"}, "model.stripe.stripe__invoice_details": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__invoice_details", "database": "postgres", "comment": "Each record represents an invoice, enriched with details about the associated charge, customer, and subscription data.", "owner": "postgres"}, "columns": {"invoice_id": {"type": "text", "index": 1, "name": "invoice_id", "comment": "The unique Identifier of the invoice object. Note invoices can have many line items, so this value can appear multiple times."}, "invoice_number": {"type": "bigint", "index": 2, "name": "invoice_number", "comment": "A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer\u2019s unique invoice_prefix if it is specified."}, "invoice_created_at": {"type": "timestamp without time zone", "index": 3, "name": "invoice_created_at", "comment": "Timestamp of when the invoice was created."}, "period_start": {"type": "timestamp without time zone", "index": 4, "name": "period_start", "comment": "Timestamp of the start of the period."}, "period_end": {"type": "timestamp without time zone", "index": 5, "name": "period_end", "comment": "Timestamp of the end of the period."}, "status": {"type": "text", "index": 6, "name": "status", "comment": "Current status of the invoice."}, "due_date": {"type": "timestamp without time zone", "index": 7, "name": "due_date", "comment": "Date when payment for the invoice is due."}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": "The currency that the invoice is in. Three-letter ISO currency code, in lowercase."}, "amount_due": {"type": "bigint", "index": 9, "name": "amount_due", "comment": "Final amount due at this time for this invoice. If the invoice\u2019s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "amount_paid": {"type": "bigint", "index": 10, "name": "amount_paid", "comment": "The amount, if any, that the customer has paid on the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "subtotal": {"type": "bigint", "index": 11, "name": "subtotal", "comment": "The amount of the invoice before discounts and taxes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "tax": {"type": "bigint", "index": 12, "name": "tax", "comment": "The amount of tax being charged in the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total": {"type": "bigint", "index": 13, "name": "total", "comment": "The Total after discounts and taxes."}, "amount_remaining": {"type": "bigint", "index": 14, "name": "amount_remaining", "comment": "The amount of the invoice remaining to be paid. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "attempt_count": {"type": "bigint", "index": 15, "name": "attempt_count", "comment": "Number of payment attempts made for this invoice, from the perspective of the payment retry schedule."}, "invoice_memo": {"type": "text", "index": 16, "name": "invoice_memo", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "number_of_line_items": {"type": "bigint", "index": 17, "name": "number_of_line_items", "comment": "Number of line item records for this invoice."}, "total_quantity": {"type": "bigint", "index": 18, "name": "total_quantity", "comment": "The total quantity of items for this invoice."}, "balance_transaction_id": {"type": "character varying(500)", "index": 19, "name": "balance_transaction_id", "comment": "The ID of the balance transaction object representing payment"}, "charge_amount": {"type": "bigint", "index": 20, "name": "charge_amount", "comment": "The amount charged to the customer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "charge_status": {"type": "text", "index": 21, "name": "charge_status", "comment": "The status of the charge for the invoice."}, "connected_account_id": {"type": "integer", "index": 22, "name": "connected_account_id", "comment": "The ID of the account connected to the charge."}, "charge_created_at": {"type": "timestamp without time zone", "index": 23, "name": "charge_created_at", "comment": "When the charge for the invoice was created."}, "charge_is_refunded": {"type": "boolean", "index": 24, "name": "charge_is_refunded", "comment": "Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false."}, "customer_id": {"type": "text", "index": 25, "name": "customer_id", "comment": "The associated customer reference."}, "customer_description": {"type": "character varying(500)", "index": 26, "name": "customer_description", "comment": "Description of the customer."}, "customer_account_balance": {"type": "integer", "index": 27, "name": "customer_account_balance", "comment": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice."}, "customer_currency": {"type": "integer", "index": 28, "name": "customer_currency", "comment": "Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes."}, "customer_is_delinquent": {"type": "boolean", "index": 29, "name": "customer_is_delinquent", "comment": "When the customer\u2019s latest invoice is billed by charging automatically, delinquent is true if the invoice\u2019s latest charge is failed. When the customer\u2019s latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date."}, "customer_email": {"type": "integer", "index": 30, "name": "customer_email", "comment": "Email of the customer."}, "subscription_id": {"type": "text", "index": 31, "name": "subscription_id", "comment": "ID of the subscription this invoice relates to."}, "subscription_billing": {"type": "text", "index": 32, "name": "subscription_billing", "comment": "How the subscription is billed"}, "subscription_start_date": {"type": "timestamp without time zone", "index": 33, "name": "subscription_start_date", "comment": "The start date of the subscription"}, "subscription_ended_at": {"type": "timestamp without time zone", "index": 34, "name": "subscription_ended_at", "comment": "The end date of the subscription"}, "source_relation": {"type": "text", "index": 35, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__invoice_details"}, "model.stripe.stripe__invoice_line_item_details": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__invoice_line_item_details", "database": "postgres", "comment": "Each record represents an invoice line item, enriched with details about the associated invoice, charge, customer, subscription, and pricing data.", "owner": "postgres"}, "columns": {"invoice_line_item_id": {"type": "text", "index": 1, "name": "invoice_line_item_id", "comment": "The unique Identifier of the invoice line object. Note that the same line item can be shown across different invoices, so this value can appear multiple times."}, "invoice_id": {"type": "character varying(500)", "index": 2, "name": "invoice_id", "comment": "The unique Identifier of the invoice object. Note invoices can have many line items, so this value can appear multiple times."}, "invoice_item_id": {"type": "text", "index": 3, "name": "invoice_item_id", "comment": "The ID of the invoice item this item is a part of"}, "invoice_line_item_amount": {"type": "integer", "index": 4, "name": "invoice_line_item_amount", "comment": "Amount for this line item. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": "Currency of this line item."}, "invoice_line_item_memo": {"type": "text", "index": 6, "name": "invoice_line_item_memo", "comment": "Description for this line item."}, "is_discountable": {"type": "boolean", "index": 7, "name": "is_discountable", "comment": "Whether this line item is discountable."}, "plan_id": {"type": "text", "index": 8, "name": "plan_id", "comment": "The ID that documents the plan record detailing the base price, currency, and billing information for each product. Valid if you are using the Plan API."}, "price_id": {"type": "text", "index": 9, "name": "price_id", "comment": "The ID that documents the price record detailing the base price, currency, and billing information for each product. Valid if you are using the new Prices API."}, "proration": {"type": "boolean", "index": 10, "name": "proration", "comment": "Whether this is a proration."}, "quantity": {"type": "integer", "index": 11, "name": "quantity", "comment": "The quantity of the subscription, if the line item is a subscription or a proration."}, "subscription_id": {"type": "text", "index": 12, "name": "subscription_id", "comment": "The ID of the subscription that the invoice item pertains to, if any."}, "subscription_item_id": {"type": "text", "index": 13, "name": "subscription_item_id", "comment": "The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription."}, "type": {"type": "integer", "index": 14, "name": "type", "comment": "A string identifying the type of the source of this line item, either an invoice item or a subscription."}, "unique_invoice_line_item_id": {"type": "text", "index": 15, "name": "unique_invoice_line_item_id", "comment": "A unique id generated for old invoice line item ID's from a past version of the API"}, "period_start": {"type": "timestamp without time zone", "index": 16, "name": "period_start", "comment": "Start of the usage period during which invoice items were added to this invoice."}, "period_end": {"type": "timestamp without time zone", "index": 17, "name": "period_end", "comment": "End of the usage period during which invoice items were added to this invoice."}, "invoice_created_at": {"type": "timestamp without time zone", "index": 18, "name": "invoice_created_at", "comment": "Timestamp of when the invoice was created."}, "invoice_status": {"type": "text", "index": 19, "name": "invoice_status", "comment": "Current status of the invoice."}, "invoice_due_date": {"type": "timestamp without time zone", "index": 20, "name": "invoice_due_date", "comment": "Date when payment for the invoice is due."}, "invoice_amount_due": {"type": "bigint", "index": 21, "name": "invoice_amount_due", "comment": "Final amount due at this time for this invoice. If the invoice\u2019s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "invoice_amount_paid": {"type": "bigint", "index": 22, "name": "invoice_amount_paid", "comment": "The amount, if any, that the customer has paid on the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "invoice_subtotal": {"type": "bigint", "index": 23, "name": "invoice_subtotal", "comment": "The amount of the invoice before discounts and taxes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "invoice_tax": {"type": "bigint", "index": 24, "name": "invoice_tax", "comment": "The amount of tax being charged in the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "invoice_total": {"type": "bigint", "index": 25, "name": "invoice_total", "comment": "The total of the invoice after discounts and taxes."}, "connected_account_id": {"type": "integer", "index": 26, "name": "connected_account_id", "comment": "The ID of the account connected to the charge."}, "customer_id": {"type": "text", "index": 27, "name": "customer_id", "comment": "The associated customer reference."}, "subscription_billing": {"type": "text", "index": 28, "name": "subscription_billing", "comment": "How the subscription is billed"}, "subscription_start_date": {"type": "timestamp without time zone", "index": 29, "name": "subscription_start_date", "comment": "The start date of the subscription"}, "subscription_ended_at": {"type": "timestamp without time zone", "index": 30, "name": "subscription_ended_at", "comment": "The end date of the subscription"}, "price_plan_is_active": {"type": "boolean", "index": 31, "name": "price_plan_is_active", "comment": "Boolean indicating if the plan or price is active (true) or in-active (false)."}, "price_plan_amount": {"type": "integer", "index": 32, "name": "price_plan_amount", "comment": "The unit amount in currency units to be charged, represented as a whole integer if possible. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "price_plan_interval": {"type": "text", "index": 33, "name": "price_plan_interval", "comment": "The frequency at which a subscription is billed. One of day, week, month or year."}, "price_plan_interval_count": {"type": "integer", "index": 34, "name": "price_plan_interval_count", "comment": "The number of intervals between subscription billings. For example, interval_count=3 bills every 3 months."}, "price_plan_nickname": {"type": "text", "index": 35, "name": "price_plan_nickname", "comment": "A brief description of the plan or price, hidden from customers."}, "price_plan_product_id": {"type": "text", "index": 36, "name": "price_plan_product_id", "comment": "Reference to the product this price or plan is about."}, "source_relation": {"type": "text", "index": 37, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__invoice_line_item_details"}, "model.stripe.stripe__line_item_enhanced": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__line_item_enhanced", "database": "postgres", "comment": "This model constructs a comprehensive, denormalized analytical table that enables reporting on key revenue, subscription, customer, and product metrics from your billing platform. It\u2019s designed to align with the schema of the `*__line_item_enhanced` model found in Stripe, Recharge, Recurly, Shopify, and Zuora, offering standardized reporting across various billing platforms. To see the kinds of insights this model can generate, explore example visualizations in the [Fivetran Billing Model Streamlit App](https://fivetran-billing-model.streamlit.app/). Visit the app for more details.", "owner": "postgres"}, "columns": {"header_id": {"type": "character varying(500)", "index": 1, "name": "header_id", "comment": "Id of corresponding invoice."}, "line_item_id": {"type": "text", "index": 2, "name": "line_item_id", "comment": "Invoice line item id."}, "line_item_index": {"type": "bigint", "index": 3, "name": "line_item_index", "comment": "Unique index of each line item id for each invoice."}, "record_type": {"type": "text", "index": 4, "name": "record_type", "comment": "header or line_item"}, "created_at": {"type": "timestamp without time zone", "index": 5, "name": "created_at", "comment": "When the invoice was created"}, "currency": {"type": "text", "index": 6, "name": "currency", "comment": "Currency used in the invoice."}, "header_status": {"type": "text", "index": 7, "name": "header_status", "comment": "Status of the invoice."}, "product_id": {"type": "text", "index": 8, "name": "product_id", "comment": "Product ID"}, "product_name": {"type": "text", "index": 9, "name": "product_name", "comment": "Product name"}, "transaction_type": {"type": "text", "index": 10, "name": "transaction_type", "comment": "Balance transaction type. If refunds and charges are tied to one invoice, it's designated as 'charge + refund'. If a charge isn't tied to a refund, it's designated as 'payment intent + refund'. Otherwise, it's just 'charge'."}, "billing_type": {"type": "text", "index": 11, "name": "billing_type", "comment": "Type of invoice line item."}, "product_type": {"type": "text", "index": 12, "name": "product_type", "comment": "Product type"}, "quantity": {"type": "double precision", "index": 13, "name": "quantity", "comment": "The number of units of this line item."}, "unit_amount": {"type": "double precision", "index": 14, "name": "unit_amount", "comment": "Amount per unit."}, "discount_amount": {"type": "numeric(28,6)", "index": 15, "name": "discount_amount", "comment": "The discount amount associated with this invoice."}, "tax_amount": {"type": "numeric(28,6)", "index": 16, "name": "tax_amount", "comment": "The tax amount associated with this invoice."}, "total_amount": {"type": "double precision", "index": 17, "name": "total_amount", "comment": "Invoice total"}, "payment_id": {"type": "text", "index": 18, "name": "payment_id", "comment": "Payment intent ID"}, "payment_method_id": {"type": "text", "index": 19, "name": "payment_method_id", "comment": "Payment method ID"}, "payment_method": {"type": "text", "index": 20, "name": "payment_method", "comment": "Payment method type"}, "payment_at": {"type": "timestamp without time zone", "index": 21, "name": "payment_at", "comment": "Charge created date"}, "fee_amount": {"type": "numeric", "index": 22, "name": "fee_amount", "comment": "Balance transaction fee from charges and refunds."}, "refund_amount": {"type": "numeric(28,6)", "index": 23, "name": "refund_amount", "comment": "Refund amount associated with this invoice."}, "subscription_id": {"type": "text", "index": 24, "name": "subscription_id", "comment": "Subscription associated with this invoice."}, "subscription_plan": {"type": "text", "index": 25, "name": "subscription_plan", "comment": "The product associated with the subscription item. In Stripe a subscription plan would best be attributed to the product which the price/plan is of the subscription is linked."}, "subscription_period_started_at": {"type": "timestamp without time zone", "index": 26, "name": "subscription_period_started_at", "comment": "Subscription's current period start"}, "subscription_period_ended_at": {"type": "timestamp without time zone", "index": 27, "name": "subscription_period_ended_at", "comment": "Subscription's current period end"}, "subscription_status": {"type": "text", "index": 28, "name": "subscription_status", "comment": "Subscription status"}, "customer_id": {"type": "text", "index": 29, "name": "customer_id", "comment": "Customer associated with this invoice."}, "customer_created_at": {"type": "timestamp without time zone", "index": 30, "name": "customer_created_at", "comment": "Date which the customer was created in Stripe."}, "customer_level": {"type": "text", "index": 31, "name": "customer_level", "comment": "Whether 'account' or 'customer'. For Stripe, the level is 'customer'."}, "customer_name": {"type": "text", "index": 32, "name": "customer_name", "comment": "Customer name"}, "customer_company": {"type": "text", "index": 33, "name": "customer_company", "comment": "Associated account's company if applicable."}, "customer_email": {"type": "text", "index": 34, "name": "customer_email", "comment": "Customer email"}, "customer_city": {"type": "text", "index": 35, "name": "customer_city", "comment": "Customer city"}, "customer_country": {"type": "text", "index": 36, "name": "customer_country", "comment": "Customer country"}, "source_relation": {"type": "text", "index": 37, "name": "source_relation", "comment": "The source of the record if the unioning functionality is being used. If not this field will be empty."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__line_item_enhanced"}, "model.stripe.stripe__payout_itemized_3": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__payout_itemized_3", "database": "postgres", "comment": "Modeled after the [titular report](https://stripe.com/docs/reports/balance#schema-payouts-itemized-3) from Stripe, each record represents a payout and its additional details such as expected arrival date and current status. This report belongs to the class of Balance reports. The Balance report is similar to a bank statement, helping you to reconcile your Stripe balance at the end of the month. The Balance report is most useful if you treat Stripe like a bank account for accounting purposes, reconciling the balance at the end of each month. If you have automatic payouts enabled and prefer to reconcile the transactions settled in each payout, see the Payout reconciliation report instead. The Payout Itemized report information on each payout made to your bank account.", "owner": "postgres"}, "columns": {"payout_id": {"type": "text", "index": 1, "name": "payout_id", "comment": "The Stripe object to which this transaction is related."}, "effective_at": {"type": "timestamp without time zone", "index": 2, "name": "effective_at", "comment": "For automatic payouts, this is the date we expect funds to arrive in your bank account. For manual payouts, this is the date the payout was initiated. In both cases, it's the date the paid-out funds are deducted from your Stripe balance. All dates in the requested timezone, or UTC if not provided."}, "currency": {"type": "text", "index": 3, "name": "currency", "comment": "Three-letter ISO code for the currency in which gross, fee and net are defined."}, "balance_transaction_id": {"type": "text", "index": 4, "name": "balance_transaction_id", "comment": "Unique identifier for the balance transaction. Specifically for Payout, the relation is the ID of the balance transaction that describes the impact of this payout on your account balance."}, "gross": {"type": "integer", "index": 5, "name": "gross", "comment": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "fee": {"type": "integer", "index": 6, "name": "fee", "comment": "Fees paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "net": {"type": "integer", "index": 7, "name": "net", "comment": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "reporting_category": {"type": "text", "index": 8, "name": "reporting_category", "comment": "Reporting Category is a new categorization of balance transactions, meant to improve on the current type field."}, "description": {"type": "text", "index": 9, "name": "description", "comment": "An arbitrary string attached to the balance transaction. Often useful for displaying to users."}, "payout_expected_arrival_date": {"type": "timestamp without time zone", "index": 10, "name": "payout_expected_arrival_date", "comment": "Date the payout is scheduled to arrive in the bank. This factors in delays like weekends or bank holidays."}, "payout_status": {"type": "text", "index": 11, "name": "payout_status", "comment": "Current status of the payout (paid, pending, in_transit, canceled or failed). A payout will be pending until it is submitted to the bank, at which point it becomes in_transit. It will then change to paid if the transaction goes through. If it does not go through successfully, its status will change to failed or canceled."}, "payout_reversed_at": {"type": "timestamp without time zone", "index": 12, "name": "payout_reversed_at", "comment": "Typically this field will be empty. However, if the payout's status is canceled or failed, this field will reflect the time at which it entered that status. Times in the requested timezone, or UTC if not provided."}, "payout_type": {"type": "text", "index": 13, "name": "payout_type", "comment": "Can be bank_account or card."}, "payout_description": {"type": "text", "index": 14, "name": "payout_description", "comment": "An arbitrary string attached to the payout. Often useful for displaying to users."}, "payout_destination_id": {"type": "character varying(500)", "index": 15, "name": "payout_destination_id", "comment": "ID of the bank account or card the payout was sent to."}, "source_relation": {"type": "text", "index": 16, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__payout_itemized_3"}, "model.stripe.stripe__subscription_details": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__subscription_details", "database": "postgres", "comment": "Each record represents a subscription, enriched with customer details and payment aggregations.", "owner": "postgres"}, "columns": {"subscription_id": {"type": "text", "index": 1, "name": "subscription_id", "comment": "Unique identifier for the subscription object."}, "customer_id": {"type": "text", "index": 2, "name": "customer_id", "comment": "ID of the customer who owns the subscription."}, "customer_description": {"type": "character varying(500)", "index": 3, "name": "customer_description", "comment": "Description of the customer who owns the subscription."}, "customer_email": {"type": "integer", "index": 4, "name": "customer_email", "comment": "Email of the customer who owns the subscription."}, "status": {"type": "text", "index": 5, "name": "status", "comment": "Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid."}, "start_date_at": {"type": "timestamp without time zone", "index": 6, "name": "start_date_at", "comment": "Date when the subscription was first created. The date might differ from the created date due to backdating."}, "ended_at": {"type": "timestamp without time zone", "index": 7, "name": "ended_at", "comment": "If the subscription has ended, the date the subscription ended."}, "billing": {"type": "text", "index": 8, "name": "billing", "comment": "How the description is billed."}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 9, "name": "billing_cycle_anchor", "comment": "Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices."}, "canceled_at": {"type": "timestamp without time zone", "index": 10, "name": "canceled_at", "comment": "If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with cancel_at_period_end, canceled_at will still reflect the date of the initial cancellation request, not the end of the subscription period when the subscription is automatically moved to a canceled state."}, "created_at": {"type": "timestamp without time zone", "index": 11, "name": "created_at", "comment": "Time at which the subscription object was created."}, "current_period_start": {"type": "timestamp without time zone", "index": 12, "name": "current_period_start", "comment": "Start of the current period that the subscription has been invoiced for."}, "current_period_end": {"type": "timestamp without time zone", "index": 13, "name": "current_period_end", "comment": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created."}, "days_until_due": {"type": "integer", "index": 14, "name": "days_until_due", "comment": "Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically."}, "is_cancel_at_period_end": {"type": "boolean", "index": 15, "name": "is_cancel_at_period_end", "comment": "If the subscription has been canceled with the at_period_end flag set to true, cancel_at_period_end on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period."}, "cancel_at": {"type": "timestamp without time zone", "index": 16, "name": "cancel_at", "comment": "A date in the future at which the subscription will automatically get canceled"}, "number_invoices_generated": {"type": "bigint", "index": 17, "name": "number_invoices_generated", "comment": "Number of invoices that have been generated for this subscription."}, "total_amount_billed": {"type": "numeric", "index": 18, "name": "total_amount_billed", "comment": "The total amount that has been billed to the customer for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_amount_paid": {"type": "numeric", "index": 19, "name": "total_amount_paid", "comment": "The total amount paid by the customer for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_amount_remaining": {"type": "numeric", "index": 20, "name": "total_amount_remaining", "comment": "Any outstanding balance for invoices related to this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "most_recent_invoice_created_at": {"type": "timestamp without time zone", "index": 21, "name": "most_recent_invoice_created_at", "comment": "The timestamp of the most recent invoice for this subscription created."}, "average_invoice_amount": {"type": "numeric", "index": 22, "name": "average_invoice_amount", "comment": "The average amount of invoices generated for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "average_line_item_amount": {"type": "numeric", "index": 23, "name": "average_line_item_amount", "comment": "The average sum of the line items for invoices generated for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "avg_num_line_items": {"type": "numeric", "index": 24, "name": "avg_num_line_items", "comment": "The average number of line items for invoices generated for this subscription"}, "source_relation": {"type": "text", "index": 25, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__subscription_details"}, "model.stripe.stripe__subscription_item_mrr_report": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__subscription_item_mrr_report", "database": "postgres", "comment": "Each record represents a subscription item for a given month with monthly recurring revenue (MRR) metrics and movement classification. Tracks MRR changes over time, classifying each month as new, expansion, contraction, churned, reactivation, or unchanged.", "owner": "postgres"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}, "subscription_item_id": {"type": "text", "index": 2, "name": "subscription_item_id", "comment": "Unique identifier for the subscription item."}, "subscription_id": {"type": "text", "index": 3, "name": "subscription_id", "comment": "Unique identifier for the subscription."}, "customer_id": {"type": "text", "index": 4, "name": "customer_id", "comment": "ID of the customer who owns the subscription."}, "product_id": {"type": "text", "index": 5, "name": "product_id", "comment": "ID of the product associated with this subscription item."}, "price_plan_id": {"type": "text", "index": 6, "name": "price_plan_id", "comment": "ID of the price plan associated with this subscription item."}, "subscription_status": {"type": "text", "index": 7, "name": "subscription_status", "comment": "Current status of the subscription. Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid."}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "subscription_month": {"type": "date", "index": 9, "name": "subscription_month", "comment": "Month of the subscription period."}, "subscription_year": {"type": "date", "index": 10, "name": "subscription_year", "comment": "Year of the subscription period."}, "month_contract_mrr": {"type": "numeric", "index": 11, "name": "month_contract_mrr", "comment": "Contracted monthly recurring revenue for this subscription item for this subscription month before discounts are applied. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "month_discount_applied": {"type": "numeric", "index": 12, "name": "month_discount_applied", "comment": "Discount amount applied to this subscription item for this month, allocated proportionally based on the item's share of the subscription's total contracted MRR. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "month_billed_mrr": {"type": "numeric", "index": 13, "name": "month_billed_mrr", "comment": "Net monthly recurring revenue for this subscription item for this subscription month after discounts are applied (month_contract_mrr minus month_discount_applied). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "prior_month_contract_mrr": {"type": "numeric", "index": 14, "name": "prior_month_contract_mrr", "comment": "Contracted monthly recurring revenue for this subscription item for the previous subscription month before discounts are applied. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "item_month_number": {"type": "bigint", "index": 15, "name": "item_month_number", "comment": "Sequential month number for this subscription item, starting from 1 for the first month."}, "contract_mrr_type": {"type": "text", "index": 16, "name": "contract_mrr_type", "comment": "Classification of the contracted MRR change for this month based on month_contract_mrr. Possible values are new (first month with MRR), expansion (MRR increased), contraction (MRR decreased but still positive), churned (MRR went to zero), reactivation (MRR returned after being zero for at least 3 months), unchanged (MRR stayed the same), or unknown."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__subscription_item_mrr_report"}}, "sources": {"source.stripe.stripe.account": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "account_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "business_profile_mcc": {"type": "integer", "index": 3, "name": "business_profile_mcc", "comment": null}, "business_profile_name": {"type": "text", "index": 4, "name": "business_profile_name", "comment": null}, "business_profile_product_description": {"type": "integer", "index": 5, "name": "business_profile_product_description", "comment": null}, "business_profile_support_address_city": {"type": "text", "index": 6, "name": "business_profile_support_address_city", "comment": null}, "business_profile_support_address_country": {"type": "text", "index": 7, "name": "business_profile_support_address_country", "comment": null}, "business_profile_support_address_line_1": {"type": "text", "index": 8, "name": "business_profile_support_address_line_1", "comment": null}, "business_profile_support_address_line_2": {"type": "text", "index": 9, "name": "business_profile_support_address_line_2", "comment": null}, "business_profile_support_address_postal_code": {"type": "integer", "index": 10, "name": "business_profile_support_address_postal_code", "comment": null}, "business_profile_support_address_state": {"type": "text", "index": 11, "name": "business_profile_support_address_state", "comment": null}, "business_profile_support_email": {"type": "text", "index": 12, "name": "business_profile_support_email", "comment": null}, "business_profile_support_phone": {"type": "integer", "index": 13, "name": "business_profile_support_phone", "comment": null}, "business_profile_support_url": {"type": "text", "index": 14, "name": "business_profile_support_url", "comment": null}, "business_profile_url": {"type": "text", "index": 15, "name": "business_profile_url", "comment": null}, "business_type": {"type": "integer", "index": 16, "name": "business_type", "comment": null}, "capabilities_afterpay_clearpay_payments": {"type": "text", "index": 17, "name": "capabilities_afterpay_clearpay_payments", "comment": null}, "capabilities_au_becs_debit_payments": {"type": "integer", "index": 18, "name": "capabilities_au_becs_debit_payments", "comment": null}, "capabilities_bacs_debit_payments": {"type": "integer", "index": 19, "name": "capabilities_bacs_debit_payments", "comment": null}, "capabilities_bancontact_payments": {"type": "text", "index": 20, "name": "capabilities_bancontact_payments", "comment": null}, "capabilities_card_issuing": {"type": "integer", "index": 21, "name": "capabilities_card_issuing", "comment": null}, "capabilities_card_payments": {"type": "text", "index": 22, "name": "capabilities_card_payments", "comment": null}, "capabilities_cartes_bancaires_payments": {"type": "integer", "index": 23, "name": "capabilities_cartes_bancaires_payments", "comment": null}, "capabilities_eps_payments": {"type": "text", "index": 24, "name": "capabilities_eps_payments", "comment": null}, "capabilities_fpx_payments": {"type": "integer", "index": 25, "name": "capabilities_fpx_payments", "comment": null}, "capabilities_giropay_payments": {"type": "text", "index": 26, "name": "capabilities_giropay_payments", "comment": null}, "capabilities_grabpay_payments": {"type": "integer", "index": 27, "name": "capabilities_grabpay_payments", "comment": null}, "capabilities_ideal_payments": {"type": "text", "index": 28, "name": "capabilities_ideal_payments", "comment": null}, "capabilities_jcb_payments": {"type": "integer", "index": 29, "name": "capabilities_jcb_payments", "comment": null}, "capabilities_legacy_payments": {"type": "integer", "index": 30, "name": "capabilities_legacy_payments", "comment": null}, "capabilities_oxxo_payments": {"type": "integer", "index": 31, "name": "capabilities_oxxo_payments", "comment": null}, "capabilities_p_24_payments": {"type": "text", "index": 32, "name": "capabilities_p_24_payments", "comment": null}, "capabilities_platform_payments": {"type": "text", "index": 33, "name": "capabilities_platform_payments", "comment": null}, "capabilities_sepa_debit_payments": {"type": "text", "index": 34, "name": "capabilities_sepa_debit_payments", "comment": null}, "capabilities_sofort_payments": {"type": "text", "index": 35, "name": "capabilities_sofort_payments", "comment": null}, "capabilities_tax_reporting_us_1099_k": {"type": "integer", "index": 36, "name": "capabilities_tax_reporting_us_1099_k", "comment": null}, "capabilities_tax_reporting_us_1099_misc": {"type": "integer", "index": 37, "name": "capabilities_tax_reporting_us_1099_misc", "comment": null}, "capabilities_transfers": {"type": "integer", "index": 38, "name": "capabilities_transfers", "comment": null}, "charges_enabled": {"type": "boolean", "index": 39, "name": "charges_enabled", "comment": null}, "company_address_city": {"type": "integer", "index": 40, "name": "company_address_city", "comment": null}, "company_address_country": {"type": "integer", "index": 41, "name": "company_address_country", "comment": null}, "company_address_kana_city": {"type": "integer", "index": 42, "name": "company_address_kana_city", "comment": null}, "company_address_kana_country": {"type": "integer", "index": 43, "name": "company_address_kana_country", "comment": null}, "company_address_kana_line_1": {"type": "integer", "index": 44, "name": "company_address_kana_line_1", "comment": null}, "company_address_kana_line_2": {"type": "integer", "index": 45, "name": "company_address_kana_line_2", "comment": null}, "company_address_kana_postal_code": {"type": "integer", "index": 46, "name": "company_address_kana_postal_code", "comment": null}, "company_address_kana_state": {"type": "integer", "index": 47, "name": "company_address_kana_state", "comment": null}, "company_address_kana_town": {"type": "integer", "index": 48, "name": "company_address_kana_town", "comment": null}, "company_address_kanji_city": {"type": "integer", "index": 49, "name": "company_address_kanji_city", "comment": null}, "company_address_kanji_country": {"type": "integer", "index": 50, "name": "company_address_kanji_country", "comment": null}, "company_address_kanji_line_1": {"type": "integer", "index": 51, "name": "company_address_kanji_line_1", "comment": null}, "company_address_kanji_line_2": {"type": "integer", "index": 52, "name": "company_address_kanji_line_2", "comment": null}, "company_address_kanji_postal_code": {"type": "integer", "index": 53, "name": "company_address_kanji_postal_code", "comment": null}, "company_address_kanji_state": {"type": "integer", "index": 54, "name": "company_address_kanji_state", "comment": null}, "company_address_kanji_town": {"type": "integer", "index": 55, "name": "company_address_kanji_town", "comment": null}, "company_address_line_1": {"type": "integer", "index": 56, "name": "company_address_line_1", "comment": null}, "company_address_line_2": {"type": "integer", "index": 57, "name": "company_address_line_2", "comment": null}, "company_address_postal_code": {"type": "integer", "index": 58, "name": "company_address_postal_code", "comment": null}, "company_address_state": {"type": "integer", "index": 59, "name": "company_address_state", "comment": null}, "company_directors_provided": {"type": "integer", "index": 60, "name": "company_directors_provided", "comment": null}, "company_executives_provided": {"type": "integer", "index": 61, "name": "company_executives_provided", "comment": null}, "company_name": {"type": "integer", "index": 62, "name": "company_name", "comment": null}, "company_name_kana": {"type": "integer", "index": 63, "name": "company_name_kana", "comment": null}, "company_name_kanji": {"type": "integer", "index": 64, "name": "company_name_kanji", "comment": null}, "company_owners_provided": {"type": "integer", "index": 65, "name": "company_owners_provided", "comment": null}, "company_phone": {"type": "integer", "index": 66, "name": "company_phone", "comment": null}, "company_structure": {"type": "integer", "index": 67, "name": "company_structure", "comment": null}, "company_tax_id_provided": {"type": "integer", "index": 68, "name": "company_tax_id_provided", "comment": null}, "company_tax_id_registrar": {"type": "integer", "index": 69, "name": "company_tax_id_registrar", "comment": null}, "company_vat_id_provided": {"type": "integer", "index": 70, "name": "company_vat_id_provided", "comment": null}, "company_verification_document_back": {"type": "integer", "index": 71, "name": "company_verification_document_back", "comment": null}, "company_verification_document_details": {"type": "integer", "index": 72, "name": "company_verification_document_details", "comment": null}, "company_verification_document_details_code": {"type": "integer", "index": 73, "name": "company_verification_document_details_code", "comment": null}, "company_verification_document_front": {"type": "integer", "index": 74, "name": "company_verification_document_front", "comment": null}, "country": {"type": "text", "index": 75, "name": "country", "comment": null}, "created": {"type": "timestamp without time zone", "index": 76, "name": "created", "comment": null}, "default_currency": {"type": "text", "index": 77, "name": "default_currency", "comment": null}, "details_submitted": {"type": "boolean", "index": 78, "name": "details_submitted", "comment": null}, "email": {"type": "text", "index": 79, "name": "email", "comment": null}, "individual_id": {"type": "integer", "index": 80, "name": "individual_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 81, "name": "is_deleted", "comment": null}, "metadata": {"type": "integer", "index": 82, "name": "metadata", "comment": null}, "payouts_enabled": {"type": "boolean", "index": 83, "name": "payouts_enabled", "comment": null}, "requirements_current_deadline": {"type": "integer", "index": 84, "name": "requirements_current_deadline", "comment": null}, "requirements_currently_due": {"type": "integer", "index": 85, "name": "requirements_currently_due", "comment": null}, "requirements_disabled_reason": {"type": "integer", "index": 86, "name": "requirements_disabled_reason", "comment": null}, "requirements_errors": {"type": "integer", "index": 87, "name": "requirements_errors", "comment": null}, "requirements_eventually_due": {"type": "integer", "index": 88, "name": "requirements_eventually_due", "comment": null}, "requirements_past_due": {"type": "integer", "index": 89, "name": "requirements_past_due", "comment": null}, "requirements_pending_verification": {"type": "integer", "index": 90, "name": "requirements_pending_verification", "comment": null}, "settings_branding_icon": {"type": "integer", "index": 91, "name": "settings_branding_icon", "comment": null}, "settings_branding_logo": {"type": "text", "index": 92, "name": "settings_branding_logo", "comment": null}, "settings_branding_primary_color": {"type": "text", "index": 93, "name": "settings_branding_primary_color", "comment": null}, "settings_card_payments_decline_on_avs_failure": {"type": "integer", "index": 94, "name": "settings_card_payments_decline_on_avs_failure", "comment": null}, "settings_card_payments_decline_on_cvc_failure": {"type": "integer", "index": 95, "name": "settings_card_payments_decline_on_cvc_failure", "comment": null}, "settings_card_payments_statement_descriptor_prefix": {"type": "integer", "index": 96, "name": "settings_card_payments_statement_descriptor_prefix", "comment": null}, "settings_dashboard_display_name": {"type": "text", "index": 97, "name": "settings_dashboard_display_name", "comment": null}, "settings_dashboard_timezone": {"type": "text", "index": 98, "name": "settings_dashboard_timezone", "comment": null}, "settings_payments_statement_descriptor": {"type": "text", "index": 99, "name": "settings_payments_statement_descriptor", "comment": null}, "settings_payments_statement_descriptor_kana": {"type": "integer", "index": 100, "name": "settings_payments_statement_descriptor_kana", "comment": null}, "settings_payments_statement_descriptor_kanji": {"type": "integer", "index": 101, "name": "settings_payments_statement_descriptor_kanji", "comment": null}, "settings_payouts_debit_negative_balances": {"type": "boolean", "index": 102, "name": "settings_payouts_debit_negative_balances", "comment": null}, "settings_payouts_schedule_delay_days": {"type": "integer", "index": 103, "name": "settings_payouts_schedule_delay_days", "comment": null}, "settings_payouts_schedule_interval": {"type": "text", "index": 104, "name": "settings_payouts_schedule_interval", "comment": null}, "settings_payouts_schedule_monthly_anchor": {"type": "integer", "index": 105, "name": "settings_payouts_schedule_monthly_anchor", "comment": null}, "settings_payouts_schedule_weekly_anchor": {"type": "integer", "index": 106, "name": "settings_payouts_schedule_weekly_anchor", "comment": null}, "settings_payouts_statement_descriptor": {"type": "integer", "index": 107, "name": "settings_payouts_statement_descriptor", "comment": null}, "tos_acceptance_date": {"type": "integer", "index": 108, "name": "tos_acceptance_date", "comment": null}, "tos_acceptance_ip": {"type": "integer", "index": 109, "name": "tos_acceptance_ip", "comment": null}, "tos_acceptance_user_agent": {"type": "integer", "index": 110, "name": "tos_acceptance_user_agent", "comment": null}, "type": {"type": "text", "index": 111, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.account"}, "source.stripe.stripe.balance_transaction": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "balance_transaction_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "available_on": {"type": "timestamp without time zone", "index": 4, "name": "available_on", "comment": null}, "connected_account_id": {"type": "integer", "index": 5, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "exchange_rate": {"type": "integer", "index": 9, "name": "exchange_rate", "comment": null}, "fee": {"type": "integer", "index": 10, "name": "fee", "comment": null}, "net": {"type": "integer", "index": 11, "name": "net", "comment": null}, "source": {"type": "text", "index": 12, "name": "source", "comment": null}, "status": {"type": "text", "index": 13, "name": "status", "comment": null}, "type": {"type": "text", "index": 14, "name": "type", "comment": null}, "payout_id": {"type": "text", "index": 15, "name": "payout_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.balance_transaction"}, "source.stripe.stripe.card": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "card_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "address_city": {"type": "integer", "index": 4, "name": "address_city", "comment": null}, "address_country": {"type": "integer", "index": 5, "name": "address_country", "comment": null}, "address_line_1": {"type": "integer", "index": 6, "name": "address_line_1", "comment": null}, "address_line_1_check": {"type": "integer", "index": 7, "name": "address_line_1_check", "comment": null}, "address_line_2": {"type": "integer", "index": 8, "name": "address_line_2", "comment": null}, "address_state": {"type": "integer", "index": 9, "name": "address_state", "comment": null}, "address_zip": {"type": "integer", "index": 10, "name": "address_zip", "comment": null}, "address_zip_check": {"type": "integer", "index": 11, "name": "address_zip_check", "comment": null}, "brand": {"type": "text", "index": 12, "name": "brand", "comment": null}, "connected_account_id": {"type": "integer", "index": 13, "name": "connected_account_id", "comment": null}, "country": {"type": "text", "index": 14, "name": "country", "comment": null}, "created": {"type": "timestamp without time zone", "index": 15, "name": "created", "comment": null}, "currency": {"type": "text", "index": 16, "name": "currency", "comment": null}, "customer_id": {"type": "integer", "index": 17, "name": "customer_id", "comment": null}, "cvc_check": {"type": "text", "index": 18, "name": "cvc_check", "comment": null}, "dynamic_last_4": {"type": "integer", "index": 19, "name": "dynamic_last_4", "comment": null}, "exp_month": {"type": "integer", "index": 20, "name": "exp_month", "comment": null}, "exp_year": {"type": "integer", "index": 21, "name": "exp_year", "comment": null}, "fingerprint": {"type": "text", "index": 22, "name": "fingerprint", "comment": null}, "funding": {"type": "text", "index": 23, "name": "funding", "comment": null}, "is_deleted": {"type": "boolean", "index": 24, "name": "is_deleted", "comment": null}, "last_4": {"type": "integer", "index": 25, "name": "last_4", "comment": null}, "name": {"type": "integer", "index": 26, "name": "name", "comment": null}, "network": {"type": "text", "index": 27, "name": "network", "comment": null}, "recipient": {"type": "integer", "index": 28, "name": "recipient", "comment": null}, "tokenization_method": {"type": "integer", "index": 29, "name": "tokenization_method", "comment": null}, "metadata": {"type": "text", "index": 30, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.card"}, "source.stripe.stripe.charge": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "charge_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "bigint", "index": 3, "name": "amount", "comment": null}, "amount_refunded": {"type": "bigint", "index": 4, "name": "amount_refunded", "comment": null}, "application": {"type": "text", "index": 5, "name": "application", "comment": null}, "application_fee_amount": {"type": "bigint", "index": 6, "name": "application_fee_amount", "comment": null}, "balance_transaction_id": {"type": "character varying(500)", "index": 7, "name": "balance_transaction_id", "comment": null}, "bank_account_id": {"type": "integer", "index": 8, "name": "bank_account_id", "comment": null}, "captured": {"type": "boolean", "index": 9, "name": "captured", "comment": null}, "card_id": {"type": "text", "index": 10, "name": "card_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 11, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "text", "index": 13, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "description": {"type": "text", "index": 15, "name": "description", "comment": null}, "destination": {"type": "integer", "index": 16, "name": "destination", "comment": null}, "failure_code": {"type": "text", "index": 17, "name": "failure_code", "comment": null}, "failure_message": {"type": "text", "index": 18, "name": "failure_message", "comment": null}, "fraud_details_stripe_report": {"type": "integer", "index": 19, "name": "fraud_details_stripe_report", "comment": null}, "fraud_details_user_report": {"type": "integer", "index": 20, "name": "fraud_details_user_report", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 21, "name": "invoice_id", "comment": null}, "livemode": {"type": "boolean", "index": 22, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 23, "name": "metadata", "comment": null}, "on_behalf_of": {"type": "integer", "index": 24, "name": "on_behalf_of", "comment": null}, "outcome_network_status": {"type": "text", "index": 25, "name": "outcome_network_status", "comment": null}, "outcome_reason": {"type": "text", "index": 26, "name": "outcome_reason", "comment": null}, "outcome_risk_level": {"type": "text", "index": 27, "name": "outcome_risk_level", "comment": null}, "outcome_risk_score": {"type": "double precision", "index": 28, "name": "outcome_risk_score", "comment": null}, "outcome_seller_message": {"type": "text", "index": 29, "name": "outcome_seller_message", "comment": null}, "outcome_type": {"type": "text", "index": 30, "name": "outcome_type", "comment": null}, "paid": {"type": "boolean", "index": 31, "name": "paid", "comment": null}, "payment_intent_id": {"type": "text", "index": 32, "name": "payment_intent_id", "comment": null}, "receipt_email": {"type": "text", "index": 33, "name": "receipt_email", "comment": null}, "receipt_number": {"type": "integer", "index": 34, "name": "receipt_number", "comment": null}, "receipt_url": {"type": "integer", "index": 35, "name": "receipt_url", "comment": null}, "refunded": {"type": "boolean", "index": 36, "name": "refunded", "comment": null}, "shipping_address_city": {"type": "integer", "index": 37, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "integer", "index": 38, "name": "shipping_address_country", "comment": null}, "shipping_address_line_1": {"type": "integer", "index": 39, "name": "shipping_address_line_1", "comment": null}, "shipping_address_line_2": {"type": "integer", "index": 40, "name": "shipping_address_line_2", "comment": null}, "shipping_address_postal_code": {"type": "integer", "index": 41, "name": "shipping_address_postal_code", "comment": null}, "shipping_address_state": {"type": "integer", "index": 42, "name": "shipping_address_state", "comment": null}, "shipping_carrier": {"type": "integer", "index": 43, "name": "shipping_carrier", "comment": null}, "shipping_name": {"type": "integer", "index": 44, "name": "shipping_name", "comment": null}, "shipping_phone": {"type": "integer", "index": 45, "name": "shipping_phone", "comment": null}, "shipping_tracking_number": {"type": "integer", "index": 46, "name": "shipping_tracking_number", "comment": null}, "source_id": {"type": "integer", "index": 47, "name": "source_id", "comment": null}, "source_transfer": {"type": "integer", "index": 48, "name": "source_transfer", "comment": null}, "statement_descriptor": {"type": "integer", "index": 49, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 50, "name": "status", "comment": null}, "transfer_data_destination": {"type": "integer", "index": 51, "name": "transfer_data_destination", "comment": null}, "transfer_group": {"type": "integer", "index": 52, "name": "transfer_group", "comment": null}, "transfer_id": {"type": "integer", "index": 53, "name": "transfer_id", "comment": null}, "calculated_statement_descriptor": {"type": "text", "index": 54, "name": "calculated_statement_descriptor", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.charge"}, "source.stripe.stripe.coupon": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "coupon_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "amount_off": {"type": "integer", "index": 2, "name": "amount_off", "comment": null}, "created": {"type": "timestamp without time zone", "index": 3, "name": "created", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "duration": {"type": "text", "index": 5, "name": "duration", "comment": null}, "duration_in_months": {"type": "integer", "index": 6, "name": "duration_in_months", "comment": null}, "livemode": {"type": "boolean", "index": 7, "name": "livemode", "comment": null}, "max_redemptions": {"type": "integer", "index": 8, "name": "max_redemptions", "comment": null}, "metadata": {"type": "integer", "index": 9, "name": "metadata", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "percent_off": {"type": "double precision", "index": 11, "name": "percent_off", "comment": null}, "redeem_by": {"type": "timestamp without time zone", "index": 12, "name": "redeem_by", "comment": null}, "times_redeemed": {"type": "integer", "index": 13, "name": "times_redeemed", "comment": null}, "valid": {"type": "boolean", "index": 14, "name": "valid", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 15, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.coupon"}, "source.stripe.stripe.credit_note": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "credit_note_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "amount": {"type": "integer", "index": 2, "name": "amount", "comment": null}, "created": {"type": "timestamp without time zone", "index": 3, "name": "created", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "discount_amount": {"type": "integer", "index": 5, "name": "discount_amount", "comment": null}, "subtotal": {"type": "integer", "index": 6, "name": "subtotal", "comment": null}, "total": {"type": "integer", "index": 7, "name": "total", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "memo": {"type": "integer", "index": 9, "name": "memo", "comment": null}, "metadata": {"type": "text", "index": 10, "name": "metadata", "comment": null}, "number": {"type": "text", "index": 11, "name": "number", "comment": null}, "pdf": {"type": "text", "index": 12, "name": "pdf", "comment": null}, "reason": {"type": "integer", "index": 13, "name": "reason", "comment": null}, "status": {"type": "text", "index": 14, "name": "status", "comment": null}, "type": {"type": "text", "index": 15, "name": "type", "comment": null}, "voided_at": {"type": "timestamp without time zone", "index": 16, "name": "voided_at", "comment": null}, "customer_balance_transaction_id": {"type": "integer", "index": 17, "name": "customer_balance_transaction_id", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 18, "name": "invoice_id", "comment": null}, "refund_id": {"type": "text", "index": 19, "name": "refund_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 20, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.credit_note"}, "source.stripe.stripe.credit_note_line_item": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "credit_note_line_item_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"credit_note_id": {"type": "text", "index": 1, "name": "credit_note_id", "comment": null}, "id": {"type": "text", "index": 2, "name": "id", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "discount_amount": {"type": "integer", "index": 4, "name": "discount_amount", "comment": null}, "description": {"type": "text", "index": 5, "name": "description", "comment": null}, "livemode": {"type": "boolean", "index": 6, "name": "livemode", "comment": null}, "quantity": {"type": "integer", "index": 7, "name": "quantity", "comment": null}, "type": {"type": "text", "index": 8, "name": "type", "comment": null}, "unit_amount": {"type": "integer", "index": 9, "name": "unit_amount", "comment": null}, "unit_amount_decimal": {"type": "integer", "index": 10, "name": "unit_amount_decimal", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.credit_note_line_item"}, "source.stripe.stripe.customer": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "customer_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "account_balance": {"type": "integer", "index": 3, "name": "account_balance", "comment": null}, "address_city": {"type": "integer", "index": 4, "name": "address_city", "comment": null}, "address_country": {"type": "integer", "index": 5, "name": "address_country", "comment": null}, "address_line_1": {"type": "integer", "index": 6, "name": "address_line_1", "comment": null}, "address_line_2": {"type": "integer", "index": 7, "name": "address_line_2", "comment": null}, "address_postal_code": {"type": "integer", "index": 8, "name": "address_postal_code", "comment": null}, "address_state": {"type": "integer", "index": 9, "name": "address_state", "comment": null}, "balance": {"type": "integer", "index": 10, "name": "balance", "comment": null}, "bank_account_id": {"type": "text", "index": 11, "name": "bank_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "integer", "index": 13, "name": "currency", "comment": null}, "default_card_id": {"type": "integer", "index": 14, "name": "default_card_id", "comment": null}, "delinquent": {"type": "boolean", "index": 15, "name": "delinquent", "comment": null}, "description": {"type": "character varying(500)", "index": 16, "name": "description", "comment": null}, "email": {"type": "integer", "index": 17, "name": "email", "comment": null}, "invoice_prefix": {"type": "text", "index": 18, "name": "invoice_prefix", "comment": null}, "invoice_settings_default_payment_method": {"type": "integer", "index": 19, "name": "invoice_settings_default_payment_method", "comment": null}, "invoice_settings_footer": {"type": "integer", "index": 20, "name": "invoice_settings_footer", "comment": null}, "is_deleted": {"type": "boolean", "index": 21, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 22, "name": "livemode", "comment": null}, "name": {"type": "text", "index": 23, "name": "name", "comment": null}, "phone": {"type": "integer", "index": 24, "name": "phone", "comment": null}, "shipping_address_city": {"type": "integer", "index": 25, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "integer", "index": 26, "name": "shipping_address_country", "comment": null}, "shipping_address_line_1": {"type": "integer", "index": 27, "name": "shipping_address_line_1", "comment": null}, "shipping_address_line_2": {"type": "integer", "index": 28, "name": "shipping_address_line_2", "comment": null}, "shipping_address_postal_code": {"type": "integer", "index": 29, "name": "shipping_address_postal_code", "comment": null}, "shipping_address_state": {"type": "integer", "index": 30, "name": "shipping_address_state", "comment": null}, "shipping_carrier": {"type": "integer", "index": 31, "name": "shipping_carrier", "comment": null}, "shipping_name": {"type": "integer", "index": 32, "name": "shipping_name", "comment": null}, "shipping_phone": {"type": "integer", "index": 33, "name": "shipping_phone", "comment": null}, "shipping_tracking_number": {"type": "integer", "index": 34, "name": "shipping_tracking_number", "comment": null}, "source_id": {"type": "integer", "index": 35, "name": "source_id", "comment": null}, "tax_exempt": {"type": "text", "index": 36, "name": "tax_exempt", "comment": null}, "tax_info_tax_id": {"type": "integer", "index": 37, "name": "tax_info_tax_id", "comment": null}, "tax_info_type": {"type": "integer", "index": 38, "name": "tax_info_type", "comment": null}, "tax_info_verification_status": {"type": "integer", "index": 39, "name": "tax_info_verification_status", "comment": null}, "tax_info_verification_verified_name": {"type": "integer", "index": 40, "name": "tax_info_verification_verified_name", "comment": null}, "metadata": {"type": "text", "index": 41, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.customer"}, "source.stripe.stripe.discount": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "discount_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "type": {"type": "integer", "index": 2, "name": "type", "comment": null}, "type_id": {"type": "text", "index": 3, "name": "type_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 4, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "bigint", "index": 5, "name": "amount", "comment": null}, "checkout_session_id": {"type": "integer", "index": 6, "name": "checkout_session_id", "comment": null}, "checkout_session_line_item_id": {"type": "integer", "index": 7, "name": "checkout_session_line_item_id", "comment": null}, "coupon_id": {"type": "text", "index": 8, "name": "coupon_id", "comment": null}, "credit_note_line_item_id": {"type": "text", "index": 9, "name": "credit_note_line_item_id", "comment": null}, "customer_id": {"type": "text", "index": 10, "name": "customer_id", "comment": null}, "end": {"type": "timestamp without time zone", "index": 11, "name": "end", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 12, "name": "invoice_id", "comment": null}, "invoice_item_id": {"type": "integer", "index": 13, "name": "invoice_item_id", "comment": null}, "promotion_code": {"type": "integer", "index": 14, "name": "promotion_code", "comment": null}, "start": {"type": "text", "index": 15, "name": "start", "comment": null}, "subscription_id": {"type": "text", "index": 16, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.discount"}, "source.stripe.stripe.dispute": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "dispute_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "balance_transaction": {"type": "text", "index": 4, "name": "balance_transaction", "comment": null}, "charge_id": {"type": "text", "index": 5, "name": "charge_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 6, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 7, "name": "created", "comment": null}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": null}, "evidence_access_activity_log": {"type": "integer", "index": 9, "name": "evidence_access_activity_log", "comment": null}, "evidence_billing_address": {"type": "text", "index": 10, "name": "evidence_billing_address", "comment": null}, "evidence_cancellation_policy": {"type": "integer", "index": 11, "name": "evidence_cancellation_policy", "comment": null}, "evidence_cancellation_policy_disclosure": {"type": "integer", "index": 12, "name": "evidence_cancellation_policy_disclosure", "comment": null}, "evidence_cancellation_rebuttal": {"type": "integer", "index": 13, "name": "evidence_cancellation_rebuttal", "comment": null}, "evidence_customer_communication": {"type": "integer", "index": 14, "name": "evidence_customer_communication", "comment": null}, "evidence_customer_email_address": {"type": "text", "index": 15, "name": "evidence_customer_email_address", "comment": null}, "evidence_customer_name": {"type": "text", "index": 16, "name": "evidence_customer_name", "comment": null}, "evidence_customer_purchase_ip": {"type": "text", "index": 17, "name": "evidence_customer_purchase_ip", "comment": null}, "evidence_customer_signature": {"type": "integer", "index": 18, "name": "evidence_customer_signature", "comment": null}, "evidence_details_due_by": {"type": "text", "index": 19, "name": "evidence_details_due_by", "comment": null}, "evidence_details_has_evidence": {"type": "boolean", "index": 20, "name": "evidence_details_has_evidence", "comment": null}, "evidence_details_past_due": {"type": "boolean", "index": 21, "name": "evidence_details_past_due", "comment": null}, "evidence_details_submission_count": {"type": "integer", "index": 22, "name": "evidence_details_submission_count", "comment": null}, "evidence_duplicate_charge_documentation": {"type": "integer", "index": 23, "name": "evidence_duplicate_charge_documentation", "comment": null}, "evidence_duplicate_charge_explanation": {"type": "integer", "index": 24, "name": "evidence_duplicate_charge_explanation", "comment": null}, "evidence_duplicate_charge_id": {"type": "integer", "index": 25, "name": "evidence_duplicate_charge_id", "comment": null}, "evidence_product_description": {"type": "integer", "index": 26, "name": "evidence_product_description", "comment": null}, "evidence_receipt": {"type": "text", "index": 27, "name": "evidence_receipt", "comment": null}, "evidence_refund_policy": {"type": "integer", "index": 28, "name": "evidence_refund_policy", "comment": null}, "evidence_refund_policy_disclosure": {"type": "integer", "index": 29, "name": "evidence_refund_policy_disclosure", "comment": null}, "evidence_refund_refusal_explanation": {"type": "integer", "index": 30, "name": "evidence_refund_refusal_explanation", "comment": null}, "evidence_service_date": {"type": "integer", "index": 31, "name": "evidence_service_date", "comment": null}, "evidence_service_documentation": {"type": "integer", "index": 32, "name": "evidence_service_documentation", "comment": null}, "evidence_shipping_address": {"type": "integer", "index": 33, "name": "evidence_shipping_address", "comment": null}, "evidence_shipping_carrier": {"type": "integer", "index": 34, "name": "evidence_shipping_carrier", "comment": null}, "evidence_shipping_date": {"type": "integer", "index": 35, "name": "evidence_shipping_date", "comment": null}, "evidence_shipping_documentation": {"type": "integer", "index": 36, "name": "evidence_shipping_documentation", "comment": null}, "evidence_shipping_tracking_number": {"type": "integer", "index": 37, "name": "evidence_shipping_tracking_number", "comment": null}, "evidence_uncategorized_file": {"type": "integer", "index": 38, "name": "evidence_uncategorized_file", "comment": null}, "evidence_uncategorized_text": {"type": "integer", "index": 39, "name": "evidence_uncategorized_text", "comment": null}, "is_charge_refundable": {"type": "boolean", "index": 40, "name": "is_charge_refundable", "comment": null}, "livemode": {"type": "boolean", "index": 41, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 42, "name": "metadata", "comment": null}, "reason": {"type": "text", "index": 43, "name": "reason", "comment": null}, "status": {"type": "text", "index": 44, "name": "status", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.dispute"}, "source.stripe.stripe.fee": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "fee_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": null}, "index": {"type": "integer", "index": 2, "name": "index", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "application": {"type": "integer", "index": 5, "name": "application", "comment": null}, "connected_account_id": {"type": "integer", "index": 6, "name": "connected_account_id", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "type": {"type": "text", "index": 9, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.fee"}, "source.stripe.stripe.invoice": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "invoice_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 5, "name": "customer_id", "comment": null}, "due_date": {"type": "timestamp without time zone", "index": 6, "name": "due_date", "comment": null}, "description": {"type": "text", "index": 7, "name": "description", "comment": null}, "discountable": {"type": "boolean", "index": 8, "name": "discountable", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 9, "name": "invoice_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 10, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 11, "name": "livemode", "comment": null}, "period_end": {"type": "timestamp without time zone", "index": 12, "name": "period_end", "comment": null}, "period_start": {"type": "timestamp without time zone", "index": 13, "name": "period_start", "comment": null}, "proration": {"type": "boolean", "index": 14, "name": "proration", "comment": null}, "quantity": {"type": "integer", "index": 15, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 16, "name": "subscription_id", "comment": null}, "subscription_item_id": {"type": "text", "index": 17, "name": "subscription_item_id", "comment": null}, "unit_amount": {"type": "integer", "index": 18, "name": "unit_amount", "comment": null}, "default_payment_method_id": {"type": "text", "index": 19, "name": "default_payment_method_id", "comment": null}, "amount_due": {"type": "bigint", "index": 20, "name": "amount_due", "comment": null}, "amount_paid": {"type": "bigint", "index": 21, "name": "amount_paid", "comment": null}, "amount_remaining": {"type": "bigint", "index": 22, "name": "amount_remaining", "comment": null}, "post_payment_credit_notes_amount": {"type": "bigint", "index": 23, "name": "post_payment_credit_notes_amount", "comment": null}, "pre_payment_credit_notes_amount": {"type": "bigint", "index": 24, "name": "pre_payment_credit_notes_amount", "comment": null}, "subtotal": {"type": "bigint", "index": 25, "name": "subtotal", "comment": null}, "tax": {"type": "bigint", "index": 26, "name": "tax", "comment": null}, "total": {"type": "bigint", "index": 27, "name": "total", "comment": null}, "attempt_count": {"type": "bigint", "index": 28, "name": "attempt_count", "comment": null}, "auto_advance": {"type": "boolean", "index": 29, "name": "auto_advance", "comment": null}, "billing_reason": {"type": "text", "index": 30, "name": "billing_reason", "comment": null}, "metadata": {"type": "text", "index": 31, "name": "metadata", "comment": null}, "number": {"type": "bigint", "index": 32, "name": "number", "comment": null}, "paid": {"type": "boolean", "index": 33, "name": "paid", "comment": null}, "receipt_number": {"type": "integer", "index": 34, "name": "receipt_number", "comment": null}, "status": {"type": "text", "index": 35, "name": "status", "comment": null}, "source_relation": {"type": "integer", "index": 36, "name": "source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.invoice"}, "source.stripe.stripe.invoice_line_item": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "invoice_line_item_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 2, "name": "invoice_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "description": {"type": "text", "index": 6, "name": "description", "comment": null}, "discountable": {"type": "boolean", "index": 7, "name": "discountable", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "period_end": {"type": "timestamp without time zone", "index": 9, "name": "period_end", "comment": null}, "period_start": {"type": "timestamp without time zone", "index": 10, "name": "period_start", "comment": null}, "plan_id": {"type": "text", "index": 11, "name": "plan_id", "comment": null}, "proration": {"type": "boolean", "index": 12, "name": "proration", "comment": null}, "quantity": {"type": "integer", "index": 13, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 14, "name": "subscription_id", "comment": null}, "subscription_item_id": {"type": "text", "index": 15, "name": "subscription_item_id", "comment": null}, "type": {"type": "integer", "index": 16, "name": "type", "comment": null}, "unique_id": {"type": "text", "index": 17, "name": "unique_id", "comment": null}, "metadata": {"type": "text", "index": 18, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.invoice_line_item"}, "source.stripe.stripe.payment_intent": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payment_intent_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "amount_capturable": {"type": "integer", "index": 4, "name": "amount_capturable", "comment": null}, "amount_received": {"type": "integer", "index": 5, "name": "amount_received", "comment": null}, "application": {"type": "text", "index": 6, "name": "application", "comment": null}, "application_fee_amount": {"type": "integer", "index": 7, "name": "application_fee_amount", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 8, "name": "canceled_at", "comment": null}, "cancellation_reason": {"type": "integer", "index": 9, "name": "cancellation_reason", "comment": null}, "capture_method": {"type": "text", "index": 10, "name": "capture_method", "comment": null}, "confirmation_method": {"type": "text", "index": 11, "name": "confirmation_method", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "text", "index": 13, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "description": {"type": "text", "index": 15, "name": "description", "comment": null}, "last_payment_error_charge_id": {"type": "integer", "index": 16, "name": "last_payment_error_charge_id", "comment": null}, "last_payment_error_code": {"type": "integer", "index": 17, "name": "last_payment_error_code", "comment": null}, "last_payment_error_decline_code": {"type": "integer", "index": 18, "name": "last_payment_error_decline_code", "comment": null}, "last_payment_error_doc_url": {"type": "integer", "index": 19, "name": "last_payment_error_doc_url", "comment": null}, "last_payment_error_message": {"type": "integer", "index": 20, "name": "last_payment_error_message", "comment": null}, "last_payment_error_param": {"type": "integer", "index": 21, "name": "last_payment_error_param", "comment": null}, "last_payment_error_source_id": {"type": "integer", "index": 22, "name": "last_payment_error_source_id", "comment": null}, "last_payment_error_type": {"type": "integer", "index": 23, "name": "last_payment_error_type", "comment": null}, "livemode": {"type": "boolean", "index": 24, "name": "livemode", "comment": null}, "on_behalf_of": {"type": "integer", "index": 25, "name": "on_behalf_of", "comment": null}, "payment_method_id": {"type": "text", "index": 26, "name": "payment_method_id", "comment": null}, "receipt_email": {"type": "text", "index": 27, "name": "receipt_email", "comment": null}, "source_id": {"type": "integer", "index": 28, "name": "source_id", "comment": null}, "statement_descriptor": {"type": "integer", "index": 29, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 30, "name": "status", "comment": null}, "transfer_data_destination": {"type": "integer", "index": 31, "name": "transfer_data_destination", "comment": null}, "transfer_group": {"type": "integer", "index": 32, "name": "transfer_group", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.payment_intent"}, "source.stripe.stripe.payment_method_card": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payment_method_card_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"payment_method_id": {"type": "text", "index": 1, "name": "payment_method_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "brand": {"type": "text", "index": 3, "name": "brand", "comment": null}, "charge_id": {"type": "integer", "index": 4, "name": "charge_id", "comment": null}, "description": {"type": "integer", "index": 5, "name": "description", "comment": null}, "fingerprint": {"type": "text", "index": 6, "name": "fingerprint", "comment": null}, "funding": {"type": "text", "index": 7, "name": "funding", "comment": null}, "type": {"type": "integer", "index": 8, "name": "type", "comment": null}, "wallet_type": {"type": "integer", "index": 9, "name": "wallet_type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.payment_method_card"}, "source.stripe.stripe.payment_method": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payment_method_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "billing_detail_address_city": {"type": "integer", "index": 3, "name": "billing_detail_address_city", "comment": null}, "billing_detail_address_country": {"type": "integer", "index": 4, "name": "billing_detail_address_country", "comment": null}, "billing_detail_address_line_1": {"type": "integer", "index": 5, "name": "billing_detail_address_line_1", "comment": null}, "billing_detail_address_line_2": {"type": "integer", "index": 6, "name": "billing_detail_address_line_2", "comment": null}, "billing_detail_address_postal_code": {"type": "text", "index": 7, "name": "billing_detail_address_postal_code", "comment": null}, "billing_detail_address_state": {"type": "integer", "index": 8, "name": "billing_detail_address_state", "comment": null}, "billing_detail_email": {"type": "text", "index": 9, "name": "billing_detail_email", "comment": null}, "billing_detail_name": {"type": "text", "index": 10, "name": "billing_detail_name", "comment": null}, "billing_detail_phone": {"type": "integer", "index": 11, "name": "billing_detail_phone", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "customer_id": {"type": "text", "index": 13, "name": "customer_id", "comment": null}, "livemode": {"type": "boolean", "index": 14, "name": "livemode", "comment": null}, "type": {"type": "text", "index": 15, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.payment_method"}, "source.stripe.stripe.payout_balance_transaction": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payout_balance_transaction_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"payout_id": {"type": "text", "index": 1, "name": "payout_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "balance_transaction_id": {"type": "text", "index": 3, "name": "balance_transaction_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.payout_balance_transaction"}, "source.stripe.stripe.payout": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payout_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "arrival_date": {"type": "timestamp without time zone", "index": 4, "name": "arrival_date", "comment": null}, "automatic": {"type": "boolean", "index": 5, "name": "automatic", "comment": null}, "balance_transaction_id": {"type": "text", "index": 6, "name": "balance_transaction_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 7, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 8, "name": "created", "comment": null}, "currency": {"type": "text", "index": 9, "name": "currency", "comment": null}, "description": {"type": "text", "index": 10, "name": "description", "comment": null}, "destination_bank_account_id": {"type": "character varying(500)", "index": 11, "name": "destination_bank_account_id", "comment": null}, "destination_card_id": {"type": "character varying(500)", "index": 12, "name": "destination_card_id", "comment": null}, "failure_balance_transaction_id": {"type": "integer", "index": 13, "name": "failure_balance_transaction_id", "comment": null}, "failure_code": {"type": "integer", "index": 14, "name": "failure_code", "comment": null}, "failure_message": {"type": "integer", "index": 15, "name": "failure_message", "comment": null}, "livemode": {"type": "boolean", "index": 16, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 17, "name": "metadata", "comment": null}, "method": {"type": "text", "index": 18, "name": "method", "comment": null}, "source_type": {"type": "text", "index": 19, "name": "source_type", "comment": null}, "statement_descriptor": {"type": "integer", "index": 20, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 21, "name": "status", "comment": null}, "type": {"type": "text", "index": 22, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.payout"}, "source.stripe.stripe.plan": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "plan_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "aggregate_usage": {"type": "integer", "index": 4, "name": "aggregate_usage", "comment": null}, "amount": {"type": "integer", "index": 5, "name": "amount", "comment": null}, "billing_scheme": {"type": "text", "index": 6, "name": "billing_scheme", "comment": null}, "created": {"type": "timestamp without time zone", "index": 7, "name": "created", "comment": null}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": null}, "interval": {"type": "text", "index": 9, "name": "interval", "comment": null}, "interval_count": {"type": "bigint", "index": 10, "name": "interval_count", "comment": null}, "is_deleted": {"type": "boolean", "index": 11, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 12, "name": "livemode", "comment": null}, "nickname": {"type": "integer", "index": 13, "name": "nickname", "comment": null}, "product_id": {"type": "text", "index": 14, "name": "product_id", "comment": null}, "tiers_mode": {"type": "integer", "index": 15, "name": "tiers_mode", "comment": null}, "transform_usage_divide_by": {"type": "integer", "index": 16, "name": "transform_usage_divide_by", "comment": null}, "transform_usage_round": {"type": "integer", "index": 17, "name": "transform_usage_round", "comment": null}, "trial_period_days": {"type": "integer", "index": 18, "name": "trial_period_days", "comment": null}, "usage_type": {"type": "text", "index": 19, "name": "usage_type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.plan"}, "source.stripe.stripe.price": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "price_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "billing_scheme": {"type": "text", "index": 4, "name": "billing_scheme", "comment": null}, "created": {"type": "timestamp without time zone", "index": 5, "name": "created", "comment": null}, "currency": {"type": "text", "index": 6, "name": "currency", "comment": null}, "invoice_item_id": {"type": "text", "index": 7, "name": "invoice_item_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 8, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 9, "name": "livemode", "comment": null}, "lookup_key": {"type": "integer", "index": 10, "name": "lookup_key", "comment": null}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": null}, "nickname": {"type": "text", "index": 12, "name": "nickname", "comment": null}, "product_id": {"type": "text", "index": 13, "name": "product_id", "comment": null}, "recurring_aggregate_usage": {"type": "character varying(100)", "index": 14, "name": "recurring_aggregate_usage", "comment": null}, "recurring_interval": {"type": "character varying(100)", "index": 15, "name": "recurring_interval", "comment": null}, "recurring_interval_count": {"type": "bigint", "index": 16, "name": "recurring_interval_count", "comment": null}, "recurring_usage_type": {"type": "character varying(100)", "index": 17, "name": "recurring_usage_type", "comment": null}, "tiers_mode": {"type": "integer", "index": 18, "name": "tiers_mode", "comment": null}, "transform_quantity_divide_by": {"type": "integer", "index": 19, "name": "transform_quantity_divide_by", "comment": null}, "transform_quantity_round": {"type": "integer", "index": 20, "name": "transform_quantity_round", "comment": null}, "type": {"type": "text", "index": 21, "name": "type", "comment": null}, "unit_amount": {"type": "integer", "index": 22, "name": "unit_amount", "comment": null}, "unit_amount_decimal": {"type": "integer", "index": 23, "name": "unit_amount_decimal", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.price"}, "source.stripe.stripe.product": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "product_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "caption": {"type": "text", "index": 4, "name": "caption", "comment": null}, "created": {"type": "timestamp without time zone", "index": 5, "name": "created", "comment": null}, "description": {"type": "text", "index": 6, "name": "description", "comment": null}, "is_deleted": {"type": "boolean", "index": 7, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 9, "name": "metadata", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "package_dimensions_height": {"type": "integer", "index": 11, "name": "package_dimensions_height", "comment": null}, "package_dimensions_length": {"type": "integer", "index": 12, "name": "package_dimensions_length", "comment": null}, "package_dimensions_weight": {"type": "integer", "index": 13, "name": "package_dimensions_weight", "comment": null}, "package_dimensions_width": {"type": "integer", "index": 14, "name": "package_dimensions_width", "comment": null}, "shippable": {"type": "boolean", "index": 15, "name": "shippable", "comment": null}, "statement_descriptor": {"type": "integer", "index": 16, "name": "statement_descriptor", "comment": null}, "type": {"type": "text", "index": 17, "name": "type", "comment": null}, "unit_label": {"type": "integer", "index": 18, "name": "unit_label", "comment": null}, "updated": {"type": "text", "index": 19, "name": "updated", "comment": null}, "url": {"type": "text", "index": 20, "name": "url", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.product"}, "source.stripe.stripe.refund": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "refund_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "balance_transaction_id": {"type": "text", "index": 4, "name": "balance_transaction_id", "comment": null}, "charge_id": {"type": "text", "index": 5, "name": "charge_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "integer", "index": 8, "name": "description", "comment": null}, "failure_balance_transaction_id": {"type": "integer", "index": 9, "name": "failure_balance_transaction_id", "comment": null}, "failure_reason": {"type": "integer", "index": 10, "name": "failure_reason", "comment": null}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": null}, "reason": {"type": "text", "index": 12, "name": "reason", "comment": null}, "receipt_number": {"type": "text", "index": 13, "name": "receipt_number", "comment": null}, "status": {"type": "text", "index": 14, "name": "status", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.refund"}, "source.stripe.stripe.subscription": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "application_fee_percent": {"type": "integer", "index": 3, "name": "application_fee_percent", "comment": null}, "billing": {"type": "text", "index": 4, "name": "billing", "comment": null}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 5, "name": "billing_cycle_anchor", "comment": null}, "billing_threshold_amount_gte": {"type": "integer", "index": 6, "name": "billing_threshold_amount_gte", "comment": null}, "billing_threshold_reset_billing_cycle_anchor": {"type": "boolean", "index": 7, "name": "billing_threshold_reset_billing_cycle_anchor", "comment": null}, "cancel_at": {"type": "timestamp without time zone", "index": 8, "name": "cancel_at", "comment": null}, "cancel_at_period_end": {"type": "boolean", "index": 9, "name": "cancel_at_period_end", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 10, "name": "canceled_at", "comment": null}, "created": {"type": "timestamp without time zone", "index": 11, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 12, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 13, "name": "current_period_start", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "days_until_due": {"type": "integer", "index": 15, "name": "days_until_due", "comment": null}, "default_source_id": {"type": "text", "index": 16, "name": "default_source_id", "comment": null}, "ended_at": {"type": "timestamp without time zone", "index": 17, "name": "ended_at", "comment": null}, "livemode": {"type": "boolean", "index": 18, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 19, "name": "metadata", "comment": null}, "quantity": {"type": "integer", "index": 20, "name": "quantity", "comment": null}, "start_date": {"type": "timestamp without time zone", "index": 21, "name": "start_date", "comment": null}, "status": {"type": "text", "index": 22, "name": "status", "comment": null}, "tax_percent": {"type": "integer", "index": 23, "name": "tax_percent", "comment": null}, "trial_end": {"type": "timestamp without time zone", "index": 24, "name": "trial_end", "comment": null}, "trial_start": {"type": "timestamp without time zone", "index": 25, "name": "trial_start", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.subscription"}, "source.stripe.stripe.subscription_discount": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_discount_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "checkout_session": {"type": "integer", "index": 3, "name": "checkout_session", "comment": null}, "coupon_id": {"type": "text", "index": 4, "name": "coupon_id", "comment": null}, "customer_id": {"type": "text", "index": 5, "name": "customer_id", "comment": null}, "end": {"type": "timestamp without time zone", "index": 6, "name": "end", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 7, "name": "invoice_id", "comment": null}, "invoice_item_id": {"type": "integer", "index": 8, "name": "invoice_item_id", "comment": null}, "start": {"type": "text", "index": 9, "name": "start", "comment": null}, "subscription_id": {"type": "text", "index": 10, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.subscription_discount"}, "source.stripe.stripe.subscription_history": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_history_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "_fivetran_active": {"type": "boolean", "index": 3, "name": "_fivetran_active", "comment": null}, "application_fee_percent": {"type": "integer", "index": 4, "name": "application_fee_percent", "comment": null}, "billing": {"type": "text", "index": 5, "name": "billing", "comment": null}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 6, "name": "billing_cycle_anchor", "comment": null}, "billing_threshold_amount_gte": {"type": "integer", "index": 7, "name": "billing_threshold_amount_gte", "comment": null}, "billing_threshold_reset_billing_cycle_anchor": {"type": "boolean", "index": 8, "name": "billing_threshold_reset_billing_cycle_anchor", "comment": null}, "cancel_at": {"type": "timestamp without time zone", "index": 9, "name": "cancel_at", "comment": null}, "cancel_at_period_end": {"type": "boolean", "index": 10, "name": "cancel_at_period_end", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 11, "name": "canceled_at", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 13, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 14, "name": "current_period_start", "comment": null}, "customer_id": {"type": "text", "index": 15, "name": "customer_id", "comment": null}, "days_until_due": {"type": "integer", "index": 16, "name": "days_until_due", "comment": null}, "default_source_id": {"type": "text", "index": 17, "name": "default_source_id", "comment": null}, "ended_at": {"type": "timestamp without time zone", "index": 18, "name": "ended_at", "comment": null}, "livemode": {"type": "boolean", "index": 19, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 20, "name": "metadata", "comment": null}, "quantity": {"type": "integer", "index": 21, "name": "quantity", "comment": null}, "start_date": {"type": "timestamp without time zone", "index": 22, "name": "start_date", "comment": null}, "status": {"type": "text", "index": 23, "name": "status", "comment": null}, "tax_percent": {"type": "integer", "index": 24, "name": "tax_percent", "comment": null}, "trial_end": {"type": "timestamp without time zone", "index": 25, "name": "trial_end", "comment": null}, "trial_start": {"type": "timestamp without time zone", "index": 26, "name": "trial_start", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.subscription_history"}, "source.stripe.stripe.subscription_item": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_item_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "created": {"type": "timestamp without time zone", "index": 2, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 3, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 4, "name": "current_period_start", "comment": null}, "id": {"type": "text", "index": 5, "name": "id", "comment": null}, "metadata": {"type": "text", "index": 6, "name": "metadata", "comment": null}, "plan_id": {"type": "text", "index": 7, "name": "plan_id", "comment": null}, "quantity": {"type": "bigint", "index": 8, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 9, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.subscription_item"}, "source.stripe.stripe.transfer": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "transfer_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "amount_reversed": {"type": "integer", "index": 4, "name": "amount_reversed", "comment": null}, "balance_transaction_id": {"type": "text", "index": 5, "name": "balance_transaction_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "destination": {"type": "text", "index": 9, "name": "destination", "comment": null}, "destination_payment": {"type": "integer", "index": 10, "name": "destination_payment", "comment": null}, "destination_payment_id": {"type": "integer", "index": 11, "name": "destination_payment_id", "comment": null}, "livemode": {"type": "boolean", "index": 12, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 13, "name": "metadata", "comment": null}, "reversed": {"type": "boolean", "index": 14, "name": "reversed", "comment": null}, "source_transaction": {"type": "integer", "index": 15, "name": "source_transaction", "comment": null}, "source_transaction_id": {"type": "integer", "index": 16, "name": "source_transaction_id", "comment": null}, "source_type": {"type": "text", "index": 17, "name": "source_type", "comment": null}, "transfer_group": {"type": "integer", "index": 18, "name": "transfer_group", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.transfer"}}, "errors": null}
\ No newline at end of file
+{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/catalog/v1.json", "dbt_version": "1.12.0", "generated_at": "2026-07-21T21:55:52.649140Z", "invocation_id": "078d0bd4-a97b-412b-a231-a68db1a7a8ac", "invocation_started_at": "2026-07-21T21:55:47.670019Z", "env": {}}, "nodes": {"seed.stripe_integration_tests.account_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "account_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "business_profile_mcc": {"type": "integer", "index": 3, "name": "business_profile_mcc", "comment": null}, "business_profile_name": {"type": "text", "index": 4, "name": "business_profile_name", "comment": null}, "business_profile_product_description": {"type": "integer", "index": 5, "name": "business_profile_product_description", "comment": null}, "business_profile_support_address_city": {"type": "text", "index": 6, "name": "business_profile_support_address_city", "comment": null}, "business_profile_support_address_country": {"type": "text", "index": 7, "name": "business_profile_support_address_country", "comment": null}, "business_profile_support_address_line_1": {"type": "text", "index": 8, "name": "business_profile_support_address_line_1", "comment": null}, "business_profile_support_address_line_2": {"type": "text", "index": 9, "name": "business_profile_support_address_line_2", "comment": null}, "business_profile_support_address_postal_code": {"type": "integer", "index": 10, "name": "business_profile_support_address_postal_code", "comment": null}, "business_profile_support_address_state": {"type": "text", "index": 11, "name": "business_profile_support_address_state", "comment": null}, "business_profile_support_email": {"type": "text", "index": 12, "name": "business_profile_support_email", "comment": null}, "business_profile_support_phone": {"type": "integer", "index": 13, "name": "business_profile_support_phone", "comment": null}, "business_profile_support_url": {"type": "text", "index": 14, "name": "business_profile_support_url", "comment": null}, "business_profile_url": {"type": "text", "index": 15, "name": "business_profile_url", "comment": null}, "business_type": {"type": "integer", "index": 16, "name": "business_type", "comment": null}, "capabilities_afterpay_clearpay_payments": {"type": "text", "index": 17, "name": "capabilities_afterpay_clearpay_payments", "comment": null}, "capabilities_au_becs_debit_payments": {"type": "integer", "index": 18, "name": "capabilities_au_becs_debit_payments", "comment": null}, "capabilities_bacs_debit_payments": {"type": "integer", "index": 19, "name": "capabilities_bacs_debit_payments", "comment": null}, "capabilities_bancontact_payments": {"type": "text", "index": 20, "name": "capabilities_bancontact_payments", "comment": null}, "capabilities_card_issuing": {"type": "integer", "index": 21, "name": "capabilities_card_issuing", "comment": null}, "capabilities_card_payments": {"type": "text", "index": 22, "name": "capabilities_card_payments", "comment": null}, "capabilities_cartes_bancaires_payments": {"type": "integer", "index": 23, "name": "capabilities_cartes_bancaires_payments", "comment": null}, "capabilities_eps_payments": {"type": "text", "index": 24, "name": "capabilities_eps_payments", "comment": null}, "capabilities_fpx_payments": {"type": "integer", "index": 25, "name": "capabilities_fpx_payments", "comment": null}, "capabilities_giropay_payments": {"type": "text", "index": 26, "name": "capabilities_giropay_payments", "comment": null}, "capabilities_grabpay_payments": {"type": "integer", "index": 27, "name": "capabilities_grabpay_payments", "comment": null}, "capabilities_ideal_payments": {"type": "text", "index": 28, "name": "capabilities_ideal_payments", "comment": null}, "capabilities_jcb_payments": {"type": "integer", "index": 29, "name": "capabilities_jcb_payments", "comment": null}, "capabilities_legacy_payments": {"type": "integer", "index": 30, "name": "capabilities_legacy_payments", "comment": null}, "capabilities_oxxo_payments": {"type": "integer", "index": 31, "name": "capabilities_oxxo_payments", "comment": null}, "capabilities_p_24_payments": {"type": "text", "index": 32, "name": "capabilities_p_24_payments", "comment": null}, "capabilities_platform_payments": {"type": "text", "index": 33, "name": "capabilities_platform_payments", "comment": null}, "capabilities_sepa_debit_payments": {"type": "text", "index": 34, "name": "capabilities_sepa_debit_payments", "comment": null}, "capabilities_sofort_payments": {"type": "text", "index": 35, "name": "capabilities_sofort_payments", "comment": null}, "capabilities_tax_reporting_us_1099_k": {"type": "integer", "index": 36, "name": "capabilities_tax_reporting_us_1099_k", "comment": null}, "capabilities_tax_reporting_us_1099_misc": {"type": "integer", "index": 37, "name": "capabilities_tax_reporting_us_1099_misc", "comment": null}, "capabilities_transfers": {"type": "integer", "index": 38, "name": "capabilities_transfers", "comment": null}, "charges_enabled": {"type": "boolean", "index": 39, "name": "charges_enabled", "comment": null}, "company_address_city": {"type": "integer", "index": 40, "name": "company_address_city", "comment": null}, "company_address_country": {"type": "integer", "index": 41, "name": "company_address_country", "comment": null}, "company_address_kana_city": {"type": "integer", "index": 42, "name": "company_address_kana_city", "comment": null}, "company_address_kana_country": {"type": "integer", "index": 43, "name": "company_address_kana_country", "comment": null}, "company_address_kana_line_1": {"type": "integer", "index": 44, "name": "company_address_kana_line_1", "comment": null}, "company_address_kana_line_2": {"type": "integer", "index": 45, "name": "company_address_kana_line_2", "comment": null}, "company_address_kana_postal_code": {"type": "integer", "index": 46, "name": "company_address_kana_postal_code", "comment": null}, "company_address_kana_state": {"type": "integer", "index": 47, "name": "company_address_kana_state", "comment": null}, "company_address_kana_town": {"type": "integer", "index": 48, "name": "company_address_kana_town", "comment": null}, "company_address_kanji_city": {"type": "integer", "index": 49, "name": "company_address_kanji_city", "comment": null}, "company_address_kanji_country": {"type": "integer", "index": 50, "name": "company_address_kanji_country", "comment": null}, "company_address_kanji_line_1": {"type": "integer", "index": 51, "name": "company_address_kanji_line_1", "comment": null}, "company_address_kanji_line_2": {"type": "integer", "index": 52, "name": "company_address_kanji_line_2", "comment": null}, "company_address_kanji_postal_code": {"type": "integer", "index": 53, "name": "company_address_kanji_postal_code", "comment": null}, "company_address_kanji_state": {"type": "integer", "index": 54, "name": "company_address_kanji_state", "comment": null}, "company_address_kanji_town": {"type": "integer", "index": 55, "name": "company_address_kanji_town", "comment": null}, "company_address_line_1": {"type": "integer", "index": 56, "name": "company_address_line_1", "comment": null}, "company_address_line_2": {"type": "integer", "index": 57, "name": "company_address_line_2", "comment": null}, "company_address_postal_code": {"type": "integer", "index": 58, "name": "company_address_postal_code", "comment": null}, "company_address_state": {"type": "integer", "index": 59, "name": "company_address_state", "comment": null}, "company_directors_provided": {"type": "integer", "index": 60, "name": "company_directors_provided", "comment": null}, "company_executives_provided": {"type": "integer", "index": 61, "name": "company_executives_provided", "comment": null}, "company_name": {"type": "integer", "index": 62, "name": "company_name", "comment": null}, "company_name_kana": {"type": "integer", "index": 63, "name": "company_name_kana", "comment": null}, "company_name_kanji": {"type": "integer", "index": 64, "name": "company_name_kanji", "comment": null}, "company_owners_provided": {"type": "integer", "index": 65, "name": "company_owners_provided", "comment": null}, "company_phone": {"type": "integer", "index": 66, "name": "company_phone", "comment": null}, "company_structure": {"type": "integer", "index": 67, "name": "company_structure", "comment": null}, "company_tax_id_provided": {"type": "integer", "index": 68, "name": "company_tax_id_provided", "comment": null}, "company_tax_id_registrar": {"type": "integer", "index": 69, "name": "company_tax_id_registrar", "comment": null}, "company_vat_id_provided": {"type": "integer", "index": 70, "name": "company_vat_id_provided", "comment": null}, "company_verification_document_back": {"type": "integer", "index": 71, "name": "company_verification_document_back", "comment": null}, "company_verification_document_details": {"type": "integer", "index": 72, "name": "company_verification_document_details", "comment": null}, "company_verification_document_details_code": {"type": "integer", "index": 73, "name": "company_verification_document_details_code", "comment": null}, "company_verification_document_front": {"type": "integer", "index": 74, "name": "company_verification_document_front", "comment": null}, "country": {"type": "text", "index": 75, "name": "country", "comment": null}, "created": {"type": "timestamp without time zone", "index": 76, "name": "created", "comment": null}, "default_currency": {"type": "text", "index": 77, "name": "default_currency", "comment": null}, "details_submitted": {"type": "boolean", "index": 78, "name": "details_submitted", "comment": null}, "email": {"type": "text", "index": 79, "name": "email", "comment": null}, "individual_id": {"type": "integer", "index": 80, "name": "individual_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 81, "name": "is_deleted", "comment": null}, "metadata": {"type": "integer", "index": 82, "name": "metadata", "comment": null}, "payouts_enabled": {"type": "boolean", "index": 83, "name": "payouts_enabled", "comment": null}, "requirements_current_deadline": {"type": "integer", "index": 84, "name": "requirements_current_deadline", "comment": null}, "requirements_currently_due": {"type": "integer", "index": 85, "name": "requirements_currently_due", "comment": null}, "requirements_disabled_reason": {"type": "integer", "index": 86, "name": "requirements_disabled_reason", "comment": null}, "requirements_errors": {"type": "integer", "index": 87, "name": "requirements_errors", "comment": null}, "requirements_eventually_due": {"type": "integer", "index": 88, "name": "requirements_eventually_due", "comment": null}, "requirements_past_due": {"type": "integer", "index": 89, "name": "requirements_past_due", "comment": null}, "requirements_pending_verification": {"type": "integer", "index": 90, "name": "requirements_pending_verification", "comment": null}, "settings_branding_icon": {"type": "integer", "index": 91, "name": "settings_branding_icon", "comment": null}, "settings_branding_logo": {"type": "text", "index": 92, "name": "settings_branding_logo", "comment": null}, "settings_branding_primary_color": {"type": "text", "index": 93, "name": "settings_branding_primary_color", "comment": null}, "settings_card_payments_decline_on_avs_failure": {"type": "integer", "index": 94, "name": "settings_card_payments_decline_on_avs_failure", "comment": null}, "settings_card_payments_decline_on_cvc_failure": {"type": "integer", "index": 95, "name": "settings_card_payments_decline_on_cvc_failure", "comment": null}, "settings_card_payments_statement_descriptor_prefix": {"type": "integer", "index": 96, "name": "settings_card_payments_statement_descriptor_prefix", "comment": null}, "settings_dashboard_display_name": {"type": "text", "index": 97, "name": "settings_dashboard_display_name", "comment": null}, "settings_dashboard_timezone": {"type": "text", "index": 98, "name": "settings_dashboard_timezone", "comment": null}, "settings_payments_statement_descriptor": {"type": "text", "index": 99, "name": "settings_payments_statement_descriptor", "comment": null}, "settings_payments_statement_descriptor_kana": {"type": "integer", "index": 100, "name": "settings_payments_statement_descriptor_kana", "comment": null}, "settings_payments_statement_descriptor_kanji": {"type": "integer", "index": 101, "name": "settings_payments_statement_descriptor_kanji", "comment": null}, "settings_payouts_debit_negative_balances": {"type": "boolean", "index": 102, "name": "settings_payouts_debit_negative_balances", "comment": null}, "settings_payouts_schedule_delay_days": {"type": "integer", "index": 103, "name": "settings_payouts_schedule_delay_days", "comment": null}, "settings_payouts_schedule_interval": {"type": "text", "index": 104, "name": "settings_payouts_schedule_interval", "comment": null}, "settings_payouts_schedule_monthly_anchor": {"type": "integer", "index": 105, "name": "settings_payouts_schedule_monthly_anchor", "comment": null}, "settings_payouts_schedule_weekly_anchor": {"type": "integer", "index": 106, "name": "settings_payouts_schedule_weekly_anchor", "comment": null}, "settings_payouts_statement_descriptor": {"type": "integer", "index": 107, "name": "settings_payouts_statement_descriptor", "comment": null}, "tos_acceptance_date": {"type": "integer", "index": 108, "name": "tos_acceptance_date", "comment": null}, "tos_acceptance_ip": {"type": "integer", "index": 109, "name": "tos_acceptance_ip", "comment": null}, "tos_acceptance_user_agent": {"type": "integer", "index": 110, "name": "tos_acceptance_user_agent", "comment": null}, "type": {"type": "text", "index": 111, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.account_data"}, "seed.stripe_integration_tests.balance_transaction_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "balance_transaction_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "available_on": {"type": "timestamp without time zone", "index": 4, "name": "available_on", "comment": null}, "connected_account_id": {"type": "integer", "index": 5, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "exchange_rate": {"type": "integer", "index": 9, "name": "exchange_rate", "comment": null}, "fee": {"type": "integer", "index": 10, "name": "fee", "comment": null}, "net": {"type": "integer", "index": 11, "name": "net", "comment": null}, "source": {"type": "text", "index": 12, "name": "source", "comment": null}, "status": {"type": "text", "index": 13, "name": "status", "comment": null}, "type": {"type": "text", "index": 14, "name": "type", "comment": null}, "payout_id": {"type": "text", "index": 15, "name": "payout_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.balance_transaction_data"}, "seed.stripe_integration_tests.card_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "card_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "address_city": {"type": "integer", "index": 4, "name": "address_city", "comment": null}, "address_country": {"type": "integer", "index": 5, "name": "address_country", "comment": null}, "address_line_1": {"type": "integer", "index": 6, "name": "address_line_1", "comment": null}, "address_line_1_check": {"type": "integer", "index": 7, "name": "address_line_1_check", "comment": null}, "address_line_2": {"type": "integer", "index": 8, "name": "address_line_2", "comment": null}, "address_state": {"type": "integer", "index": 9, "name": "address_state", "comment": null}, "address_zip": {"type": "integer", "index": 10, "name": "address_zip", "comment": null}, "address_zip_check": {"type": "integer", "index": 11, "name": "address_zip_check", "comment": null}, "brand": {"type": "text", "index": 12, "name": "brand", "comment": null}, "connected_account_id": {"type": "integer", "index": 13, "name": "connected_account_id", "comment": null}, "country": {"type": "text", "index": 14, "name": "country", "comment": null}, "created": {"type": "timestamp without time zone", "index": 15, "name": "created", "comment": null}, "currency": {"type": "text", "index": 16, "name": "currency", "comment": null}, "customer_id": {"type": "integer", "index": 17, "name": "customer_id", "comment": null}, "cvc_check": {"type": "text", "index": 18, "name": "cvc_check", "comment": null}, "dynamic_last_4": {"type": "integer", "index": 19, "name": "dynamic_last_4", "comment": null}, "exp_month": {"type": "integer", "index": 20, "name": "exp_month", "comment": null}, "exp_year": {"type": "integer", "index": 21, "name": "exp_year", "comment": null}, "fingerprint": {"type": "text", "index": 22, "name": "fingerprint", "comment": null}, "funding": {"type": "text", "index": 23, "name": "funding", "comment": null}, "is_deleted": {"type": "boolean", "index": 24, "name": "is_deleted", "comment": null}, "last_4": {"type": "integer", "index": 25, "name": "last_4", "comment": null}, "name": {"type": "integer", "index": 26, "name": "name", "comment": null}, "network": {"type": "text", "index": 27, "name": "network", "comment": null}, "recipient": {"type": "integer", "index": 28, "name": "recipient", "comment": null}, "tokenization_method": {"type": "integer", "index": 29, "name": "tokenization_method", "comment": null}, "metadata": {"type": "text", "index": 30, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.card_data"}, "seed.stripe_integration_tests.charge_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "charge_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "bigint", "index": 3, "name": "amount", "comment": null}, "amount_refunded": {"type": "bigint", "index": 4, "name": "amount_refunded", "comment": null}, "application": {"type": "text", "index": 5, "name": "application", "comment": null}, "application_fee_amount": {"type": "bigint", "index": 6, "name": "application_fee_amount", "comment": null}, "balance_transaction_id": {"type": "character varying(500)", "index": 7, "name": "balance_transaction_id", "comment": null}, "bank_account_id": {"type": "integer", "index": 8, "name": "bank_account_id", "comment": null}, "captured": {"type": "boolean", "index": 9, "name": "captured", "comment": null}, "card_id": {"type": "text", "index": 10, "name": "card_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 11, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "text", "index": 13, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "description": {"type": "text", "index": 15, "name": "description", "comment": null}, "destination": {"type": "integer", "index": 16, "name": "destination", "comment": null}, "failure_code": {"type": "text", "index": 17, "name": "failure_code", "comment": null}, "failure_message": {"type": "text", "index": 18, "name": "failure_message", "comment": null}, "fraud_details_stripe_report": {"type": "integer", "index": 19, "name": "fraud_details_stripe_report", "comment": null}, "fraud_details_user_report": {"type": "integer", "index": 20, "name": "fraud_details_user_report", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 21, "name": "invoice_id", "comment": null}, "livemode": {"type": "boolean", "index": 22, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 23, "name": "metadata", "comment": null}, "on_behalf_of": {"type": "integer", "index": 24, "name": "on_behalf_of", "comment": null}, "outcome_network_status": {"type": "text", "index": 25, "name": "outcome_network_status", "comment": null}, "outcome_reason": {"type": "text", "index": 26, "name": "outcome_reason", "comment": null}, "outcome_risk_level": {"type": "text", "index": 27, "name": "outcome_risk_level", "comment": null}, "outcome_risk_score": {"type": "double precision", "index": 28, "name": "outcome_risk_score", "comment": null}, "outcome_seller_message": {"type": "text", "index": 29, "name": "outcome_seller_message", "comment": null}, "outcome_type": {"type": "text", "index": 30, "name": "outcome_type", "comment": null}, "paid": {"type": "boolean", "index": 31, "name": "paid", "comment": null}, "payment_intent_id": {"type": "text", "index": 32, "name": "payment_intent_id", "comment": null}, "receipt_email": {"type": "text", "index": 33, "name": "receipt_email", "comment": null}, "receipt_number": {"type": "integer", "index": 34, "name": "receipt_number", "comment": null}, "receipt_url": {"type": "integer", "index": 35, "name": "receipt_url", "comment": null}, "refunded": {"type": "boolean", "index": 36, "name": "refunded", "comment": null}, "shipping_address_city": {"type": "integer", "index": 37, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "integer", "index": 38, "name": "shipping_address_country", "comment": null}, "shipping_address_line_1": {"type": "integer", "index": 39, "name": "shipping_address_line_1", "comment": null}, "shipping_address_line_2": {"type": "integer", "index": 40, "name": "shipping_address_line_2", "comment": null}, "shipping_address_postal_code": {"type": "integer", "index": 41, "name": "shipping_address_postal_code", "comment": null}, "shipping_address_state": {"type": "integer", "index": 42, "name": "shipping_address_state", "comment": null}, "shipping_carrier": {"type": "integer", "index": 43, "name": "shipping_carrier", "comment": null}, "shipping_name": {"type": "integer", "index": 44, "name": "shipping_name", "comment": null}, "shipping_phone": {"type": "integer", "index": 45, "name": "shipping_phone", "comment": null}, "shipping_tracking_number": {"type": "integer", "index": 46, "name": "shipping_tracking_number", "comment": null}, "source_id": {"type": "integer", "index": 47, "name": "source_id", "comment": null}, "source_transfer": {"type": "integer", "index": 48, "name": "source_transfer", "comment": null}, "statement_descriptor": {"type": "integer", "index": 49, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 50, "name": "status", "comment": null}, "transfer_data_destination": {"type": "integer", "index": 51, "name": "transfer_data_destination", "comment": null}, "transfer_group": {"type": "integer", "index": 52, "name": "transfer_group", "comment": null}, "transfer_id": {"type": "integer", "index": 53, "name": "transfer_id", "comment": null}, "calculated_statement_descriptor": {"type": "text", "index": 54, "name": "calculated_statement_descriptor", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.charge_data"}, "seed.stripe_integration_tests.coupon_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "coupon_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "amount_off": {"type": "integer", "index": 2, "name": "amount_off", "comment": null}, "created": {"type": "timestamp without time zone", "index": 3, "name": "created", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "duration": {"type": "text", "index": 5, "name": "duration", "comment": null}, "duration_in_months": {"type": "integer", "index": 6, "name": "duration_in_months", "comment": null}, "livemode": {"type": "boolean", "index": 7, "name": "livemode", "comment": null}, "max_redemptions": {"type": "integer", "index": 8, "name": "max_redemptions", "comment": null}, "metadata": {"type": "integer", "index": 9, "name": "metadata", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "percent_off": {"type": "double precision", "index": 11, "name": "percent_off", "comment": null}, "redeem_by": {"type": "timestamp without time zone", "index": 12, "name": "redeem_by", "comment": null}, "times_redeemed": {"type": "integer", "index": 13, "name": "times_redeemed", "comment": null}, "valid": {"type": "boolean", "index": 14, "name": "valid", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 15, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.coupon_data"}, "seed.stripe_integration_tests.credit_note_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "credit_note_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "amount": {"type": "integer", "index": 2, "name": "amount", "comment": null}, "created": {"type": "timestamp without time zone", "index": 3, "name": "created", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "discount_amount": {"type": "integer", "index": 5, "name": "discount_amount", "comment": null}, "subtotal": {"type": "integer", "index": 6, "name": "subtotal", "comment": null}, "total": {"type": "integer", "index": 7, "name": "total", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "memo": {"type": "integer", "index": 9, "name": "memo", "comment": null}, "metadata": {"type": "text", "index": 10, "name": "metadata", "comment": null}, "number": {"type": "text", "index": 11, "name": "number", "comment": null}, "pdf": {"type": "text", "index": 12, "name": "pdf", "comment": null}, "reason": {"type": "integer", "index": 13, "name": "reason", "comment": null}, "status": {"type": "text", "index": 14, "name": "status", "comment": null}, "type": {"type": "text", "index": 15, "name": "type", "comment": null}, "voided_at": {"type": "timestamp without time zone", "index": 16, "name": "voided_at", "comment": null}, "customer_balance_transaction_id": {"type": "integer", "index": 17, "name": "customer_balance_transaction_id", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 18, "name": "invoice_id", "comment": null}, "refund_id": {"type": "text", "index": 19, "name": "refund_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 20, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.credit_note_data"}, "seed.stripe_integration_tests.credit_note_line_item_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "credit_note_line_item_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"credit_note_id": {"type": "text", "index": 1, "name": "credit_note_id", "comment": null}, "id": {"type": "text", "index": 2, "name": "id", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "discount_amount": {"type": "integer", "index": 4, "name": "discount_amount", "comment": null}, "description": {"type": "text", "index": 5, "name": "description", "comment": null}, "livemode": {"type": "boolean", "index": 6, "name": "livemode", "comment": null}, "quantity": {"type": "integer", "index": 7, "name": "quantity", "comment": null}, "type": {"type": "text", "index": 8, "name": "type", "comment": null}, "unit_amount": {"type": "integer", "index": 9, "name": "unit_amount", "comment": null}, "unit_amount_decimal": {"type": "integer", "index": 10, "name": "unit_amount_decimal", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.credit_note_line_item_data"}, "seed.stripe_integration_tests.customer_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "customer_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "account_balance": {"type": "integer", "index": 3, "name": "account_balance", "comment": null}, "address_city": {"type": "integer", "index": 4, "name": "address_city", "comment": null}, "address_country": {"type": "integer", "index": 5, "name": "address_country", "comment": null}, "address_line_1": {"type": "integer", "index": 6, "name": "address_line_1", "comment": null}, "address_line_2": {"type": "integer", "index": 7, "name": "address_line_2", "comment": null}, "address_postal_code": {"type": "integer", "index": 8, "name": "address_postal_code", "comment": null}, "address_state": {"type": "integer", "index": 9, "name": "address_state", "comment": null}, "balance": {"type": "integer", "index": 10, "name": "balance", "comment": null}, "bank_account_id": {"type": "text", "index": 11, "name": "bank_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "integer", "index": 13, "name": "currency", "comment": null}, "default_card_id": {"type": "integer", "index": 14, "name": "default_card_id", "comment": null}, "delinquent": {"type": "boolean", "index": 15, "name": "delinquent", "comment": null}, "description": {"type": "character varying(500)", "index": 16, "name": "description", "comment": null}, "email": {"type": "integer", "index": 17, "name": "email", "comment": null}, "invoice_prefix": {"type": "text", "index": 18, "name": "invoice_prefix", "comment": null}, "invoice_settings_default_payment_method": {"type": "integer", "index": 19, "name": "invoice_settings_default_payment_method", "comment": null}, "invoice_settings_footer": {"type": "integer", "index": 20, "name": "invoice_settings_footer", "comment": null}, "is_deleted": {"type": "boolean", "index": 21, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 22, "name": "livemode", "comment": null}, "name": {"type": "text", "index": 23, "name": "name", "comment": null}, "phone": {"type": "integer", "index": 24, "name": "phone", "comment": null}, "shipping_address_city": {"type": "integer", "index": 25, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "integer", "index": 26, "name": "shipping_address_country", "comment": null}, "shipping_address_line_1": {"type": "integer", "index": 27, "name": "shipping_address_line_1", "comment": null}, "shipping_address_line_2": {"type": "integer", "index": 28, "name": "shipping_address_line_2", "comment": null}, "shipping_address_postal_code": {"type": "integer", "index": 29, "name": "shipping_address_postal_code", "comment": null}, "shipping_address_state": {"type": "integer", "index": 30, "name": "shipping_address_state", "comment": null}, "shipping_carrier": {"type": "integer", "index": 31, "name": "shipping_carrier", "comment": null}, "shipping_name": {"type": "integer", "index": 32, "name": "shipping_name", "comment": null}, "shipping_phone": {"type": "integer", "index": 33, "name": "shipping_phone", "comment": null}, "shipping_tracking_number": {"type": "integer", "index": 34, "name": "shipping_tracking_number", "comment": null}, "source_id": {"type": "integer", "index": 35, "name": "source_id", "comment": null}, "tax_exempt": {"type": "text", "index": 36, "name": "tax_exempt", "comment": null}, "tax_info_tax_id": {"type": "integer", "index": 37, "name": "tax_info_tax_id", "comment": null}, "tax_info_type": {"type": "integer", "index": 38, "name": "tax_info_type", "comment": null}, "tax_info_verification_status": {"type": "integer", "index": 39, "name": "tax_info_verification_status", "comment": null}, "tax_info_verification_verified_name": {"type": "integer", "index": 40, "name": "tax_info_verification_verified_name", "comment": null}, "metadata": {"type": "text", "index": 41, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.customer_data"}, "seed.stripe_integration_tests.discount_data_postgres": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "discount_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "type": {"type": "integer", "index": 2, "name": "type", "comment": null}, "type_id": {"type": "text", "index": 3, "name": "type_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 4, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "bigint", "index": 5, "name": "amount", "comment": null}, "checkout_session_id": {"type": "integer", "index": 6, "name": "checkout_session_id", "comment": null}, "checkout_session_line_item_id": {"type": "integer", "index": 7, "name": "checkout_session_line_item_id", "comment": null}, "coupon_id": {"type": "text", "index": 8, "name": "coupon_id", "comment": null}, "credit_note_line_item_id": {"type": "text", "index": 9, "name": "credit_note_line_item_id", "comment": null}, "customer_id": {"type": "text", "index": 10, "name": "customer_id", "comment": null}, "end": {"type": "timestamp without time zone", "index": 11, "name": "end", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 12, "name": "invoice_id", "comment": null}, "invoice_item_id": {"type": "integer", "index": 13, "name": "invoice_item_id", "comment": null}, "promotion_code": {"type": "integer", "index": 14, "name": "promotion_code", "comment": null}, "start": {"type": "text", "index": 15, "name": "start", "comment": null}, "subscription_id": {"type": "text", "index": 16, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.discount_data_postgres"}, "seed.stripe_integration_tests.dispute_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "dispute_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "balance_transaction": {"type": "text", "index": 4, "name": "balance_transaction", "comment": null}, "charge_id": {"type": "text", "index": 5, "name": "charge_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 6, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 7, "name": "created", "comment": null}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": null}, "evidence_access_activity_log": {"type": "integer", "index": 9, "name": "evidence_access_activity_log", "comment": null}, "evidence_billing_address": {"type": "text", "index": 10, "name": "evidence_billing_address", "comment": null}, "evidence_cancellation_policy": {"type": "integer", "index": 11, "name": "evidence_cancellation_policy", "comment": null}, "evidence_cancellation_policy_disclosure": {"type": "integer", "index": 12, "name": "evidence_cancellation_policy_disclosure", "comment": null}, "evidence_cancellation_rebuttal": {"type": "integer", "index": 13, "name": "evidence_cancellation_rebuttal", "comment": null}, "evidence_customer_communication": {"type": "integer", "index": 14, "name": "evidence_customer_communication", "comment": null}, "evidence_customer_email_address": {"type": "text", "index": 15, "name": "evidence_customer_email_address", "comment": null}, "evidence_customer_name": {"type": "text", "index": 16, "name": "evidence_customer_name", "comment": null}, "evidence_customer_purchase_ip": {"type": "text", "index": 17, "name": "evidence_customer_purchase_ip", "comment": null}, "evidence_customer_signature": {"type": "integer", "index": 18, "name": "evidence_customer_signature", "comment": null}, "evidence_details_due_by": {"type": "text", "index": 19, "name": "evidence_details_due_by", "comment": null}, "evidence_details_has_evidence": {"type": "boolean", "index": 20, "name": "evidence_details_has_evidence", "comment": null}, "evidence_details_past_due": {"type": "boolean", "index": 21, "name": "evidence_details_past_due", "comment": null}, "evidence_details_submission_count": {"type": "integer", "index": 22, "name": "evidence_details_submission_count", "comment": null}, "evidence_duplicate_charge_documentation": {"type": "integer", "index": 23, "name": "evidence_duplicate_charge_documentation", "comment": null}, "evidence_duplicate_charge_explanation": {"type": "integer", "index": 24, "name": "evidence_duplicate_charge_explanation", "comment": null}, "evidence_duplicate_charge_id": {"type": "integer", "index": 25, "name": "evidence_duplicate_charge_id", "comment": null}, "evidence_product_description": {"type": "integer", "index": 26, "name": "evidence_product_description", "comment": null}, "evidence_receipt": {"type": "text", "index": 27, "name": "evidence_receipt", "comment": null}, "evidence_refund_policy": {"type": "integer", "index": 28, "name": "evidence_refund_policy", "comment": null}, "evidence_refund_policy_disclosure": {"type": "integer", "index": 29, "name": "evidence_refund_policy_disclosure", "comment": null}, "evidence_refund_refusal_explanation": {"type": "integer", "index": 30, "name": "evidence_refund_refusal_explanation", "comment": null}, "evidence_service_date": {"type": "integer", "index": 31, "name": "evidence_service_date", "comment": null}, "evidence_service_documentation": {"type": "integer", "index": 32, "name": "evidence_service_documentation", "comment": null}, "evidence_shipping_address": {"type": "integer", "index": 33, "name": "evidence_shipping_address", "comment": null}, "evidence_shipping_carrier": {"type": "integer", "index": 34, "name": "evidence_shipping_carrier", "comment": null}, "evidence_shipping_date": {"type": "integer", "index": 35, "name": "evidence_shipping_date", "comment": null}, "evidence_shipping_documentation": {"type": "integer", "index": 36, "name": "evidence_shipping_documentation", "comment": null}, "evidence_shipping_tracking_number": {"type": "integer", "index": 37, "name": "evidence_shipping_tracking_number", "comment": null}, "evidence_uncategorized_file": {"type": "integer", "index": 38, "name": "evidence_uncategorized_file", "comment": null}, "evidence_uncategorized_text": {"type": "integer", "index": 39, "name": "evidence_uncategorized_text", "comment": null}, "is_charge_refundable": {"type": "boolean", "index": 40, "name": "is_charge_refundable", "comment": null}, "livemode": {"type": "boolean", "index": 41, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 42, "name": "metadata", "comment": null}, "reason": {"type": "text", "index": 43, "name": "reason", "comment": null}, "status": {"type": "text", "index": 44, "name": "status", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.dispute_data"}, "seed.stripe_integration_tests.fee_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "fee_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": null}, "index": {"type": "integer", "index": 2, "name": "index", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "application": {"type": "integer", "index": 5, "name": "application", "comment": null}, "connected_account_id": {"type": "integer", "index": 6, "name": "connected_account_id", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "type": {"type": "text", "index": 9, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.fee_data"}, "seed.stripe_integration_tests.invoice_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "invoice_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 5, "name": "customer_id", "comment": null}, "due_date": {"type": "timestamp without time zone", "index": 6, "name": "due_date", "comment": null}, "description": {"type": "text", "index": 7, "name": "description", "comment": null}, "discountable": {"type": "boolean", "index": 8, "name": "discountable", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 9, "name": "invoice_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 10, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 11, "name": "livemode", "comment": null}, "period_end": {"type": "timestamp without time zone", "index": 12, "name": "period_end", "comment": null}, "period_start": {"type": "timestamp without time zone", "index": 13, "name": "period_start", "comment": null}, "proration": {"type": "boolean", "index": 14, "name": "proration", "comment": null}, "quantity": {"type": "integer", "index": 15, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 16, "name": "subscription_id", "comment": null}, "subscription_item_id": {"type": "text", "index": 17, "name": "subscription_item_id", "comment": null}, "unit_amount": {"type": "integer", "index": 18, "name": "unit_amount", "comment": null}, "default_payment_method_id": {"type": "text", "index": 19, "name": "default_payment_method_id", "comment": null}, "amount_due": {"type": "bigint", "index": 20, "name": "amount_due", "comment": null}, "amount_paid": {"type": "bigint", "index": 21, "name": "amount_paid", "comment": null}, "amount_remaining": {"type": "bigint", "index": 22, "name": "amount_remaining", "comment": null}, "post_payment_credit_notes_amount": {"type": "bigint", "index": 23, "name": "post_payment_credit_notes_amount", "comment": null}, "pre_payment_credit_notes_amount": {"type": "bigint", "index": 24, "name": "pre_payment_credit_notes_amount", "comment": null}, "subtotal": {"type": "bigint", "index": 25, "name": "subtotal", "comment": null}, "tax": {"type": "bigint", "index": 26, "name": "tax", "comment": null}, "total": {"type": "bigint", "index": 27, "name": "total", "comment": null}, "attempt_count": {"type": "bigint", "index": 28, "name": "attempt_count", "comment": null}, "auto_advance": {"type": "boolean", "index": 29, "name": "auto_advance", "comment": null}, "billing_reason": {"type": "text", "index": 30, "name": "billing_reason", "comment": null}, "metadata": {"type": "text", "index": 31, "name": "metadata", "comment": null}, "number": {"type": "bigint", "index": 32, "name": "number", "comment": null}, "paid": {"type": "boolean", "index": 33, "name": "paid", "comment": null}, "receipt_number": {"type": "integer", "index": 34, "name": "receipt_number", "comment": null}, "status": {"type": "text", "index": 35, "name": "status", "comment": null}, "source_relation": {"type": "integer", "index": 36, "name": "source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.invoice_data"}, "seed.stripe_integration_tests.invoice_line_item_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "invoice_line_item_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 2, "name": "invoice_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "description": {"type": "text", "index": 6, "name": "description", "comment": null}, "discountable": {"type": "boolean", "index": 7, "name": "discountable", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "period_end": {"type": "timestamp without time zone", "index": 9, "name": "period_end", "comment": null}, "period_start": {"type": "timestamp without time zone", "index": 10, "name": "period_start", "comment": null}, "plan_id": {"type": "text", "index": 11, "name": "plan_id", "comment": null}, "proration": {"type": "boolean", "index": 12, "name": "proration", "comment": null}, "quantity": {"type": "integer", "index": 13, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 14, "name": "subscription_id", "comment": null}, "subscription_item_id": {"type": "text", "index": 15, "name": "subscription_item_id", "comment": null}, "type": {"type": "integer", "index": 16, "name": "type", "comment": null}, "unique_id": {"type": "text", "index": 17, "name": "unique_id", "comment": null}, "metadata": {"type": "text", "index": 18, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.invoice_line_item_data"}, "seed.stripe_integration_tests.payment_intent_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payment_intent_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "amount_capturable": {"type": "integer", "index": 4, "name": "amount_capturable", "comment": null}, "amount_received": {"type": "integer", "index": 5, "name": "amount_received", "comment": null}, "application": {"type": "text", "index": 6, "name": "application", "comment": null}, "application_fee_amount": {"type": "integer", "index": 7, "name": "application_fee_amount", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 8, "name": "canceled_at", "comment": null}, "cancellation_reason": {"type": "integer", "index": 9, "name": "cancellation_reason", "comment": null}, "capture_method": {"type": "text", "index": 10, "name": "capture_method", "comment": null}, "confirmation_method": {"type": "text", "index": 11, "name": "confirmation_method", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "text", "index": 13, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "description": {"type": "text", "index": 15, "name": "description", "comment": null}, "last_payment_error_charge_id": {"type": "integer", "index": 16, "name": "last_payment_error_charge_id", "comment": null}, "last_payment_error_code": {"type": "integer", "index": 17, "name": "last_payment_error_code", "comment": null}, "last_payment_error_decline_code": {"type": "integer", "index": 18, "name": "last_payment_error_decline_code", "comment": null}, "last_payment_error_doc_url": {"type": "integer", "index": 19, "name": "last_payment_error_doc_url", "comment": null}, "last_payment_error_message": {"type": "integer", "index": 20, "name": "last_payment_error_message", "comment": null}, "last_payment_error_param": {"type": "integer", "index": 21, "name": "last_payment_error_param", "comment": null}, "last_payment_error_source_id": {"type": "integer", "index": 22, "name": "last_payment_error_source_id", "comment": null}, "last_payment_error_type": {"type": "integer", "index": 23, "name": "last_payment_error_type", "comment": null}, "livemode": {"type": "boolean", "index": 24, "name": "livemode", "comment": null}, "on_behalf_of": {"type": "integer", "index": 25, "name": "on_behalf_of", "comment": null}, "payment_method_id": {"type": "text", "index": 26, "name": "payment_method_id", "comment": null}, "receipt_email": {"type": "text", "index": 27, "name": "receipt_email", "comment": null}, "source_id": {"type": "integer", "index": 28, "name": "source_id", "comment": null}, "statement_descriptor": {"type": "integer", "index": 29, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 30, "name": "status", "comment": null}, "transfer_data_destination": {"type": "integer", "index": 31, "name": "transfer_data_destination", "comment": null}, "transfer_group": {"type": "integer", "index": 32, "name": "transfer_group", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.payment_intent_data"}, "seed.stripe_integration_tests.payment_method_card_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payment_method_card_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"payment_method_id": {"type": "text", "index": 1, "name": "payment_method_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "brand": {"type": "text", "index": 3, "name": "brand", "comment": null}, "charge_id": {"type": "integer", "index": 4, "name": "charge_id", "comment": null}, "description": {"type": "integer", "index": 5, "name": "description", "comment": null}, "fingerprint": {"type": "text", "index": 6, "name": "fingerprint", "comment": null}, "funding": {"type": "text", "index": 7, "name": "funding", "comment": null}, "type": {"type": "integer", "index": 8, "name": "type", "comment": null}, "wallet_type": {"type": "integer", "index": 9, "name": "wallet_type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.payment_method_card_data"}, "seed.stripe_integration_tests.payment_method_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payment_method_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "billing_detail_address_city": {"type": "integer", "index": 3, "name": "billing_detail_address_city", "comment": null}, "billing_detail_address_country": {"type": "integer", "index": 4, "name": "billing_detail_address_country", "comment": null}, "billing_detail_address_line_1": {"type": "integer", "index": 5, "name": "billing_detail_address_line_1", "comment": null}, "billing_detail_address_line_2": {"type": "integer", "index": 6, "name": "billing_detail_address_line_2", "comment": null}, "billing_detail_address_postal_code": {"type": "text", "index": 7, "name": "billing_detail_address_postal_code", "comment": null}, "billing_detail_address_state": {"type": "integer", "index": 8, "name": "billing_detail_address_state", "comment": null}, "billing_detail_email": {"type": "text", "index": 9, "name": "billing_detail_email", "comment": null}, "billing_detail_name": {"type": "text", "index": 10, "name": "billing_detail_name", "comment": null}, "billing_detail_phone": {"type": "integer", "index": 11, "name": "billing_detail_phone", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "customer_id": {"type": "text", "index": 13, "name": "customer_id", "comment": null}, "livemode": {"type": "boolean", "index": 14, "name": "livemode", "comment": null}, "type": {"type": "text", "index": 15, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.payment_method_data"}, "seed.stripe_integration_tests.payout_balance_transaction_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payout_balance_transaction_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"payout_id": {"type": "text", "index": 1, "name": "payout_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "balance_transaction_id": {"type": "text", "index": 3, "name": "balance_transaction_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.payout_balance_transaction_data"}, "seed.stripe_integration_tests.payout_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payout_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "arrival_date": {"type": "timestamp without time zone", "index": 4, "name": "arrival_date", "comment": null}, "automatic": {"type": "boolean", "index": 5, "name": "automatic", "comment": null}, "balance_transaction_id": {"type": "text", "index": 6, "name": "balance_transaction_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 7, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 8, "name": "created", "comment": null}, "currency": {"type": "text", "index": 9, "name": "currency", "comment": null}, "description": {"type": "text", "index": 10, "name": "description", "comment": null}, "destination_bank_account_id": {"type": "character varying(500)", "index": 11, "name": "destination_bank_account_id", "comment": null}, "destination_card_id": {"type": "character varying(500)", "index": 12, "name": "destination_card_id", "comment": null}, "failure_balance_transaction_id": {"type": "integer", "index": 13, "name": "failure_balance_transaction_id", "comment": null}, "failure_code": {"type": "integer", "index": 14, "name": "failure_code", "comment": null}, "failure_message": {"type": "integer", "index": 15, "name": "failure_message", "comment": null}, "livemode": {"type": "boolean", "index": 16, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 17, "name": "metadata", "comment": null}, "method": {"type": "text", "index": 18, "name": "method", "comment": null}, "source_type": {"type": "text", "index": 19, "name": "source_type", "comment": null}, "statement_descriptor": {"type": "integer", "index": 20, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 21, "name": "status", "comment": null}, "type": {"type": "text", "index": 22, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.payout_data"}, "seed.stripe_integration_tests.plan_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "plan_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "aggregate_usage": {"type": "integer", "index": 4, "name": "aggregate_usage", "comment": null}, "amount": {"type": "integer", "index": 5, "name": "amount", "comment": null}, "billing_scheme": {"type": "text", "index": 6, "name": "billing_scheme", "comment": null}, "created": {"type": "timestamp without time zone", "index": 7, "name": "created", "comment": null}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": null}, "interval": {"type": "text", "index": 9, "name": "interval", "comment": null}, "interval_count": {"type": "bigint", "index": 10, "name": "interval_count", "comment": null}, "is_deleted": {"type": "boolean", "index": 11, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 12, "name": "livemode", "comment": null}, "nickname": {"type": "integer", "index": 13, "name": "nickname", "comment": null}, "product_id": {"type": "text", "index": 14, "name": "product_id", "comment": null}, "tiers_mode": {"type": "integer", "index": 15, "name": "tiers_mode", "comment": null}, "transform_usage_divide_by": {"type": "integer", "index": 16, "name": "transform_usage_divide_by", "comment": null}, "transform_usage_round": {"type": "integer", "index": 17, "name": "transform_usage_round", "comment": null}, "trial_period_days": {"type": "integer", "index": 18, "name": "trial_period_days", "comment": null}, "usage_type": {"type": "text", "index": 19, "name": "usage_type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.plan_data"}, "seed.stripe_integration_tests.price_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "price_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "billing_scheme": {"type": "text", "index": 4, "name": "billing_scheme", "comment": null}, "created": {"type": "timestamp without time zone", "index": 5, "name": "created", "comment": null}, "currency": {"type": "text", "index": 6, "name": "currency", "comment": null}, "invoice_item_id": {"type": "text", "index": 7, "name": "invoice_item_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 8, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 9, "name": "livemode", "comment": null}, "lookup_key": {"type": "integer", "index": 10, "name": "lookup_key", "comment": null}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": null}, "nickname": {"type": "text", "index": 12, "name": "nickname", "comment": null}, "product_id": {"type": "text", "index": 13, "name": "product_id", "comment": null}, "recurring_aggregate_usage": {"type": "character varying(100)", "index": 14, "name": "recurring_aggregate_usage", "comment": null}, "recurring_interval": {"type": "character varying(100)", "index": 15, "name": "recurring_interval", "comment": null}, "recurring_interval_count": {"type": "bigint", "index": 16, "name": "recurring_interval_count", "comment": null}, "recurring_usage_type": {"type": "character varying(100)", "index": 17, "name": "recurring_usage_type", "comment": null}, "tiers_mode": {"type": "integer", "index": 18, "name": "tiers_mode", "comment": null}, "transform_quantity_divide_by": {"type": "integer", "index": 19, "name": "transform_quantity_divide_by", "comment": null}, "transform_quantity_round": {"type": "integer", "index": 20, "name": "transform_quantity_round", "comment": null}, "type": {"type": "text", "index": 21, "name": "type", "comment": null}, "unit_amount": {"type": "integer", "index": 22, "name": "unit_amount", "comment": null}, "unit_amount_decimal": {"type": "integer", "index": 23, "name": "unit_amount_decimal", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.price_data"}, "seed.stripe_integration_tests.product_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "product_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "caption": {"type": "text", "index": 4, "name": "caption", "comment": null}, "created": {"type": "timestamp without time zone", "index": 5, "name": "created", "comment": null}, "description": {"type": "text", "index": 6, "name": "description", "comment": null}, "is_deleted": {"type": "boolean", "index": 7, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 9, "name": "metadata", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "package_dimensions_height": {"type": "integer", "index": 11, "name": "package_dimensions_height", "comment": null}, "package_dimensions_length": {"type": "integer", "index": 12, "name": "package_dimensions_length", "comment": null}, "package_dimensions_weight": {"type": "integer", "index": 13, "name": "package_dimensions_weight", "comment": null}, "package_dimensions_width": {"type": "integer", "index": 14, "name": "package_dimensions_width", "comment": null}, "shippable": {"type": "boolean", "index": 15, "name": "shippable", "comment": null}, "statement_descriptor": {"type": "integer", "index": 16, "name": "statement_descriptor", "comment": null}, "type": {"type": "text", "index": 17, "name": "type", "comment": null}, "unit_label": {"type": "integer", "index": 18, "name": "unit_label", "comment": null}, "updated": {"type": "text", "index": 19, "name": "updated", "comment": null}, "url": {"type": "text", "index": 20, "name": "url", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.product_data"}, "seed.stripe_integration_tests.refund_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "refund_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "balance_transaction_id": {"type": "text", "index": 4, "name": "balance_transaction_id", "comment": null}, "charge_id": {"type": "text", "index": 5, "name": "charge_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "integer", "index": 8, "name": "description", "comment": null}, "failure_balance_transaction_id": {"type": "integer", "index": 9, "name": "failure_balance_transaction_id", "comment": null}, "failure_reason": {"type": "integer", "index": 10, "name": "failure_reason", "comment": null}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": null}, "reason": {"type": "text", "index": 12, "name": "reason", "comment": null}, "receipt_number": {"type": "text", "index": 13, "name": "receipt_number", "comment": null}, "status": {"type": "text", "index": 14, "name": "status", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.refund_data"}, "seed.stripe_integration_tests.subscription_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "application_fee_percent": {"type": "integer", "index": 3, "name": "application_fee_percent", "comment": null}, "billing": {"type": "text", "index": 4, "name": "billing", "comment": null}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 5, "name": "billing_cycle_anchor", "comment": null}, "billing_threshold_amount_gte": {"type": "integer", "index": 6, "name": "billing_threshold_amount_gte", "comment": null}, "billing_threshold_reset_billing_cycle_anchor": {"type": "boolean", "index": 7, "name": "billing_threshold_reset_billing_cycle_anchor", "comment": null}, "cancel_at": {"type": "timestamp without time zone", "index": 8, "name": "cancel_at", "comment": null}, "cancel_at_period_end": {"type": "boolean", "index": 9, "name": "cancel_at_period_end", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 10, "name": "canceled_at", "comment": null}, "created": {"type": "timestamp without time zone", "index": 11, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 12, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 13, "name": "current_period_start", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "days_until_due": {"type": "integer", "index": 15, "name": "days_until_due", "comment": null}, "default_source_id": {"type": "text", "index": 16, "name": "default_source_id", "comment": null}, "ended_at": {"type": "timestamp without time zone", "index": 17, "name": "ended_at", "comment": null}, "livemode": {"type": "boolean", "index": 18, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 19, "name": "metadata", "comment": null}, "quantity": {"type": "integer", "index": 20, "name": "quantity", "comment": null}, "start_date": {"type": "timestamp without time zone", "index": 21, "name": "start_date", "comment": null}, "status": {"type": "text", "index": 22, "name": "status", "comment": null}, "tax_percent": {"type": "integer", "index": 23, "name": "tax_percent", "comment": null}, "trial_end": {"type": "timestamp without time zone", "index": 24, "name": "trial_end", "comment": null}, "trial_start": {"type": "timestamp without time zone", "index": 25, "name": "trial_start", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.subscription_data"}, "seed.stripe_integration_tests.subscription_discount_data_postgres": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_discount_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "checkout_session": {"type": "integer", "index": 3, "name": "checkout_session", "comment": null}, "coupon_id": {"type": "text", "index": 4, "name": "coupon_id", "comment": null}, "customer_id": {"type": "text", "index": 5, "name": "customer_id", "comment": null}, "end": {"type": "timestamp without time zone", "index": 6, "name": "end", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 7, "name": "invoice_id", "comment": null}, "invoice_item_id": {"type": "integer", "index": 8, "name": "invoice_item_id", "comment": null}, "start": {"type": "text", "index": 9, "name": "start", "comment": null}, "subscription_id": {"type": "text", "index": 10, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.subscription_discount_data_postgres"}, "seed.stripe_integration_tests.subscription_history_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_history_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "_fivetran_active": {"type": "boolean", "index": 3, "name": "_fivetran_active", "comment": null}, "application_fee_percent": {"type": "integer", "index": 4, "name": "application_fee_percent", "comment": null}, "billing": {"type": "text", "index": 5, "name": "billing", "comment": null}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 6, "name": "billing_cycle_anchor", "comment": null}, "billing_threshold_amount_gte": {"type": "integer", "index": 7, "name": "billing_threshold_amount_gte", "comment": null}, "billing_threshold_reset_billing_cycle_anchor": {"type": "boolean", "index": 8, "name": "billing_threshold_reset_billing_cycle_anchor", "comment": null}, "cancel_at": {"type": "timestamp without time zone", "index": 9, "name": "cancel_at", "comment": null}, "cancel_at_period_end": {"type": "boolean", "index": 10, "name": "cancel_at_period_end", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 11, "name": "canceled_at", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 13, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 14, "name": "current_period_start", "comment": null}, "customer_id": {"type": "text", "index": 15, "name": "customer_id", "comment": null}, "days_until_due": {"type": "integer", "index": 16, "name": "days_until_due", "comment": null}, "default_source_id": {"type": "text", "index": 17, "name": "default_source_id", "comment": null}, "ended_at": {"type": "timestamp without time zone", "index": 18, "name": "ended_at", "comment": null}, "livemode": {"type": "boolean", "index": 19, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 20, "name": "metadata", "comment": null}, "quantity": {"type": "integer", "index": 21, "name": "quantity", "comment": null}, "start_date": {"type": "timestamp without time zone", "index": 22, "name": "start_date", "comment": null}, "status": {"type": "text", "index": 23, "name": "status", "comment": null}, "tax_percent": {"type": "integer", "index": 24, "name": "tax_percent", "comment": null}, "trial_end": {"type": "timestamp without time zone", "index": 25, "name": "trial_end", "comment": null}, "trial_start": {"type": "timestamp without time zone", "index": 26, "name": "trial_start", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.subscription_history_data"}, "seed.stripe_integration_tests.subscription_item_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_item_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "created": {"type": "timestamp without time zone", "index": 2, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 3, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 4, "name": "current_period_start", "comment": null}, "id": {"type": "text", "index": 5, "name": "id", "comment": null}, "metadata": {"type": "text", "index": 6, "name": "metadata", "comment": null}, "plan_id": {"type": "text", "index": 7, "name": "plan_id", "comment": null}, "quantity": {"type": "bigint", "index": 8, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 9, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.subscription_item_data"}, "seed.stripe_integration_tests.transfer_data": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "transfer_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "amount_reversed": {"type": "integer", "index": 4, "name": "amount_reversed", "comment": null}, "balance_transaction_id": {"type": "text", "index": 5, "name": "balance_transaction_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "destination": {"type": "text", "index": 9, "name": "destination", "comment": null}, "destination_payment": {"type": "integer", "index": 10, "name": "destination_payment", "comment": null}, "destination_payment_id": {"type": "integer", "index": 11, "name": "destination_payment_id", "comment": null}, "livemode": {"type": "boolean", "index": 12, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 13, "name": "metadata", "comment": null}, "reversed": {"type": "boolean", "index": 14, "name": "reversed", "comment": null}, "source_transaction": {"type": "integer", "index": 15, "name": "source_transaction", "comment": null}, "source_transaction_id": {"type": "integer", "index": 16, "name": "source_transaction_id", "comment": null}, "source_type": {"type": "text", "index": 17, "name": "source_type", "comment": null}, "transfer_group": {"type": "integer", "index": 18, "name": "transfer_group", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.stripe_integration_tests.transfer_data"}, "model.stripe.int_stripe__account_daily": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "int_stripe__account_daily", "database": "postgres", "comment": "Each record represents each day's ending balances per account.", "owner": "postgres"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "account_id": {"type": "integer", "index": 2, "name": "account_id", "comment": null}, "source_relation": {"type": "text", "index": 3, "name": "source_relation", "comment": null}, "total_daily_sales_amount": {"type": "bigint", "index": 4, "name": "total_daily_sales_amount", "comment": null}, "total_daily_refunds_amount": {"type": "bigint", "index": 5, "name": "total_daily_refunds_amount", "comment": null}, "total_daily_adjustments_amount": {"type": "bigint", "index": 6, "name": "total_daily_adjustments_amount", "comment": null}, "total_daily_other_transactions_amount": {"type": "bigint", "index": 7, "name": "total_daily_other_transactions_amount", "comment": null}, "total_daily_gross_transaction_amount": {"type": "bigint", "index": 8, "name": "total_daily_gross_transaction_amount", "comment": null}, "total_daily_net_transactions_amount": {"type": "bigint", "index": 9, "name": "total_daily_net_transactions_amount", "comment": null}, "total_daily_payout_fee_amount": {"type": "numeric", "index": 10, "name": "total_daily_payout_fee_amount", "comment": null}, "total_daily_gross_payout_amount": {"type": "bigint", "index": 11, "name": "total_daily_gross_payout_amount", "comment": null}, "daily_net_activity_amount": {"type": "numeric", "index": 12, "name": "daily_net_activity_amount", "comment": null}, "daily_end_balance_amount": {"type": "numeric", "index": 13, "name": "daily_end_balance_amount", "comment": null}, "total_daily_sales_count": {"type": "bigint", "index": 14, "name": "total_daily_sales_count", "comment": null}, "total_daily_payouts_count": {"type": "bigint", "index": 15, "name": "total_daily_payouts_count", "comment": null}, "total_daily_adjustments_count": {"type": "bigint", "index": 16, "name": "total_daily_adjustments_count", "comment": null}, "total_daily_failed_charge_count": {"type": "bigint", "index": 17, "name": "total_daily_failed_charge_count", "comment": null}, "total_daily_failed_charge_amount": {"type": "numeric", "index": 18, "name": "total_daily_failed_charge_amount", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.int_stripe__account_daily"}, "model.stripe.int_stripe__account_partitions": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "int_stripe__account_partitions", "database": "postgres", "comment": "Each record is a group of partitioned account totals updating null values with zeroes to eventually calculate running totals downstream.", "owner": "postgres"}, "columns": {"account_id": {"type": "integer", "index": 1, "name": "account_id", "comment": null}, "date_day": {"type": "date", "index": 2, "name": "date_day", "comment": null}, "date_week": {"type": "date", "index": 3, "name": "date_week", "comment": null}, "date_month": {"type": "date", "index": 4, "name": "date_month", "comment": null}, "date_year": {"type": "date", "index": 5, "name": "date_year", "comment": null}, "total_daily_sales_amount": {"type": "numeric", "index": 6, "name": "total_daily_sales_amount", "comment": null}, "total_daily_refunds_amount": {"type": "numeric", "index": 7, "name": "total_daily_refunds_amount", "comment": null}, "total_daily_adjustments_amount": {"type": "numeric", "index": 8, "name": "total_daily_adjustments_amount", "comment": null}, "total_daily_other_transactions_amount": {"type": "numeric", "index": 9, "name": "total_daily_other_transactions_amount", "comment": null}, "total_daily_gross_transaction_amount": {"type": "numeric", "index": 10, "name": "total_daily_gross_transaction_amount", "comment": null}, "total_daily_net_transactions_amount": {"type": "numeric", "index": 11, "name": "total_daily_net_transactions_amount", "comment": null}, "total_daily_payout_fee_amount": {"type": "numeric", "index": 12, "name": "total_daily_payout_fee_amount", "comment": null}, "total_daily_gross_payout_amount": {"type": "numeric", "index": 13, "name": "total_daily_gross_payout_amount", "comment": null}, "daily_net_activity_amount": {"type": "numeric", "index": 14, "name": "daily_net_activity_amount", "comment": null}, "daily_end_balance_amount": {"type": "numeric", "index": 15, "name": "daily_end_balance_amount", "comment": null}, "total_daily_sales_count": {"type": "numeric", "index": 16, "name": "total_daily_sales_count", "comment": null}, "total_daily_payouts_count": {"type": "numeric", "index": 17, "name": "total_daily_payouts_count", "comment": null}, "total_daily_adjustments_count": {"type": "numeric", "index": 18, "name": "total_daily_adjustments_count", "comment": null}, "total_daily_failed_charge_count": {"type": "numeric", "index": 19, "name": "total_daily_failed_charge_count", "comment": null}, "total_daily_failed_charge_amount": {"type": "numeric", "index": 20, "name": "total_daily_failed_charge_amount", "comment": null}, "rolling_total_daily_sales_amount": {"type": "numeric", "index": 21, "name": "rolling_total_daily_sales_amount", "comment": null}, "rolling_total_daily_refunds_amount": {"type": "numeric", "index": 22, "name": "rolling_total_daily_refunds_amount", "comment": null}, "rolling_total_daily_adjustments_amount": {"type": "numeric", "index": 23, "name": "rolling_total_daily_adjustments_amount", "comment": null}, "rolling_total_daily_other_transactions_amount": {"type": "numeric", "index": 24, "name": "rolling_total_daily_other_transactions_amount", "comment": null}, "rolling_total_daily_gross_transaction_amount": {"type": "numeric", "index": 25, "name": "rolling_total_daily_gross_transaction_amount", "comment": null}, "rolling_total_daily_net_transactions_amount": {"type": "numeric", "index": 26, "name": "rolling_total_daily_net_transactions_amount", "comment": null}, "rolling_total_daily_payout_fee_amount": {"type": "numeric", "index": 27, "name": "rolling_total_daily_payout_fee_amount", "comment": null}, "rolling_total_daily_gross_payout_amount": {"type": "numeric", "index": 28, "name": "rolling_total_daily_gross_payout_amount", "comment": null}, "rolling_daily_net_activity_amount": {"type": "numeric", "index": 29, "name": "rolling_daily_net_activity_amount", "comment": null}, "rolling_daily_end_balance_amount": {"type": "numeric", "index": 30, "name": "rolling_daily_end_balance_amount", "comment": null}, "rolling_total_daily_sales_count": {"type": "numeric", "index": 31, "name": "rolling_total_daily_sales_count", "comment": null}, "rolling_total_daily_payouts_count": {"type": "numeric", "index": 32, "name": "rolling_total_daily_payouts_count", "comment": null}, "rolling_total_daily_adjustments_count": {"type": "numeric", "index": 33, "name": "rolling_total_daily_adjustments_count", "comment": null}, "rolling_total_daily_failed_charge_count": {"type": "numeric", "index": 34, "name": "rolling_total_daily_failed_charge_count", "comment": null}, "rolling_total_daily_failed_charge_amount": {"type": "numeric", "index": 35, "name": "rolling_total_daily_failed_charge_amount", "comment": null}, "date_index": {"type": "bigint", "index": 36, "name": "date_index", "comment": null}, "source_relation": {"type": "text", "index": 37, "name": "source_relation", "comment": null}, "rolling_total_daily_sales_amount_partition": {"type": "bigint", "index": 38, "name": "rolling_total_daily_sales_amount_partition", "comment": null}, "rolling_total_daily_refunds_amount_partition": {"type": "bigint", "index": 39, "name": "rolling_total_daily_refunds_amount_partition", "comment": null}, "rolling_total_daily_adjustments_amount_partition": {"type": "bigint", "index": 40, "name": "rolling_total_daily_adjustments_amount_partition", "comment": null}, "rolling_total_daily_other_transactions_amount_partition": {"type": "bigint", "index": 41, "name": "rolling_total_daily_other_transactions_amount_partition", "comment": null}, "rolling_total_daily_gross_transaction_amount_partition": {"type": "bigint", "index": 42, "name": "rolling_total_daily_gross_transaction_amount_partition", "comment": null}, "rolling_total_daily_net_transactions_amount_partition": {"type": "bigint", "index": 43, "name": "rolling_total_daily_net_transactions_amount_partition", "comment": null}, "rolling_total_daily_payout_fee_amount_partition": {"type": "bigint", "index": 44, "name": "rolling_total_daily_payout_fee_amount_partition", "comment": null}, "rolling_total_daily_gross_payout_amount_partition": {"type": "bigint", "index": 45, "name": "rolling_total_daily_gross_payout_amount_partition", "comment": null}, "rolling_daily_net_activity_amount_partition": {"type": "bigint", "index": 46, "name": "rolling_daily_net_activity_amount_partition", "comment": null}, "rolling_daily_end_balance_amount_partition": {"type": "bigint", "index": 47, "name": "rolling_daily_end_balance_amount_partition", "comment": null}, "rolling_total_daily_sales_count_partition": {"type": "bigint", "index": 48, "name": "rolling_total_daily_sales_count_partition", "comment": null}, "rolling_total_daily_payouts_count_partition": {"type": "bigint", "index": 49, "name": "rolling_total_daily_payouts_count_partition", "comment": null}, "rolling_total_daily_adjustments_count_partition": {"type": "bigint", "index": 50, "name": "rolling_total_daily_adjustments_count_partition", "comment": null}, "rolling_total_daily_failed_charge_count_partition": {"type": "bigint", "index": 51, "name": "rolling_total_daily_failed_charge_count_partition", "comment": null}, "rolling_total_daily_failed_charge_amount_partition": {"type": "bigint", "index": 52, "name": "rolling_total_daily_failed_charge_amount_partition", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.int_stripe__account_partitions"}, "model.stripe.int_stripe__account_rolling_totals": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "int_stripe__account_rolling_totals", "database": "postgres", "comment": "Each record represents each day's ending balances per account, in addition to changes over time.", "owner": "postgres"}, "columns": {"account_id": {"type": "integer", "index": 1, "name": "account_id", "comment": null}, "date_day": {"type": "date", "index": 2, "name": "date_day", "comment": null}, "date_week": {"type": "date", "index": 3, "name": "date_week", "comment": null}, "date_month": {"type": "date", "index": 4, "name": "date_month", "comment": null}, "date_year": {"type": "date", "index": 5, "name": "date_year", "comment": null}, "total_daily_sales_amount": {"type": "numeric", "index": 6, "name": "total_daily_sales_amount", "comment": null}, "total_daily_refunds_amount": {"type": "numeric", "index": 7, "name": "total_daily_refunds_amount", "comment": null}, "total_daily_adjustments_amount": {"type": "numeric", "index": 8, "name": "total_daily_adjustments_amount", "comment": null}, "total_daily_other_transactions_amount": {"type": "numeric", "index": 9, "name": "total_daily_other_transactions_amount", "comment": null}, "total_daily_gross_transaction_amount": {"type": "numeric", "index": 10, "name": "total_daily_gross_transaction_amount", "comment": null}, "total_daily_net_transactions_amount": {"type": "numeric", "index": 11, "name": "total_daily_net_transactions_amount", "comment": null}, "total_daily_payout_fee_amount": {"type": "numeric", "index": 12, "name": "total_daily_payout_fee_amount", "comment": null}, "total_daily_gross_payout_amount": {"type": "numeric", "index": 13, "name": "total_daily_gross_payout_amount", "comment": null}, "daily_net_activity_amount": {"type": "numeric", "index": 14, "name": "daily_net_activity_amount", "comment": null}, "daily_end_balance_amount": {"type": "numeric", "index": 15, "name": "daily_end_balance_amount", "comment": null}, "total_daily_sales_count": {"type": "numeric", "index": 16, "name": "total_daily_sales_count", "comment": null}, "total_daily_payouts_count": {"type": "numeric", "index": 17, "name": "total_daily_payouts_count", "comment": null}, "total_daily_adjustments_count": {"type": "numeric", "index": 18, "name": "total_daily_adjustments_count", "comment": null}, "total_daily_failed_charge_count": {"type": "numeric", "index": 19, "name": "total_daily_failed_charge_count", "comment": null}, "total_daily_failed_charge_amount": {"type": "numeric", "index": 20, "name": "total_daily_failed_charge_amount", "comment": null}, "rolling_total_daily_sales_amount": {"type": "numeric", "index": 21, "name": "rolling_total_daily_sales_amount", "comment": null}, "rolling_total_daily_refunds_amount": {"type": "numeric", "index": 22, "name": "rolling_total_daily_refunds_amount", "comment": null}, "rolling_total_daily_adjustments_amount": {"type": "numeric", "index": 23, "name": "rolling_total_daily_adjustments_amount", "comment": null}, "rolling_total_daily_other_transactions_amount": {"type": "numeric", "index": 24, "name": "rolling_total_daily_other_transactions_amount", "comment": null}, "rolling_total_daily_gross_transaction_amount": {"type": "numeric", "index": 25, "name": "rolling_total_daily_gross_transaction_amount", "comment": null}, "rolling_total_daily_net_transactions_amount": {"type": "numeric", "index": 26, "name": "rolling_total_daily_net_transactions_amount", "comment": null}, "rolling_total_daily_payout_fee_amount": {"type": "numeric", "index": 27, "name": "rolling_total_daily_payout_fee_amount", "comment": null}, "rolling_total_daily_gross_payout_amount": {"type": "numeric", "index": 28, "name": "rolling_total_daily_gross_payout_amount", "comment": null}, "rolling_daily_net_activity_amount": {"type": "numeric", "index": 29, "name": "rolling_daily_net_activity_amount", "comment": null}, "rolling_daily_end_balance_amount": {"type": "numeric", "index": 30, "name": "rolling_daily_end_balance_amount", "comment": null}, "rolling_total_daily_sales_count": {"type": "numeric", "index": 31, "name": "rolling_total_daily_sales_count", "comment": null}, "rolling_total_daily_payouts_count": {"type": "numeric", "index": 32, "name": "rolling_total_daily_payouts_count", "comment": null}, "rolling_total_daily_adjustments_count": {"type": "numeric", "index": 33, "name": "rolling_total_daily_adjustments_count", "comment": null}, "rolling_total_daily_failed_charge_count": {"type": "numeric", "index": 34, "name": "rolling_total_daily_failed_charge_count", "comment": null}, "rolling_total_daily_failed_charge_amount": {"type": "numeric", "index": 35, "name": "rolling_total_daily_failed_charge_amount", "comment": null}, "date_index": {"type": "bigint", "index": 36, "name": "date_index", "comment": null}, "source_relation": {"type": "text", "index": 37, "name": "source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.int_stripe__account_rolling_totals"}, "model.stripe.int_stripe__date_spine": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "int_stripe__date_spine", "database": "postgres", "comment": "Each record represents a day of each calendar year.", "owner": "postgres"}, "columns": {"account_id": {"type": "integer", "index": 1, "name": "account_id", "comment": null}, "source_relation": {"type": "text", "index": 2, "name": "source_relation", "comment": null}, "date_day": {"type": "date", "index": 3, "name": "date_day", "comment": null}, "date_week": {"type": "date", "index": 4, "name": "date_week", "comment": null}, "date_month": {"type": "date", "index": 5, "name": "date_month", "comment": null}, "date_year": {"type": "date", "index": 6, "name": "date_year", "comment": null}, "date_index": {"type": "bigint", "index": 7, "name": "date_index", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.int_stripe__date_spine"}, "model.stripe.int_stripe__incomplete_charges": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "int_stripe__incomplete_charges", "database": "postgres", "comment": "Each record represents a charge that is incomplete.", "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "character varying(500)", "index": 1, "name": "balance_transaction_id", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 2, "name": "created_at", "comment": null}, "customer_id": {"type": "text", "index": 3, "name": "customer_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 4, "name": "connected_account_id", "comment": null}, "amount": {"type": "bigint", "index": 5, "name": "amount", "comment": null}, "source_relation": {"type": "text", "index": 6, "name": "source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.int_stripe__incomplete_charges"}, "model.stripe.stg_stripe__account": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__account", "database": "postgres", "comment": "Properties belonging to a Stripe account.", "owner": "postgres"}, "columns": {"account_id": {"type": "integer", "index": 1, "name": "account_id", "comment": "Unique identifier for the object."}, "business_profile_mcc": {"type": "integer", "index": 2, "name": "business_profile_mcc", "comment": "The merchant category code for the account. MCCs are used to classify businesses based on the goods or services they provide."}, "business_profile_name": {"type": "text", "index": 3, "name": "business_profile_name", "comment": "The customer-facing business name."}, "business_type": {"type": "integer", "index": 4, "name": "business_type", "comment": "The business type."}, "charges_enabled": {"type": "boolean", "index": 5, "name": "charges_enabled", "comment": "Whether the account can create live charges."}, "company_address_city": {"type": "integer", "index": 6, "name": "company_address_city", "comment": "City, district, suburb, town, or village."}, "company_address_country": {"type": "integer", "index": 7, "name": "company_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "company_address_line_1": {"type": "integer", "index": 8, "name": "company_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "company_address_line_2": {"type": "integer", "index": 9, "name": "company_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "company_address_postal_code": {"type": "integer", "index": 10, "name": "company_address_postal_code", "comment": "ZIP or postal code."}, "company_address_state": {"type": "integer", "index": 11, "name": "company_address_state", "comment": "State, county, province, or region."}, "company_name": {"type": "integer", "index": 12, "name": "company_name", "comment": "The company\u2019s legal name."}, "company_phone": {"type": "integer", "index": 13, "name": "company_phone", "comment": "The company\u2019s phone number (used for verification)."}, "country": {"type": "text", "index": 14, "name": "country", "comment": "The account's country."}, "created_at": {"type": "timestamp without time zone", "index": 15, "name": "created_at", "comment": "Time at which the account was connected. Measured in seconds since the Unix epoch."}, "default_currency": {"type": "text", "index": 16, "name": "default_currency", "comment": "Three-letter ISO currency code representing the default currency for the account. This must be a currency that Stripe supports in the account\u2019s country."}, "email": {"type": "text", "index": 17, "name": "email", "comment": "An email address associated with the account. You can treat this as metadata; it is not used for authentication or messaging account holders."}, "is_deleted": {"type": "boolean", "index": 18, "name": "is_deleted", "comment": "Boolean of whether account has been deleted. Accounts created using test-mode keys can be deleted at any time. Standard accounts created using live-mode keys cannot be deleted. Custom or Express accounts created using live-mode keys can only be deleted once all balances are zero."}, "metadata": {"type": "integer", "index": 19, "name": "metadata", "comment": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata."}, "is_payouts_enabled": {"type": "boolean", "index": 20, "name": "is_payouts_enabled", "comment": "Boolean of whether payouts are enabled."}, "account_type": {"type": "text", "index": 21, "name": "account_type", "comment": "Account type"}, "source_relation": {"type": "text", "index": 22, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__account"}, "model.stripe.stg_stripe__account_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__account_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "business_profile_mcc": {"type": "integer", "index": 3, "name": "business_profile_mcc", "comment": null}, "business_profile_name": {"type": "text", "index": 4, "name": "business_profile_name", "comment": null}, "business_profile_product_description": {"type": "integer", "index": 5, "name": "business_profile_product_description", "comment": null}, "business_profile_support_address_city": {"type": "text", "index": 6, "name": "business_profile_support_address_city", "comment": null}, "business_profile_support_address_country": {"type": "text", "index": 7, "name": "business_profile_support_address_country", "comment": null}, "business_profile_support_address_line_1": {"type": "text", "index": 8, "name": "business_profile_support_address_line_1", "comment": null}, "business_profile_support_address_line_2": {"type": "text", "index": 9, "name": "business_profile_support_address_line_2", "comment": null}, "business_profile_support_address_postal_code": {"type": "integer", "index": 10, "name": "business_profile_support_address_postal_code", "comment": null}, "business_profile_support_address_state": {"type": "text", "index": 11, "name": "business_profile_support_address_state", "comment": null}, "business_profile_support_email": {"type": "text", "index": 12, "name": "business_profile_support_email", "comment": null}, "business_profile_support_phone": {"type": "integer", "index": 13, "name": "business_profile_support_phone", "comment": null}, "business_profile_support_url": {"type": "text", "index": 14, "name": "business_profile_support_url", "comment": null}, "business_profile_url": {"type": "text", "index": 15, "name": "business_profile_url", "comment": null}, "business_type": {"type": "integer", "index": 16, "name": "business_type", "comment": null}, "capabilities_afterpay_clearpay_payments": {"type": "text", "index": 17, "name": "capabilities_afterpay_clearpay_payments", "comment": null}, "capabilities_au_becs_debit_payments": {"type": "integer", "index": 18, "name": "capabilities_au_becs_debit_payments", "comment": null}, "capabilities_bacs_debit_payments": {"type": "integer", "index": 19, "name": "capabilities_bacs_debit_payments", "comment": null}, "capabilities_bancontact_payments": {"type": "text", "index": 20, "name": "capabilities_bancontact_payments", "comment": null}, "capabilities_card_issuing": {"type": "integer", "index": 21, "name": "capabilities_card_issuing", "comment": null}, "capabilities_card_payments": {"type": "text", "index": 22, "name": "capabilities_card_payments", "comment": null}, "capabilities_cartes_bancaires_payments": {"type": "integer", "index": 23, "name": "capabilities_cartes_bancaires_payments", "comment": null}, "capabilities_eps_payments": {"type": "text", "index": 24, "name": "capabilities_eps_payments", "comment": null}, "capabilities_fpx_payments": {"type": "integer", "index": 25, "name": "capabilities_fpx_payments", "comment": null}, "capabilities_giropay_payments": {"type": "text", "index": 26, "name": "capabilities_giropay_payments", "comment": null}, "capabilities_grabpay_payments": {"type": "integer", "index": 27, "name": "capabilities_grabpay_payments", "comment": null}, "capabilities_ideal_payments": {"type": "text", "index": 28, "name": "capabilities_ideal_payments", "comment": null}, "capabilities_jcb_payments": {"type": "integer", "index": 29, "name": "capabilities_jcb_payments", "comment": null}, "capabilities_legacy_payments": {"type": "integer", "index": 30, "name": "capabilities_legacy_payments", "comment": null}, "capabilities_oxxo_payments": {"type": "integer", "index": 31, "name": "capabilities_oxxo_payments", "comment": null}, "capabilities_p_24_payments": {"type": "text", "index": 32, "name": "capabilities_p_24_payments", "comment": null}, "capabilities_platform_payments": {"type": "text", "index": 33, "name": "capabilities_platform_payments", "comment": null}, "capabilities_sepa_debit_payments": {"type": "text", "index": 34, "name": "capabilities_sepa_debit_payments", "comment": null}, "capabilities_sofort_payments": {"type": "text", "index": 35, "name": "capabilities_sofort_payments", "comment": null}, "capabilities_tax_reporting_us_1099_k": {"type": "integer", "index": 36, "name": "capabilities_tax_reporting_us_1099_k", "comment": null}, "capabilities_tax_reporting_us_1099_misc": {"type": "integer", "index": 37, "name": "capabilities_tax_reporting_us_1099_misc", "comment": null}, "capabilities_transfers": {"type": "integer", "index": 38, "name": "capabilities_transfers", "comment": null}, "charges_enabled": {"type": "boolean", "index": 39, "name": "charges_enabled", "comment": null}, "company_address_city": {"type": "integer", "index": 40, "name": "company_address_city", "comment": null}, "company_address_country": {"type": "integer", "index": 41, "name": "company_address_country", "comment": null}, "company_address_kana_city": {"type": "integer", "index": 42, "name": "company_address_kana_city", "comment": null}, "company_address_kana_country": {"type": "integer", "index": 43, "name": "company_address_kana_country", "comment": null}, "company_address_kana_line_1": {"type": "integer", "index": 44, "name": "company_address_kana_line_1", "comment": null}, "company_address_kana_line_2": {"type": "integer", "index": 45, "name": "company_address_kana_line_2", "comment": null}, "company_address_kana_postal_code": {"type": "integer", "index": 46, "name": "company_address_kana_postal_code", "comment": null}, "company_address_kana_state": {"type": "integer", "index": 47, "name": "company_address_kana_state", "comment": null}, "company_address_kana_town": {"type": "integer", "index": 48, "name": "company_address_kana_town", "comment": null}, "company_address_kanji_city": {"type": "integer", "index": 49, "name": "company_address_kanji_city", "comment": null}, "company_address_kanji_country": {"type": "integer", "index": 50, "name": "company_address_kanji_country", "comment": null}, "company_address_kanji_line_1": {"type": "integer", "index": 51, "name": "company_address_kanji_line_1", "comment": null}, "company_address_kanji_line_2": {"type": "integer", "index": 52, "name": "company_address_kanji_line_2", "comment": null}, "company_address_kanji_postal_code": {"type": "integer", "index": 53, "name": "company_address_kanji_postal_code", "comment": null}, "company_address_kanji_state": {"type": "integer", "index": 54, "name": "company_address_kanji_state", "comment": null}, "company_address_kanji_town": {"type": "integer", "index": 55, "name": "company_address_kanji_town", "comment": null}, "company_address_line_1": {"type": "integer", "index": 56, "name": "company_address_line_1", "comment": null}, "company_address_line_2": {"type": "integer", "index": 57, "name": "company_address_line_2", "comment": null}, "company_address_postal_code": {"type": "integer", "index": 58, "name": "company_address_postal_code", "comment": null}, "company_address_state": {"type": "integer", "index": 59, "name": "company_address_state", "comment": null}, "company_directors_provided": {"type": "integer", "index": 60, "name": "company_directors_provided", "comment": null}, "company_executives_provided": {"type": "integer", "index": 61, "name": "company_executives_provided", "comment": null}, "company_name": {"type": "integer", "index": 62, "name": "company_name", "comment": null}, "company_name_kana": {"type": "integer", "index": 63, "name": "company_name_kana", "comment": null}, "company_name_kanji": {"type": "integer", "index": 64, "name": "company_name_kanji", "comment": null}, "company_owners_provided": {"type": "integer", "index": 65, "name": "company_owners_provided", "comment": null}, "company_phone": {"type": "integer", "index": 66, "name": "company_phone", "comment": null}, "company_structure": {"type": "integer", "index": 67, "name": "company_structure", "comment": null}, "company_tax_id_provided": {"type": "integer", "index": 68, "name": "company_tax_id_provided", "comment": null}, "company_tax_id_registrar": {"type": "integer", "index": 69, "name": "company_tax_id_registrar", "comment": null}, "company_vat_id_provided": {"type": "integer", "index": 70, "name": "company_vat_id_provided", "comment": null}, "company_verification_document_back": {"type": "integer", "index": 71, "name": "company_verification_document_back", "comment": null}, "company_verification_document_details": {"type": "integer", "index": 72, "name": "company_verification_document_details", "comment": null}, "company_verification_document_details_code": {"type": "integer", "index": 73, "name": "company_verification_document_details_code", "comment": null}, "company_verification_document_front": {"type": "integer", "index": 74, "name": "company_verification_document_front", "comment": null}, "country": {"type": "text", "index": 75, "name": "country", "comment": null}, "created": {"type": "timestamp without time zone", "index": 76, "name": "created", "comment": null}, "default_currency": {"type": "text", "index": 77, "name": "default_currency", "comment": null}, "details_submitted": {"type": "boolean", "index": 78, "name": "details_submitted", "comment": null}, "email": {"type": "text", "index": 79, "name": "email", "comment": null}, "individual_id": {"type": "integer", "index": 80, "name": "individual_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 81, "name": "is_deleted", "comment": null}, "metadata": {"type": "integer", "index": 82, "name": "metadata", "comment": null}, "payouts_enabled": {"type": "boolean", "index": 83, "name": "payouts_enabled", "comment": null}, "requirements_current_deadline": {"type": "integer", "index": 84, "name": "requirements_current_deadline", "comment": null}, "requirements_currently_due": {"type": "integer", "index": 85, "name": "requirements_currently_due", "comment": null}, "requirements_disabled_reason": {"type": "integer", "index": 86, "name": "requirements_disabled_reason", "comment": null}, "requirements_errors": {"type": "integer", "index": 87, "name": "requirements_errors", "comment": null}, "requirements_eventually_due": {"type": "integer", "index": 88, "name": "requirements_eventually_due", "comment": null}, "requirements_past_due": {"type": "integer", "index": 89, "name": "requirements_past_due", "comment": null}, "requirements_pending_verification": {"type": "integer", "index": 90, "name": "requirements_pending_verification", "comment": null}, "settings_branding_icon": {"type": "integer", "index": 91, "name": "settings_branding_icon", "comment": null}, "settings_branding_logo": {"type": "text", "index": 92, "name": "settings_branding_logo", "comment": null}, "settings_branding_primary_color": {"type": "text", "index": 93, "name": "settings_branding_primary_color", "comment": null}, "settings_card_payments_decline_on_avs_failure": {"type": "integer", "index": 94, "name": "settings_card_payments_decline_on_avs_failure", "comment": null}, "settings_card_payments_decline_on_cvc_failure": {"type": "integer", "index": 95, "name": "settings_card_payments_decline_on_cvc_failure", "comment": null}, "settings_card_payments_statement_descriptor_prefix": {"type": "integer", "index": 96, "name": "settings_card_payments_statement_descriptor_prefix", "comment": null}, "settings_dashboard_display_name": {"type": "text", "index": 97, "name": "settings_dashboard_display_name", "comment": null}, "settings_dashboard_timezone": {"type": "text", "index": 98, "name": "settings_dashboard_timezone", "comment": null}, "settings_payments_statement_descriptor": {"type": "text", "index": 99, "name": "settings_payments_statement_descriptor", "comment": null}, "settings_payments_statement_descriptor_kana": {"type": "integer", "index": 100, "name": "settings_payments_statement_descriptor_kana", "comment": null}, "settings_payments_statement_descriptor_kanji": {"type": "integer", "index": 101, "name": "settings_payments_statement_descriptor_kanji", "comment": null}, "settings_payouts_debit_negative_balances": {"type": "boolean", "index": 102, "name": "settings_payouts_debit_negative_balances", "comment": null}, "settings_payouts_schedule_delay_days": {"type": "integer", "index": 103, "name": "settings_payouts_schedule_delay_days", "comment": null}, "settings_payouts_schedule_interval": {"type": "text", "index": 104, "name": "settings_payouts_schedule_interval", "comment": null}, "settings_payouts_schedule_monthly_anchor": {"type": "integer", "index": 105, "name": "settings_payouts_schedule_monthly_anchor", "comment": null}, "settings_payouts_schedule_weekly_anchor": {"type": "integer", "index": 106, "name": "settings_payouts_schedule_weekly_anchor", "comment": null}, "settings_payouts_statement_descriptor": {"type": "integer", "index": 107, "name": "settings_payouts_statement_descriptor", "comment": null}, "tos_acceptance_date": {"type": "integer", "index": 108, "name": "tos_acceptance_date", "comment": null}, "tos_acceptance_ip": {"type": "integer", "index": 109, "name": "tos_acceptance_ip", "comment": null}, "tos_acceptance_user_agent": {"type": "integer", "index": 110, "name": "tos_acceptance_user_agent", "comment": null}, "type": {"type": "text", "index": 111, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__account_tmp"}, "model.stripe.stg_stripe__balance_transaction": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__balance_transaction", "database": "postgres", "comment": "Balance transactions represent funds moving through your Stripe account. They're created for every type of transaction that comes into or flows out of your Stripe account balance.", "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": "Unique identifier for the object."}, "amount": {"type": "integer", "index": 2, "name": "amount", "comment": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "fee": {"type": "integer", "index": 3, "name": "fee", "comment": "fees (in currency units) paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "net": {"type": "integer", "index": 4, "name": "net", "comment": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "available_on": {"type": "timestamp without time zone", "index": 5, "name": "available_on", "comment": "The date the transaction\u2019s net funds will become available in the Stripe balance."}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": "Timestamp of when the transaction was created, in UTC."}, "connected_account_id": {"type": "integer", "index": 7, "name": "connected_account_id", "comment": "The ID of the account connected to the transaction."}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "description": {"type": "text", "index": 9, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "exchange_rate": {"type": "integer", "index": 10, "name": "exchange_rate", "comment": "The exchange rate used, if applicable, for this transaction. Specifically, if money was converted from currency A to currency B, then the amount in currency A, times exchange_rate, would be the amount in currency B."}, "reporting_category": {"type": "text", "index": 11, "name": "reporting_category", "comment": "Improves on the type field by providing a more-useful grouping for most finance and reporting purposes."}, "source": {"type": "text", "index": 12, "name": "source", "comment": "The Stripe object to which this transaction is related."}, "status": {"type": "text", "index": 13, "name": "status", "comment": "If the transaction\u2019s net funds are available in the Stripe balance yet. Either 'available' or 'pending'."}, "type": {"type": "text", "index": 14, "name": "type", "comment": "The type of transaction. Possible values are adjustment, advance, advance_funding, application_fee, application_fee_refund, charge, connect_collection_transfer, issuing_authorization_hold, issuing_authorization_release, issuing_dispute, issuing_transaction, payment, payment_failure_refund, payment_refund, payout, payout_cancel, payout_failure, refund, refund_failure, reserve_transaction, reserved_funds, stripe_fee, stripe_fx_fee, tax_fee, topup, topup_reversal, transfer, transfer_cancel, transfer_failure, or transfer_refund."}, "source_relation": {"type": "text", "index": 15, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__balance_transaction"}, "model.stripe.stg_stripe__balance_transaction_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__balance_transaction_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "available_on": {"type": "timestamp without time zone", "index": 4, "name": "available_on", "comment": null}, "connected_account_id": {"type": "integer", "index": 5, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "exchange_rate": {"type": "integer", "index": 9, "name": "exchange_rate", "comment": null}, "fee": {"type": "integer", "index": 10, "name": "fee", "comment": null}, "net": {"type": "integer", "index": 11, "name": "net", "comment": null}, "source": {"type": "text", "index": 12, "name": "source", "comment": null}, "status": {"type": "text", "index": 13, "name": "status", "comment": null}, "type": {"type": "text", "index": 14, "name": "type", "comment": null}, "payout_id": {"type": "text", "index": 15, "name": "payout_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__balance_transaction_tmp"}, "model.stripe.stg_stripe__card": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__card", "database": "postgres", "comment": "Details of a credit card that has been saved to the system.", "owner": "postgres"}, "columns": {"card_id": {"type": "text", "index": 1, "name": "card_id", "comment": "Unique identifier for the object."}, "account_id": {"type": "integer", "index": 2, "name": "account_id", "comment": "ID of account that this card is associated with."}, "card_address_city": {"type": "integer", "index": 3, "name": "card_address_city", "comment": "City, district, suburb, town, or village."}, "card_address_country": {"type": "integer", "index": 4, "name": "card_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "card_address_line_1": {"type": "integer", "index": 5, "name": "card_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "card_address_line_2": {"type": "integer", "index": 6, "name": "card_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "card_address_state": {"type": "integer", "index": 7, "name": "card_address_state", "comment": "State, county, province, or region."}, "card_address_postal_code": {"type": "integer", "index": 8, "name": "card_address_postal_code", "comment": "ZIP or postal code."}, "wallet_type": {"type": "text", "index": 9, "name": "wallet_type", "comment": "The type of the card wallet, one of amex_express_checkout, apple_pay, google_pay, masterpass, samsung_pay, or visa_checkout. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type."}, "brand": {"type": "text", "index": 10, "name": "brand", "comment": "Card brand. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown."}, "country": {"type": "text", "index": 11, "name": "country", "comment": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you\u2019ve collected."}, "created_at": {"type": "timestamp without time zone", "index": 12, "name": "created_at", "comment": "Timestamp of when the entry for the card was created"}, "customer_id": {"type": "integer", "index": 13, "name": "customer_id", "comment": "The customer that this card belongs to. NULL if belongs to an account or recipient."}, "card_name": {"type": "integer", "index": 14, "name": "card_name", "comment": "Cardholder name"}, "recipient": {"type": "integer", "index": 15, "name": "recipient", "comment": "The recipient that this card belongs to. NULL if the card belongs to a customer or account instead."}, "funding": {"type": "text", "index": 16, "name": "funding", "comment": "Card funding type. Can be credit, debit, prepaid, or unknown."}, "source_relation": {"type": "text", "index": 17, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__card"}, "model.stripe.stg_stripe__card_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__card_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "address_city": {"type": "integer", "index": 4, "name": "address_city", "comment": null}, "address_country": {"type": "integer", "index": 5, "name": "address_country", "comment": null}, "address_line_1": {"type": "integer", "index": 6, "name": "address_line_1", "comment": null}, "address_line_1_check": {"type": "integer", "index": 7, "name": "address_line_1_check", "comment": null}, "address_line_2": {"type": "integer", "index": 8, "name": "address_line_2", "comment": null}, "address_state": {"type": "integer", "index": 9, "name": "address_state", "comment": null}, "address_zip": {"type": "integer", "index": 10, "name": "address_zip", "comment": null}, "address_zip_check": {"type": "integer", "index": 11, "name": "address_zip_check", "comment": null}, "brand": {"type": "text", "index": 12, "name": "brand", "comment": null}, "connected_account_id": {"type": "integer", "index": 13, "name": "connected_account_id", "comment": null}, "country": {"type": "text", "index": 14, "name": "country", "comment": null}, "created": {"type": "timestamp without time zone", "index": 15, "name": "created", "comment": null}, "currency": {"type": "text", "index": 16, "name": "currency", "comment": null}, "customer_id": {"type": "integer", "index": 17, "name": "customer_id", "comment": null}, "cvc_check": {"type": "text", "index": 18, "name": "cvc_check", "comment": null}, "dynamic_last_4": {"type": "integer", "index": 19, "name": "dynamic_last_4", "comment": null}, "exp_month": {"type": "integer", "index": 20, "name": "exp_month", "comment": null}, "exp_year": {"type": "integer", "index": 21, "name": "exp_year", "comment": null}, "fingerprint": {"type": "text", "index": 22, "name": "fingerprint", "comment": null}, "funding": {"type": "text", "index": 23, "name": "funding", "comment": null}, "is_deleted": {"type": "boolean", "index": 24, "name": "is_deleted", "comment": null}, "last_4": {"type": "integer", "index": 25, "name": "last_4", "comment": null}, "name": {"type": "integer", "index": 26, "name": "name", "comment": null}, "network": {"type": "text", "index": 27, "name": "network", "comment": null}, "recipient": {"type": "integer", "index": 28, "name": "recipient", "comment": null}, "tokenization_method": {"type": "integer", "index": 29, "name": "tokenization_method", "comment": null}, "metadata": {"type": "text", "index": 30, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__card_tmp"}, "model.stripe.stg_stripe__charge": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__charge", "database": "postgres", "comment": "To charge a credit or a debit card, you create a Charge object. You can retrieve and refund individual charges as well as list all charges. Charges are identified by a unique, random ID.", "owner": "postgres"}, "columns": {"charge_id": {"type": "text", "index": 1, "name": "charge_id", "comment": "Unique identifier for the object."}, "amount": {"type": "bigint", "index": 2, "name": "amount", "comment": "Amount intended to be collected by this payment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "amount_refunded": {"type": "bigint", "index": 3, "name": "amount_refunded", "comment": "The amount of the charge, if any, that has been refunded. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "application_fee_amount": {"type": "bigint", "index": 4, "name": "application_fee_amount", "comment": "The amount of the application fee (if any) for the charge. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "balance_transaction_id": {"type": "character varying(500)", "index": 5, "name": "balance_transaction_id", "comment": "ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes)."}, "is_captured": {"type": "boolean", "index": 6, "name": "is_captured", "comment": "If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured."}, "card_id": {"type": "text", "index": 7, "name": "card_id", "comment": "ID of the card that was charged."}, "created_at": {"type": "timestamp without time zone", "index": 8, "name": "created_at", "comment": "Timestamp of when the charge took place."}, "connected_account_id": {"type": "integer", "index": 9, "name": "connected_account_id", "comment": "ID of account connected for this charge."}, "customer_id": {"type": "text", "index": 10, "name": "customer_id", "comment": "ID of the customer this charge is for if one exists."}, "currency": {"type": "text", "index": 11, "name": "currency", "comment": "The currency of the charge."}, "description": {"type": "text", "index": 12, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "failure_code": {"type": "text", "index": 13, "name": "failure_code", "comment": "Error code explaining reason for charge failure if available."}, "failure_message": {"type": "text", "index": 14, "name": "failure_message", "comment": "Message to user further explaining reason for charge failure if available."}, "metadata": {"type": "text", "index": 15, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "is_paid": {"type": "boolean", "index": 16, "name": "is_paid", "comment": "true if the charge succeeded, or was successfully authorized for later capture."}, "payment_intent_id": {"type": "text", "index": 17, "name": "payment_intent_id", "comment": "ID of the PaymentIntent associated with this charge, if one exists."}, "payment_method_id": {"type": "text", "index": 18, "name": "payment_method_id", "comment": "Unique identifier for the payment method object used in this charge."}, "receipt_email": {"type": "text", "index": 19, "name": "receipt_email", "comment": "This is the email address that the receipt for this charge was sent to."}, "receipt_number": {"type": "integer", "index": 20, "name": "receipt_number", "comment": "This is the transaction number that appears on email receipts sent for this charge."}, "is_refunded": {"type": "boolean", "index": 21, "name": "is_refunded", "comment": "Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false."}, "status": {"type": "text", "index": 22, "name": "status", "comment": "The status of the payment is either succeeded, pending, or failed."}, "shipping_address_city": {"type": "integer", "index": 23, "name": "shipping_address_city", "comment": "City, district, suburb, town, or village."}, "shipping_address_country": {"type": "integer", "index": 24, "name": "shipping_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "shipping_address_line_1": {"type": "integer", "index": 25, "name": "shipping_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "shipping_address_line_2": {"type": "integer", "index": 26, "name": "shipping_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "shipping_address_postal_code": {"type": "integer", "index": 27, "name": "shipping_address_postal_code", "comment": "ZIP or postal code."}, "shipping_address_state": {"type": "integer", "index": 28, "name": "shipping_address_state", "comment": "State, county, province, or region."}, "shipping_carrier": {"type": "integer", "index": 29, "name": "shipping_carrier", "comment": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc."}, "shipping_name": {"type": "integer", "index": 30, "name": "shipping_name", "comment": "Recipient name."}, "shipping_phone": {"type": "integer", "index": 31, "name": "shipping_phone", "comment": "Recipient phone (including extension)."}, "shipping_tracking_number": {"type": "integer", "index": 32, "name": "shipping_tracking_number", "comment": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were"}, "source_id": {"type": "integer", "index": 33, "name": "source_id", "comment": "ID of the source associated. Source objects allow you to accept a variety of payment methods. They represent a cu"}, "source_transfer": {"type": "integer", "index": 34, "name": "source_transfer", "comment": "The transfer ID which created this charge. Only present if the charge came from another Stripe account."}, "statement_descriptor": {"type": "integer", "index": 35, "name": "statement_descriptor", "comment": "Extra information about a source. This will appear on your customer\u2019s statement every time you charge the source."}, "invoice_id": {"type": "character varying(500)", "index": 36, "name": "invoice_id", "comment": "The id of the invoice associated with this charge."}, "calculated_statement_descriptor": {"type": "text", "index": 37, "name": "calculated_statement_descriptor", "comment": "The full statement descriptor that is passed to card networks, and that is displayed on your customers\u2019 credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined."}, "billing_detail_address_city": {"type": "text", "index": 38, "name": "billing_detail_address_city", "comment": "City, district, suburb, town, or village."}, "billing_detail_address_country": {"type": "text", "index": 39, "name": "billing_detail_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "billing_detail_address_line1": {"type": "text", "index": 40, "name": "billing_detail_address_line1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "billing_detail_address_line2": {"type": "text", "index": 41, "name": "billing_detail_address_line2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "billing_detail_address_postal_code": {"type": "text", "index": 42, "name": "billing_detail_address_postal_code", "comment": "ZIP or postal code."}, "billing_detail_address_state": {"type": "text", "index": 43, "name": "billing_detail_address_state", "comment": "State, county, province, or region."}, "billing_detail_email": {"type": "text", "index": 44, "name": "billing_detail_email", "comment": "Email address."}, "billing_detail_name": {"type": "text", "index": 45, "name": "billing_detail_name", "comment": "Full name."}, "billing_detail_phone": {"type": "text", "index": 46, "name": "billing_detail_phone", "comment": "Billing phone number (including extension)."}, "source_relation": {"type": "text", "index": 47, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__charge"}, "model.stripe.stg_stripe__charge_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__charge_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "bigint", "index": 3, "name": "amount", "comment": null}, "amount_refunded": {"type": "bigint", "index": 4, "name": "amount_refunded", "comment": null}, "application": {"type": "text", "index": 5, "name": "application", "comment": null}, "application_fee_amount": {"type": "bigint", "index": 6, "name": "application_fee_amount", "comment": null}, "balance_transaction_id": {"type": "character varying(500)", "index": 7, "name": "balance_transaction_id", "comment": null}, "bank_account_id": {"type": "integer", "index": 8, "name": "bank_account_id", "comment": null}, "captured": {"type": "boolean", "index": 9, "name": "captured", "comment": null}, "card_id": {"type": "text", "index": 10, "name": "card_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 11, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "text", "index": 13, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "description": {"type": "text", "index": 15, "name": "description", "comment": null}, "destination": {"type": "integer", "index": 16, "name": "destination", "comment": null}, "failure_code": {"type": "text", "index": 17, "name": "failure_code", "comment": null}, "failure_message": {"type": "text", "index": 18, "name": "failure_message", "comment": null}, "fraud_details_stripe_report": {"type": "integer", "index": 19, "name": "fraud_details_stripe_report", "comment": null}, "fraud_details_user_report": {"type": "integer", "index": 20, "name": "fraud_details_user_report", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 21, "name": "invoice_id", "comment": null}, "livemode": {"type": "boolean", "index": 22, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 23, "name": "metadata", "comment": null}, "on_behalf_of": {"type": "integer", "index": 24, "name": "on_behalf_of", "comment": null}, "outcome_network_status": {"type": "text", "index": 25, "name": "outcome_network_status", "comment": null}, "outcome_reason": {"type": "text", "index": 26, "name": "outcome_reason", "comment": null}, "outcome_risk_level": {"type": "text", "index": 27, "name": "outcome_risk_level", "comment": null}, "outcome_risk_score": {"type": "double precision", "index": 28, "name": "outcome_risk_score", "comment": null}, "outcome_seller_message": {"type": "text", "index": 29, "name": "outcome_seller_message", "comment": null}, "outcome_type": {"type": "text", "index": 30, "name": "outcome_type", "comment": null}, "paid": {"type": "boolean", "index": 31, "name": "paid", "comment": null}, "payment_intent_id": {"type": "text", "index": 32, "name": "payment_intent_id", "comment": null}, "receipt_email": {"type": "text", "index": 33, "name": "receipt_email", "comment": null}, "receipt_number": {"type": "integer", "index": 34, "name": "receipt_number", "comment": null}, "receipt_url": {"type": "integer", "index": 35, "name": "receipt_url", "comment": null}, "refunded": {"type": "boolean", "index": 36, "name": "refunded", "comment": null}, "shipping_address_city": {"type": "integer", "index": 37, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "integer", "index": 38, "name": "shipping_address_country", "comment": null}, "shipping_address_line_1": {"type": "integer", "index": 39, "name": "shipping_address_line_1", "comment": null}, "shipping_address_line_2": {"type": "integer", "index": 40, "name": "shipping_address_line_2", "comment": null}, "shipping_address_postal_code": {"type": "integer", "index": 41, "name": "shipping_address_postal_code", "comment": null}, "shipping_address_state": {"type": "integer", "index": 42, "name": "shipping_address_state", "comment": null}, "shipping_carrier": {"type": "integer", "index": 43, "name": "shipping_carrier", "comment": null}, "shipping_name": {"type": "integer", "index": 44, "name": "shipping_name", "comment": null}, "shipping_phone": {"type": "integer", "index": 45, "name": "shipping_phone", "comment": null}, "shipping_tracking_number": {"type": "integer", "index": 46, "name": "shipping_tracking_number", "comment": null}, "source_id": {"type": "integer", "index": 47, "name": "source_id", "comment": null}, "source_transfer": {"type": "integer", "index": 48, "name": "source_transfer", "comment": null}, "statement_descriptor": {"type": "integer", "index": 49, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 50, "name": "status", "comment": null}, "transfer_data_destination": {"type": "integer", "index": 51, "name": "transfer_data_destination", "comment": null}, "transfer_group": {"type": "integer", "index": 52, "name": "transfer_group", "comment": null}, "transfer_id": {"type": "integer", "index": 53, "name": "transfer_id", "comment": null}, "calculated_statement_descriptor": {"type": "text", "index": 54, "name": "calculated_statement_descriptor", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__charge_tmp"}, "model.stripe.stg_stripe__coupon": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__coupon", "database": "postgres", "comment": "Properties belonging to a Stripe coupon.", "owner": "postgres"}, "columns": {"coupon_id": {"type": "text", "index": 1, "name": "coupon_id", "comment": "Unique identifier for the object."}, "coupon_name": {"type": "text", "index": 2, "name": "coupon_name", "comment": "Name of the coupon or promotion."}, "created_at": {"type": "timestamp without time zone", "index": 3, "name": "created_at", "comment": "Time at which the object was created."}, "redeem_by": {"type": "timestamp without time zone", "index": 4, "name": "redeem_by", "comment": "The date by which the coupon must be redeemed."}, "duration": {"type": "text", "index": 5, "name": "duration", "comment": "The duration of the coupon. Typically \"forever,\" \"once,\" or \"repeating.\""}, "duration_in_months": {"type": "integer", "index": 6, "name": "duration_in_months", "comment": "If the coupon does not last forever, the duration in months you can apply it. For a forever coupon, this attribute is null."}, "amount_off": {"type": "integer", "index": 7, "name": "amount_off", "comment": "The amount taken off the total price in the selected currency."}, "percent_off": {"type": "double precision", "index": 8, "name": "percent_off", "comment": "The percentage taken off the total price."}, "currency": {"type": "text", "index": 9, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "metadata": {"type": "integer", "index": 10, "name": "metadata", "comment": null}, "max_redemptions": {"type": "integer", "index": 11, "name": "max_redemptions", "comment": "The maximum number of times this coupon can be redeemed."}, "times_redeemed": {"type": "integer", "index": 12, "name": "times_redeemed", "comment": "The number of times this coupon has been redeemed."}, "valid": {"type": "boolean", "index": 13, "name": "valid", "comment": "Indicates whether the coupon can still be applied to a customer."}, "source_relation": {"type": "text", "index": 14, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__coupon"}, "model.stripe.stg_stripe__coupon_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__coupon_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "amount_off": {"type": "integer", "index": 2, "name": "amount_off", "comment": null}, "created": {"type": "timestamp without time zone", "index": 3, "name": "created", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "duration": {"type": "text", "index": 5, "name": "duration", "comment": null}, "duration_in_months": {"type": "integer", "index": 6, "name": "duration_in_months", "comment": null}, "livemode": {"type": "boolean", "index": 7, "name": "livemode", "comment": null}, "max_redemptions": {"type": "integer", "index": 8, "name": "max_redemptions", "comment": null}, "metadata": {"type": "integer", "index": 9, "name": "metadata", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "percent_off": {"type": "double precision", "index": 11, "name": "percent_off", "comment": null}, "redeem_by": {"type": "timestamp without time zone", "index": 12, "name": "redeem_by", "comment": null}, "times_redeemed": {"type": "integer", "index": 13, "name": "times_redeemed", "comment": null}, "valid": {"type": "boolean", "index": 14, "name": "valid", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 15, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__coupon_tmp"}, "model.stripe.stg_stripe__credit_note": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note", "database": "postgres", "comment": "Credit notes are documents that decrease the amount owed on an invoice. They\u2019re the only way to adjust the amount of a finalized invoice other than voiding and recreating the invoice.", "owner": "postgres"}, "columns": {"credit_note_id": {"type": "text", "index": 1, "name": "credit_note_id", "comment": "Unique identifier for the object."}, "credit_note_amount": {"type": "integer", "index": 2, "name": "credit_note_amount", "comment": "The integer amount in currency units representing the total amount of the credit note, including tax. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "credit_note_discount_amount": {"type": "integer", "index": 3, "name": "credit_note_discount_amount", "comment": "The integer amount in currency units representing the total amount of discount that was credited. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "credit_note_subtotal": {"type": "integer", "index": 4, "name": "credit_note_subtotal", "comment": "The integer amount in currency units representing the amount of the credit note, excluding tax and invoice level discounts. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "credit_note_total": {"type": "integer", "index": 5, "name": "credit_note_total", "comment": "The integer amount in currency units representing the total amount of the credit note, including tax and all discount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": "Timestamp of the when the credit_note was created."}, "credit_note_currency": {"type": "text", "index": 7, "name": "credit_note_currency", "comment": "The currency of the charge. Three-letter ISO currency code, in lowercase."}, "memo": {"type": "integer", "index": 8, "name": "memo", "comment": "Customer-facing text that appears on the credit note PDF."}, "metadata": {"type": "text", "index": 9, "name": "metadata", "comment": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format."}, "credit_note_number": {"type": "text", "index": 10, "name": "credit_note_number", "comment": "A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice."}, "pdf": {"type": "text", "index": 11, "name": "pdf", "comment": "The link to download the PDF of the credit note."}, "credit_note_reason": {"type": "integer", "index": 12, "name": "credit_note_reason", "comment": "Reason for issuing this credit note, one of duplicate, fraudulent, order_change, or product_unsatisfactory"}, "credit_note_status": {"type": "text", "index": 13, "name": "credit_note_status", "comment": "Status of this credit note, one of issued or void."}, "credit_note_type": {"type": "text", "index": 14, "name": "credit_note_type", "comment": "Type of this credit note, one of pre_payment or post_payment. A pre_payment credit note means it was issued when the invoice was open. A post_payment credit note means it was issued when the invoice was paid."}, "voided_at": {"type": "timestamp without time zone", "index": 15, "name": "voided_at", "comment": "The time that the credit note was voided."}, "customer_balance_transaction": {"type": "integer", "index": 16, "name": "customer_balance_transaction", "comment": "Customer balance transaction related to this credit note."}, "invoice_id": {"type": "character varying(500)", "index": 17, "name": "invoice_id", "comment": "The id of the invoice associated with this credit note."}, "refund_id": {"type": "text", "index": 18, "name": "refund_id", "comment": "The id of the refund associated with this credit note."}, "source_relation": {"type": "text", "index": 19, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__credit_note"}, "model.stripe.stg_stripe__credit_note_line_item": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note_line_item", "database": "postgres", "comment": "The different items that a credit note contains.", "owner": "postgres"}, "columns": {"credit_note_line_item_id": {"type": "text", "index": 1, "name": "credit_note_line_item_id", "comment": "Unique identifier for the object."}, "credit_note_id": {"type": "text", "index": 2, "name": "credit_note_id", "comment": "The ID of the credit note this item is a part of."}, "credit_note_line_item_amount": {"type": "integer", "index": 3, "name": "credit_note_line_item_amount", "comment": "The integer amount in currency units representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "credit_note_line_item_discount_amount": {"type": "integer", "index": 4, "name": "credit_note_line_item_discount_amount", "comment": "The integer amount in currency units representing the discount being credited for this line item. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "credit_note_line_item_description": {"type": "text", "index": 5, "name": "credit_note_line_item_description", "comment": "Description of the item being credited."}, "quantity": {"type": "integer", "index": 6, "name": "quantity", "comment": "The number of units of product being credited."}, "credit_note_line_item_type": {"type": "text", "index": 7, "name": "credit_note_line_item_type", "comment": "The type of the credit note line item, one of invoice_line_item or custom_line_item. When the type is invoice_line_item there is an additional invoice_line_item property on the resource the value of which is the id of the credited line item on the invoice."}, "credit_note_line_item_unit_amount": {"type": "integer", "index": 8, "name": "credit_note_line_item_unit_amount", "comment": "The cost of each unit of product being credited. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "livemode": {"type": "boolean", "index": 9, "name": "livemode", "comment": "Has the value true if the object exists in live mode or the value false if the object exists in test mode."}, "source_relation": {"type": "text", "index": 10, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__credit_note_line_item"}, "model.stripe.stg_stripe__credit_note_line_item_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note_line_item_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"credit_note_id": {"type": "text", "index": 1, "name": "credit_note_id", "comment": null}, "id": {"type": "text", "index": 2, "name": "id", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "discount_amount": {"type": "integer", "index": 4, "name": "discount_amount", "comment": null}, "description": {"type": "text", "index": 5, "name": "description", "comment": null}, "livemode": {"type": "boolean", "index": 6, "name": "livemode", "comment": null}, "quantity": {"type": "integer", "index": 7, "name": "quantity", "comment": null}, "type": {"type": "text", "index": 8, "name": "type", "comment": null}, "unit_amount": {"type": "integer", "index": 9, "name": "unit_amount", "comment": null}, "unit_amount_decimal": {"type": "integer", "index": 10, "name": "unit_amount_decimal", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__credit_note_line_item_tmp"}, "model.stripe.stg_stripe__credit_note_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "amount": {"type": "integer", "index": 2, "name": "amount", "comment": null}, "created": {"type": "timestamp without time zone", "index": 3, "name": "created", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "discount_amount": {"type": "integer", "index": 5, "name": "discount_amount", "comment": null}, "subtotal": {"type": "integer", "index": 6, "name": "subtotal", "comment": null}, "total": {"type": "integer", "index": 7, "name": "total", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "memo": {"type": "integer", "index": 9, "name": "memo", "comment": null}, "metadata": {"type": "text", "index": 10, "name": "metadata", "comment": null}, "number": {"type": "text", "index": 11, "name": "number", "comment": null}, "pdf": {"type": "text", "index": 12, "name": "pdf", "comment": null}, "reason": {"type": "integer", "index": 13, "name": "reason", "comment": null}, "status": {"type": "text", "index": 14, "name": "status", "comment": null}, "type": {"type": "text", "index": 15, "name": "type", "comment": null}, "voided_at": {"type": "timestamp without time zone", "index": 16, "name": "voided_at", "comment": null}, "customer_balance_transaction_id": {"type": "integer", "index": 17, "name": "customer_balance_transaction_id", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 18, "name": "invoice_id", "comment": null}, "refund_id": {"type": "text", "index": 19, "name": "refund_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 20, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__credit_note_tmp"}, "model.stripe.stg_stripe__customer": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__customer", "database": "postgres", "comment": "Customer objects allow you to perform recurring charges, and to track multiple charges, that are associated with the same customer.", "owner": "postgres"}, "columns": {"customer_id": {"type": "text", "index": 1, "name": "customer_id", "comment": "Unique identifier for the object."}, "account_balance": {"type": "integer", "index": 2, "name": "account_balance", "comment": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice."}, "customer_address_city": {"type": "integer", "index": 3, "name": "customer_address_city", "comment": "City, district, suburb, town, or village."}, "customer_address_country": {"type": "integer", "index": 4, "name": "customer_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "customer_address_line_1": {"type": "integer", "index": 5, "name": "customer_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "customer_address_line_2": {"type": "integer", "index": 6, "name": "customer_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "customer_address_postal_code": {"type": "integer", "index": 7, "name": "customer_address_postal_code", "comment": "ZIP or postal code."}, "customer_address_state": {"type": "integer", "index": 8, "name": "customer_address_state", "comment": "State, county, province, or region."}, "customer_balance": {"type": "integer", "index": 9, "name": "customer_balance", "comment": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized."}, "bank_account_id": {"type": "text", "index": 10, "name": "bank_account_id", "comment": "ID of the bank account associated with this customer."}, "created_at": {"type": "timestamp without time zone", "index": 11, "name": "created_at", "comment": "Timestamp of when the customer entry was created."}, "currency": {"type": "integer", "index": 12, "name": "currency", "comment": "Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes."}, "default_card_id": {"type": "integer", "index": 13, "name": "default_card_id", "comment": "ID for the default card used by the customer."}, "is_delinquent": {"type": "boolean", "index": 14, "name": "is_delinquent", "comment": "When the customer\u2019s latest invoice is billed by charging automatically, delinquent is true if the invoice\u2019s latest charge is failed. When the customer\u2019s latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date."}, "description": {"type": "character varying(500)", "index": 15, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "email": {"type": "integer", "index": 16, "name": "email", "comment": "The customer\u2019s email address."}, "metadata": {"type": "text", "index": 17, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "customer_name": {"type": "text", "index": 18, "name": "customer_name", "comment": "Customer name."}, "phone": {"type": "integer", "index": 19, "name": "phone", "comment": "Customer's phone number."}, "shipping_address_city": {"type": "integer", "index": 20, "name": "shipping_address_city", "comment": "Attribute of the customer's shipping address."}, "shipping_address_country": {"type": "integer", "index": 21, "name": "shipping_address_country", "comment": "Attribute of the customer's shipping address."}, "shipping_address_line_1": {"type": "integer", "index": 22, "name": "shipping_address_line_1", "comment": "Attribute of the customer's shipping address."}, "shipping_address_line_2": {"type": "integer", "index": 23, "name": "shipping_address_line_2", "comment": "Attribute of the customer's shipping address."}, "shipping_address_postal_code": {"type": "integer", "index": 24, "name": "shipping_address_postal_code", "comment": "Attribute of the customer's shipping address."}, "shipping_address_state": {"type": "integer", "index": 25, "name": "shipping_address_state", "comment": "Attribute of the customer's shipping address."}, "shipping_name": {"type": "integer", "index": 26, "name": "shipping_name", "comment": "Attribute of the customer's shipping address."}, "shipping_phone": {"type": "integer", "index": 27, "name": "shipping_phone", "comment": "Attribute of the customer's shipping address."}, "source_relation": {"type": "text", "index": 28, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}, "is_deleted": {"type": "boolean", "index": 29, "name": "is_deleted", "comment": "Boolean reflecting whether the customer has been deleted in Stripe."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__customer"}, "model.stripe.stg_stripe__customer_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__customer_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "account_balance": {"type": "integer", "index": 3, "name": "account_balance", "comment": null}, "address_city": {"type": "integer", "index": 4, "name": "address_city", "comment": null}, "address_country": {"type": "integer", "index": 5, "name": "address_country", "comment": null}, "address_line_1": {"type": "integer", "index": 6, "name": "address_line_1", "comment": null}, "address_line_2": {"type": "integer", "index": 7, "name": "address_line_2", "comment": null}, "address_postal_code": {"type": "integer", "index": 8, "name": "address_postal_code", "comment": null}, "address_state": {"type": "integer", "index": 9, "name": "address_state", "comment": null}, "balance": {"type": "integer", "index": 10, "name": "balance", "comment": null}, "bank_account_id": {"type": "text", "index": 11, "name": "bank_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "integer", "index": 13, "name": "currency", "comment": null}, "default_card_id": {"type": "integer", "index": 14, "name": "default_card_id", "comment": null}, "delinquent": {"type": "boolean", "index": 15, "name": "delinquent", "comment": null}, "description": {"type": "character varying(500)", "index": 16, "name": "description", "comment": null}, "email": {"type": "integer", "index": 17, "name": "email", "comment": null}, "invoice_prefix": {"type": "text", "index": 18, "name": "invoice_prefix", "comment": null}, "invoice_settings_default_payment_method": {"type": "integer", "index": 19, "name": "invoice_settings_default_payment_method", "comment": null}, "invoice_settings_footer": {"type": "integer", "index": 20, "name": "invoice_settings_footer", "comment": null}, "is_deleted": {"type": "boolean", "index": 21, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 22, "name": "livemode", "comment": null}, "name": {"type": "text", "index": 23, "name": "name", "comment": null}, "phone": {"type": "integer", "index": 24, "name": "phone", "comment": null}, "shipping_address_city": {"type": "integer", "index": 25, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "integer", "index": 26, "name": "shipping_address_country", "comment": null}, "shipping_address_line_1": {"type": "integer", "index": 27, "name": "shipping_address_line_1", "comment": null}, "shipping_address_line_2": {"type": "integer", "index": 28, "name": "shipping_address_line_2", "comment": null}, "shipping_address_postal_code": {"type": "integer", "index": 29, "name": "shipping_address_postal_code", "comment": null}, "shipping_address_state": {"type": "integer", "index": 30, "name": "shipping_address_state", "comment": null}, "shipping_carrier": {"type": "integer", "index": 31, "name": "shipping_carrier", "comment": null}, "shipping_name": {"type": "integer", "index": 32, "name": "shipping_name", "comment": null}, "shipping_phone": {"type": "integer", "index": 33, "name": "shipping_phone", "comment": null}, "shipping_tracking_number": {"type": "integer", "index": 34, "name": "shipping_tracking_number", "comment": null}, "source_id": {"type": "integer", "index": 35, "name": "source_id", "comment": null}, "tax_exempt": {"type": "text", "index": 36, "name": "tax_exempt", "comment": null}, "tax_info_tax_id": {"type": "integer", "index": 37, "name": "tax_info_tax_id", "comment": null}, "tax_info_type": {"type": "integer", "index": 38, "name": "tax_info_type", "comment": null}, "tax_info_verification_status": {"type": "integer", "index": 39, "name": "tax_info_verification_status", "comment": null}, "tax_info_verification_verified_name": {"type": "integer", "index": 40, "name": "tax_info_verification_verified_name", "comment": null}, "metadata": {"type": "text", "index": 41, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__customer_tmp"}, "model.stripe.stg_stripe__discount": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__discount", "database": "postgres", "comment": "Properties belonging to a Stripe discount.", "owner": "postgres"}, "columns": {"discount_id": {"type": "text", "index": 1, "name": "discount_id", "comment": "The ID of the discount object."}, "type": {"type": "integer", "index": 2, "name": "type", "comment": "String representing the object\u2019s type."}, "type_id": {"type": "text", "index": 3, "name": "type_id", "comment": "Identifier of the related object type (e.g., coupon ID, promotion code)."}, "amount": {"type": "bigint", "index": 4, "name": "amount", "comment": "The amount of discount applied. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "checkout_session_id": {"type": "integer", "index": 5, "name": "checkout_session_id", "comment": "The Checkout session that this discount is applied to, if it is applied to a particular session in payment mode."}, "checkout_session_line_item_id": {"type": "integer", "index": 6, "name": "checkout_session_line_item_id", "comment": "The ID of the specific line item within the checkout session that the discount is applied to."}, "coupon_id": {"type": "text", "index": 7, "name": "coupon_id", "comment": "The ID of the coupon applied to create this discount."}, "credit_note_line_item_id": {"type": "text", "index": 8, "name": "credit_note_line_item_id", "comment": "The ID of the credit note line item associated with this discount."}, "customer_id": {"type": "text", "index": 9, "name": "customer_id", "comment": "The ID of the customer associated with this discount."}, "end_at": {"type": "timestamp without time zone", "index": 10, "name": "end_at", "comment": "If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null."}, "invoice_id": {"type": "character varying(500)", "index": 11, "name": "invoice_id", "comment": "The invoice that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice."}, "invoice_item_id": {"type": "integer", "index": 12, "name": "invoice_item_id", "comment": "The invoice item id (or invoice line item id for invoice line items of type=\u2018subscription\u2019) that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."}, "promotion_code": {"type": "integer", "index": 13, "name": "promotion_code", "comment": "The promotion code applied to create this discount."}, "start_at": {"type": "timestamp without time zone", "index": 14, "name": "start_at", "comment": "The date that the coupon was applied."}, "subscription_id": {"type": "text", "index": 15, "name": "subscription_id", "comment": "The subscription that this coupon is applied to, if it is applied to a particular subscription."}, "source_relation": {"type": "text", "index": 16, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__discount"}, "model.stripe.stg_stripe__discount_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__discount_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "type": {"type": "integer", "index": 2, "name": "type", "comment": null}, "type_id": {"type": "text", "index": 3, "name": "type_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 4, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "bigint", "index": 5, "name": "amount", "comment": null}, "checkout_session_id": {"type": "integer", "index": 6, "name": "checkout_session_id", "comment": null}, "checkout_session_line_item_id": {"type": "integer", "index": 7, "name": "checkout_session_line_item_id", "comment": null}, "coupon_id": {"type": "text", "index": 8, "name": "coupon_id", "comment": null}, "credit_note_line_item_id": {"type": "text", "index": 9, "name": "credit_note_line_item_id", "comment": null}, "customer_id": {"type": "text", "index": 10, "name": "customer_id", "comment": null}, "end": {"type": "timestamp without time zone", "index": 11, "name": "end", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 12, "name": "invoice_id", "comment": null}, "invoice_item_id": {"type": "integer", "index": 13, "name": "invoice_item_id", "comment": null}, "promotion_code": {"type": "integer", "index": 14, "name": "promotion_code", "comment": null}, "start": {"type": "text", "index": 15, "name": "start", "comment": null}, "subscription_id": {"type": "text", "index": 16, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__discount_tmp"}, "model.stripe.stg_stripe__dispute": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__dispute", "database": "postgres", "comment": "Properties belonging to a Stripe dispute.", "owner": "postgres"}, "columns": {"dispute_id": {"type": "text", "index": 1, "name": "dispute_id", "comment": "Unique identifier for the object."}, "dispute_amount": {"type": "integer", "index": 2, "name": "dispute_amount", "comment": "Disputed amount. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "balance_transaction": {"type": "text", "index": 3, "name": "balance_transaction", "comment": "List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute."}, "charge_id": {"type": "text", "index": 4, "name": "charge_id", "comment": "ID of the charge that was disputed."}, "connected_account_id": {"type": "integer", "index": 5, "name": "connected_account_id", "comment": "Account id associated with this dispute."}, "dispute_created_at": {"type": "timestamp without time zone", "index": 6, "name": "dispute_created_at", "comment": "Time at which the object was created. Measured in seconds since the Unix epoch."}, "dispute_currency": {"type": "text", "index": 7, "name": "dispute_currency", "comment": "Three-letter ISO currency code, in lowercase. Must be a supported currency."}, "evidence_access_activity_log": {"type": "integer", "index": 8, "name": "evidence_access_activity_log", "comment": "Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity. Has a maximum character count of 20,000."}, "evidence_billing_address": {"type": "text", "index": 9, "name": "evidence_billing_address", "comment": "The billing address provided by the customer."}, "evidence_cancellation_policy": {"type": "integer", "index": 10, "name": "evidence_cancellation_policy", "comment": "(ID of a file upload) Your subscription cancellation policy, as shown to the customer."}, "evidence_cancellation_policy_disclosure": {"type": "integer", "index": 11, "name": "evidence_cancellation_policy_disclosure", "comment": "An explanation of how and when the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000."}, "evidence_cancellation_rebuttal": {"type": "integer", "index": 12, "name": "evidence_cancellation_rebuttal", "comment": "A justification for why the customer\u2019s subscription was not canceled. Has a maximum character count of 20,000."}, "evidence_customer_communication": {"type": "integer", "index": 13, "name": "evidence_customer_communication", "comment": "(ID of a file upload) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service."}, "evidence_customer_email_address": {"type": "text", "index": 14, "name": "evidence_customer_email_address", "comment": "The email address of the customer."}, "evidence_customer_name": {"type": "text", "index": 15, "name": "evidence_customer_name", "comment": "The name of the customer."}, "evidence_customer_purchase_ip": {"type": "text", "index": 16, "name": "evidence_customer_purchase_ip", "comment": "The IP address that the customer used when making the purchase."}, "evidence_customer_signature": {"type": "integer", "index": 17, "name": "evidence_customer_signature", "comment": "(ID of a file upload) A relevant document or contract showing the customer\u2019s signature."}, "evidence_details_due_by": {"type": "text", "index": 18, "name": "evidence_details_due_by", "comment": "Date by which evidence must be submitted in order to successfully challenge dispute. Will be 0 if the customer\u2019s bank or credit card company doesn\u2019t allow a response for this particular dispute."}, "evidence_details_has_evidence": {"type": "boolean", "index": 19, "name": "evidence_details_has_evidence", "comment": "Whether evidence has been staged for this dispute."}, "evidence_details_past_due": {"type": "boolean", "index": 20, "name": "evidence_details_past_due", "comment": "Whether the last evidence submission was submitted past the due date. Defaults to false if no evidence submissions have occurred. If true, then delivery of the latest evidence is not guaranteed."}, "evidence_details_submission_count": {"type": "integer", "index": 21, "name": "evidence_details_submission_count", "comment": "The number of times evidence has been submitted. Typically, you may only submit evidence once."}, "evidence_duplicate_charge_documentation": {"type": "integer", "index": 22, "name": "evidence_duplicate_charge_documentation", "comment": "(ID of a file upload) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate."}, "evidence_duplicate_charge_explanation": {"type": "integer", "index": 23, "name": "evidence_duplicate_charge_explanation", "comment": "An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate. Has a maximum character count of 20,000."}, "evidence_duplicate_charge_id": {"type": "integer", "index": 24, "name": "evidence_duplicate_charge_id", "comment": "The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge."}, "evidence_product_description": {"type": "integer", "index": 25, "name": "evidence_product_description", "comment": "A description of the product or service that was sold. Has a maximum character count of 20,000."}, "evidence_receipt": {"type": "text", "index": 26, "name": "evidence_receipt", "comment": "(ID of a file upload) Any receipt or message sent to the customer notifying them of the charge."}, "evidence_refund_policy": {"type": "integer", "index": 27, "name": "evidence_refund_policy", "comment": "(ID of a file upload) Your refund policy, as shown to the customer."}, "evidence_refund_policy_disclosure": {"type": "integer", "index": 28, "name": "evidence_refund_policy_disclosure", "comment": "Documentation demonstrating that the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000."}, "evidence_refund_refusal_explanation": {"type": "integer", "index": 29, "name": "evidence_refund_refusal_explanation", "comment": "A justification for why the customer is not entitled to a refund. Has a maximum character count of 20,000."}, "evidence_service_date": {"type": "integer", "index": 30, "name": "evidence_service_date", "comment": "The date on which the customer received or began receiving the purchased service, in a clear human-readable format."}, "evidence_service_documentation": {"type": "integer", "index": 31, "name": "evidence_service_documentation", "comment": "(ID of a file upload) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement."}, "evidence_shipping_address": {"type": "integer", "index": 32, "name": "evidence_shipping_address", "comment": "The address to which a physical product was shipped. You should try to include as complete address information as possible."}, "evidence_shipping_carrier": {"type": "integer", "index": 33, "name": "evidence_shipping_carrier", "comment": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas."}, "evidence_shipping_date": {"type": "integer", "index": 34, "name": "evidence_shipping_date", "comment": "The date on which a physical product began its route to the shipping address, in a clear human-readable format."}, "evidence_shipping_documentation": {"type": "integer", "index": 35, "name": "evidence_shipping_documentation", "comment": "(ID of a file upload) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer\u2019s full shipping address, if possible."}, "evidence_shipping_tracking_number": {"type": "integer", "index": 36, "name": "evidence_shipping_tracking_number", "comment": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas."}, "evidence_uncategorized_file": {"type": "integer", "index": 37, "name": "evidence_uncategorized_file", "comment": "(ID of a file upload) Any additional evidence or statements."}, "evidence_uncategorized_text": {"type": "integer", "index": 38, "name": "evidence_uncategorized_text", "comment": "Any additional evidence or statements. Has a maximum character count of 20,000."}, "is_charge_refundable": {"type": "boolean", "index": 39, "name": "is_charge_refundable", "comment": "Boolean ff true, it is still possible to refund the disputed payment. Once the payment has been fully refunded, no further funds will be withdrawn from your Stripe account as a result of this dispute."}, "dispute_metadata": {"type": "text", "index": 40, "name": "dispute_metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "dispute_reason": {"type": "text", "index": 41, "name": "dispute_reason", "comment": "Reason given by cardholder for dispute. Possible values are bank_cannot_process, check_returned, credit_not_processed, customer_initiated, debit_not_authorized, duplicate, fraudulent, general, incorrect_account_details, insufficient_funds, product_not_received, product_unacceptable, subscription_canceled, or unrecognized."}, "dispute_status": {"type": "text", "index": 42, "name": "dispute_status", "comment": "Current status of dispute. Possible values are warning_needs_response, warning_under_review, warning_closed, needs_response, under_review, won, or lost."}, "source_relation": {"type": "text", "index": 43, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__dispute"}, "model.stripe.stg_stripe__dispute_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__dispute_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "balance_transaction": {"type": "text", "index": 4, "name": "balance_transaction", "comment": null}, "charge_id": {"type": "text", "index": 5, "name": "charge_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 6, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 7, "name": "created", "comment": null}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": null}, "evidence_access_activity_log": {"type": "integer", "index": 9, "name": "evidence_access_activity_log", "comment": null}, "evidence_billing_address": {"type": "text", "index": 10, "name": "evidence_billing_address", "comment": null}, "evidence_cancellation_policy": {"type": "integer", "index": 11, "name": "evidence_cancellation_policy", "comment": null}, "evidence_cancellation_policy_disclosure": {"type": "integer", "index": 12, "name": "evidence_cancellation_policy_disclosure", "comment": null}, "evidence_cancellation_rebuttal": {"type": "integer", "index": 13, "name": "evidence_cancellation_rebuttal", "comment": null}, "evidence_customer_communication": {"type": "integer", "index": 14, "name": "evidence_customer_communication", "comment": null}, "evidence_customer_email_address": {"type": "text", "index": 15, "name": "evidence_customer_email_address", "comment": null}, "evidence_customer_name": {"type": "text", "index": 16, "name": "evidence_customer_name", "comment": null}, "evidence_customer_purchase_ip": {"type": "text", "index": 17, "name": "evidence_customer_purchase_ip", "comment": null}, "evidence_customer_signature": {"type": "integer", "index": 18, "name": "evidence_customer_signature", "comment": null}, "evidence_details_due_by": {"type": "text", "index": 19, "name": "evidence_details_due_by", "comment": null}, "evidence_details_has_evidence": {"type": "boolean", "index": 20, "name": "evidence_details_has_evidence", "comment": null}, "evidence_details_past_due": {"type": "boolean", "index": 21, "name": "evidence_details_past_due", "comment": null}, "evidence_details_submission_count": {"type": "integer", "index": 22, "name": "evidence_details_submission_count", "comment": null}, "evidence_duplicate_charge_documentation": {"type": "integer", "index": 23, "name": "evidence_duplicate_charge_documentation", "comment": null}, "evidence_duplicate_charge_explanation": {"type": "integer", "index": 24, "name": "evidence_duplicate_charge_explanation", "comment": null}, "evidence_duplicate_charge_id": {"type": "integer", "index": 25, "name": "evidence_duplicate_charge_id", "comment": null}, "evidence_product_description": {"type": "integer", "index": 26, "name": "evidence_product_description", "comment": null}, "evidence_receipt": {"type": "text", "index": 27, "name": "evidence_receipt", "comment": null}, "evidence_refund_policy": {"type": "integer", "index": 28, "name": "evidence_refund_policy", "comment": null}, "evidence_refund_policy_disclosure": {"type": "integer", "index": 29, "name": "evidence_refund_policy_disclosure", "comment": null}, "evidence_refund_refusal_explanation": {"type": "integer", "index": 30, "name": "evidence_refund_refusal_explanation", "comment": null}, "evidence_service_date": {"type": "integer", "index": 31, "name": "evidence_service_date", "comment": null}, "evidence_service_documentation": {"type": "integer", "index": 32, "name": "evidence_service_documentation", "comment": null}, "evidence_shipping_address": {"type": "integer", "index": 33, "name": "evidence_shipping_address", "comment": null}, "evidence_shipping_carrier": {"type": "integer", "index": 34, "name": "evidence_shipping_carrier", "comment": null}, "evidence_shipping_date": {"type": "integer", "index": 35, "name": "evidence_shipping_date", "comment": null}, "evidence_shipping_documentation": {"type": "integer", "index": 36, "name": "evidence_shipping_documentation", "comment": null}, "evidence_shipping_tracking_number": {"type": "integer", "index": 37, "name": "evidence_shipping_tracking_number", "comment": null}, "evidence_uncategorized_file": {"type": "integer", "index": 38, "name": "evidence_uncategorized_file", "comment": null}, "evidence_uncategorized_text": {"type": "integer", "index": 39, "name": "evidence_uncategorized_text", "comment": null}, "is_charge_refundable": {"type": "boolean", "index": 40, "name": "is_charge_refundable", "comment": null}, "livemode": {"type": "boolean", "index": 41, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 42, "name": "metadata", "comment": null}, "reason": {"type": "text", "index": 43, "name": "reason", "comment": null}, "status": {"type": "text", "index": 44, "name": "status", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__dispute_tmp"}, "model.stripe.stg_stripe__fee": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__fee", "database": "postgres", "comment": "The details of a fee associated with a balance transaction", "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": "ID of the balance transaction entry the fee applies to"}, "index": {"type": "integer", "index": 2, "name": "index", "comment": "The index of the fee within the balance transaction"}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": "Amount of the fee. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "application": {"type": "integer", "index": 4, "name": "application", "comment": "ID of the Connect application that earned the fee."}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "description": {"type": "text", "index": 6, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "type": {"type": "text", "index": 7, "name": "type", "comment": "Type of the fee, can be application_fee, stripe_fee or tax."}, "source_relation": {"type": "text", "index": 8, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__fee"}, "model.stripe.stg_stripe__fee_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__fee_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": null}, "index": {"type": "integer", "index": 2, "name": "index", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "application": {"type": "integer", "index": 5, "name": "application", "comment": null}, "connected_account_id": {"type": "integer", "index": 6, "name": "connected_account_id", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "type": {"type": "text", "index": 9, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__fee_tmp"}, "model.stripe.stg_stripe__invoice": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__invoice", "database": "postgres", "comment": "Invoices are statements of amounts owed by a customer, and are either generated one-off, or generated periodically from a subscription.", "owner": "postgres"}, "columns": {"invoice_id": {"type": "text", "index": 1, "name": "invoice_id", "comment": "Unique identifier for the object."}, "default_payment_method_id": {"type": "text", "index": 2, "name": "default_payment_method_id", "comment": "ID of the default payment method in this invoice."}, "payment_intent_id": {"type": "text", "index": 3, "name": "payment_intent_id", "comment": "ID of the PaymentIntent associated with this invoice."}, "subscription_id": {"type": "text", "index": 4, "name": "subscription_id", "comment": "The ID of the subscription that the invoice pertains to,."}, "amount_due": {"type": "bigint", "index": 5, "name": "amount_due", "comment": "Final amount due at this time for this invoice. If the invoice\u2019s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "amount_paid": {"type": "bigint", "index": 6, "name": "amount_paid", "comment": "The amount, that was paid. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "amount_remaining": {"type": "bigint", "index": 7, "name": "amount_remaining", "comment": "The amount remaining, that is due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "post_payment_credit_notes_amount": {"type": "bigint", "index": 8, "name": "post_payment_credit_notes_amount", "comment": "Total amount of all post-payment credit notes issued for this invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "pre_payment_credit_notes_amount": {"type": "bigint", "index": 9, "name": "pre_payment_credit_notes_amount", "comment": "Total amount of all pre-payment credit notes issued for this invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "subtotal": {"type": "bigint", "index": 10, "name": "subtotal", "comment": "Total of all subscriptions, invoice items, and prorations on the invoice before any discount or tax is applied."}, "tax": {"type": "bigint", "index": 11, "name": "tax", "comment": "The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total": {"type": "bigint", "index": 12, "name": "total", "comment": "Total after discounts and taxes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "attempt_count": {"type": "bigint", "index": 13, "name": "attempt_count", "comment": "Number of payment attempts made for this invoice, from the perspective of the payment retry schedule."}, "auto_advance": {"type": "boolean", "index": 14, "name": "auto_advance", "comment": "Controls whether Stripe will perform automatic collection of the invoice. When false, the invoice\u2019s state will not automatically advance without an explicit action."}, "billing_reason": {"type": "text", "index": 15, "name": "billing_reason", "comment": "Indicates the reason why the invoice was created."}, "charge_id": {"type": "text", "index": 16, "name": "charge_id", "comment": "ID of the latest charge generated for this invoice, if any."}, "created_at": {"type": "timestamp without time zone", "index": 17, "name": "created_at", "comment": "Time at which the object was created."}, "currency": {"type": "text", "index": 18, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "customer_id": {"type": "text", "index": 19, "name": "customer_id", "comment": "The ID of the customer who will be billed."}, "description": {"type": "text", "index": 20, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users. Referenced as \u2018memo\u2019 in the Dashboard."}, "due_date": {"type": "timestamp without time zone", "index": 21, "name": "due_date", "comment": "The date on which payment for this invoice is due. This value will be null for invoices where collection_method=charge_automatically."}, "metadata": {"type": "text", "index": 22, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "number": {"type": "bigint", "index": 23, "name": "number", "comment": "A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer\u2019s unique invoice_prefix if it is specified."}, "is_paid": {"type": "boolean", "index": 24, "name": "is_paid", "comment": "Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer\u2019s account balance."}, "receipt_number": {"type": "integer", "index": 25, "name": "receipt_number", "comment": "This is the transaction number that appears on email receipts sent for this invoice."}, "status": {"type": "text", "index": 26, "name": "status", "comment": "Status of the invoice."}, "period_start": {"type": "timestamp without time zone", "index": 27, "name": "period_start", "comment": "Start of the usage period during for which the invoice was created."}, "period_end": {"type": "timestamp without time zone", "index": 28, "name": "period_end", "comment": "End of the usage period during for which the invoice was created."}, "status_transitions_finalized_at": {"type": "timestamp without time zone", "index": 29, "name": "status_transitions_finalized_at", "comment": "The time that the invoice draft was finalized."}, "status_transitions_marked_uncollectible_at": {"type": "timestamp without time zone", "index": 30, "name": "status_transitions_marked_uncollectible_at", "comment": "The time that the invoice was marked uncollectible."}, "status_transitions_paid_at": {"type": "timestamp without time zone", "index": 31, "name": "status_transitions_paid_at", "comment": "The time that the invoice was paid."}, "status_transitions_voided_at": {"type": "timestamp without time zone", "index": 32, "name": "status_transitions_voided_at", "comment": "The time that the invoice was voided."}, "source_relation": {"type": "text", "index": 33, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__invoice"}, "model.stripe.stg_stripe__invoice_line_item": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__invoice_line_item", "database": "postgres", "comment": "The different items that an invoice contains", "owner": "postgres"}, "columns": {"invoice_line_item_id": {"type": "text", "index": 1, "name": "invoice_line_item_id", "comment": "Unique identifier for the object. Note that the same line item can be shown across different invoices, so this value can appear multiple times."}, "invoice_id": {"type": "character varying(500)", "index": 2, "name": "invoice_id", "comment": "The ID of the invoice this item is a part of"}, "invoice_item_id": {"type": "text", "index": 3, "name": "invoice_item_id", "comment": "The ID of the invoice item this item is a part of"}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": "The amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "description": {"type": "text", "index": 6, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "is_discountable": {"type": "boolean", "index": 7, "name": "is_discountable", "comment": "If true, discounts will apply to this line item. Always false for prorations."}, "plan_id": {"type": "text", "index": 8, "name": "plan_id", "comment": "The ID of the plan of the subscription, if the line item is a subscription or a proration."}, "price_id": {"type": "text", "index": 9, "name": "price_id", "comment": "ID of the price object this item pertains to"}, "proration": {"type": "boolean", "index": 10, "name": "proration", "comment": "Whether this is a proration."}, "quantity": {"type": "integer", "index": 11, "name": "quantity", "comment": "The quantity of the subscription, if the line item is a subscription or a proration."}, "subscription_id": {"type": "text", "index": 12, "name": "subscription_id", "comment": "The ID of the subscription that the invoice item pertains to, if any."}, "subscription_item_id": {"type": "text", "index": 13, "name": "subscription_item_id", "comment": "The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription."}, "type": {"type": "integer", "index": 14, "name": "type", "comment": "A string identifying the type of the source of this line item, either an invoice item or a subscription."}, "unique_invoice_line_item_id": {"type": "text", "index": 15, "name": "unique_invoice_line_item_id", "comment": "A unique id generated and only for old invoice line item ID's from a past version of the API. The introduction of this field resolves the pagination break issue for invoice line items, which was introduced by the [Stripe API update](https://stripe.com/docs/upgrades#2019-12-03)."}, "period_start": {"type": "timestamp without time zone", "index": 16, "name": "period_start", "comment": "Start of the usage period during which invoice items were added to this invoice."}, "period_end": {"type": "timestamp without time zone", "index": 17, "name": "period_end", "comment": "End of the usage period during which invoice items were added to this invoice."}, "source_relation": {"type": "text", "index": 18, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__invoice_line_item"}, "model.stripe.stg_stripe__invoice_line_item_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__invoice_line_item_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 2, "name": "invoice_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "description": {"type": "text", "index": 6, "name": "description", "comment": null}, "discountable": {"type": "boolean", "index": 7, "name": "discountable", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "period_end": {"type": "timestamp without time zone", "index": 9, "name": "period_end", "comment": null}, "period_start": {"type": "timestamp without time zone", "index": 10, "name": "period_start", "comment": null}, "plan_id": {"type": "text", "index": 11, "name": "plan_id", "comment": null}, "proration": {"type": "boolean", "index": 12, "name": "proration", "comment": null}, "quantity": {"type": "integer", "index": 13, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 14, "name": "subscription_id", "comment": null}, "subscription_item_id": {"type": "text", "index": 15, "name": "subscription_item_id", "comment": null}, "type": {"type": "integer", "index": 16, "name": "type", "comment": null}, "unique_id": {"type": "text", "index": 17, "name": "unique_id", "comment": null}, "metadata": {"type": "text", "index": 18, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__invoice_line_item_tmp"}, "model.stripe.stg_stripe__invoice_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__invoice_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 5, "name": "customer_id", "comment": null}, "due_date": {"type": "timestamp without time zone", "index": 6, "name": "due_date", "comment": null}, "description": {"type": "text", "index": 7, "name": "description", "comment": null}, "discountable": {"type": "boolean", "index": 8, "name": "discountable", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 9, "name": "invoice_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 10, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 11, "name": "livemode", "comment": null}, "period_end": {"type": "timestamp without time zone", "index": 12, "name": "period_end", "comment": null}, "period_start": {"type": "timestamp without time zone", "index": 13, "name": "period_start", "comment": null}, "proration": {"type": "boolean", "index": 14, "name": "proration", "comment": null}, "quantity": {"type": "integer", "index": 15, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 16, "name": "subscription_id", "comment": null}, "subscription_item_id": {"type": "text", "index": 17, "name": "subscription_item_id", "comment": null}, "unit_amount": {"type": "integer", "index": 18, "name": "unit_amount", "comment": null}, "default_payment_method_id": {"type": "text", "index": 19, "name": "default_payment_method_id", "comment": null}, "amount_due": {"type": "bigint", "index": 20, "name": "amount_due", "comment": null}, "amount_paid": {"type": "bigint", "index": 21, "name": "amount_paid", "comment": null}, "amount_remaining": {"type": "bigint", "index": 22, "name": "amount_remaining", "comment": null}, "post_payment_credit_notes_amount": {"type": "bigint", "index": 23, "name": "post_payment_credit_notes_amount", "comment": null}, "pre_payment_credit_notes_amount": {"type": "bigint", "index": 24, "name": "pre_payment_credit_notes_amount", "comment": null}, "subtotal": {"type": "bigint", "index": 25, "name": "subtotal", "comment": null}, "tax": {"type": "bigint", "index": 26, "name": "tax", "comment": null}, "total": {"type": "bigint", "index": 27, "name": "total", "comment": null}, "attempt_count": {"type": "bigint", "index": 28, "name": "attempt_count", "comment": null}, "auto_advance": {"type": "boolean", "index": 29, "name": "auto_advance", "comment": null}, "billing_reason": {"type": "text", "index": 30, "name": "billing_reason", "comment": null}, "metadata": {"type": "text", "index": 31, "name": "metadata", "comment": null}, "number": {"type": "bigint", "index": 32, "name": "number", "comment": null}, "paid": {"type": "boolean", "index": 33, "name": "paid", "comment": null}, "receipt_number": {"type": "integer", "index": 34, "name": "receipt_number", "comment": null}, "status": {"type": "text", "index": 35, "name": "status", "comment": null}, "source_relation": {"type": "integer", "index": 36, "name": "source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__invoice_tmp"}, "model.stripe.stg_stripe__payment_intent": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__payment_intent", "database": "postgres", "comment": "A Payment Intent guides you through the process of collecting a payment from your customer.", "owner": "postgres"}, "columns": {"payment_intent_id": {"type": "text", "index": 1, "name": "payment_intent_id", "comment": "Unique identifier for the object."}, "amount": {"type": "integer", "index": 2, "name": "amount", "comment": "Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the major currency unit. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "amount_capturable": {"type": "integer", "index": 3, "name": "amount_capturable", "comment": "Amount that can be captured from this PaymentIntent. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "amount_received": {"type": "integer", "index": 4, "name": "amount_received", "comment": "Amount that was collected by this PaymentIntent. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "application_fee_amount": {"type": "integer", "index": 5, "name": "application_fee_amount", "comment": "The amount of the application fee (if any) for the resulting payment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "application": {"type": "text", "index": 6, "name": "application", "comment": "ID of the Connect application that created the PaymentIntent."}, "canceled_at": {"type": "timestamp without time zone", "index": 7, "name": "canceled_at", "comment": "Populated when status is canceled, this is the time at which the PaymentIntent was canceled."}, "cancellation_reason": {"type": "integer", "index": 8, "name": "cancellation_reason", "comment": "Reason for cancellation of this PaymentIntent, either user-provided (duplicate, fraudulent, requested_by_customer, or abandoned) or generated by Stripe internally (failed_invoice, void_invoice, or automatic)."}, "capture_method": {"type": "text", "index": 9, "name": "capture_method", "comment": "Controls when the funds will be captured from the customer\u2019s account."}, "confirmation_method": {"type": "text", "index": 10, "name": "confirmation_method", "comment": "Whether confirmed automatically or manually"}, "created_at": {"type": "timestamp without time zone", "index": 11, "name": "created_at", "comment": "Time at which the object was created."}, "currency": {"type": "text", "index": 12, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "customer_id": {"type": "text", "index": 13, "name": "customer_id", "comment": "ID of the Customer this PaymentIntent belongs to, if one exists."}, "description": {"type": "text", "index": 14, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "metadata": {"type": "text", "index": 15, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "payment_method_id": {"type": "text", "index": 16, "name": "payment_method_id", "comment": "ID of the payment method used in this PaymentIntent."}, "receipt_email": {"type": "text", "index": 17, "name": "receipt_email", "comment": "Email address that the receipt for the resulting payment will be sent to."}, "statement_descriptor": {"type": "integer", "index": 18, "name": "statement_descriptor", "comment": "For non-card charges, you can use this value as the complete description that appears on your customers\u2019 statements."}, "status": {"type": "text", "index": 19, "name": "status", "comment": "Status of this PaymentIntent, one of requires_payment_method, requires_confirmation, requires_action, processing, requires_capture, canceled, or succeeded."}, "source_relation": {"type": "text", "index": 20, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payment_intent"}, "model.stripe.stg_stripe__payment_intent_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__payment_intent_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "amount_capturable": {"type": "integer", "index": 4, "name": "amount_capturable", "comment": null}, "amount_received": {"type": "integer", "index": 5, "name": "amount_received", "comment": null}, "application": {"type": "text", "index": 6, "name": "application", "comment": null}, "application_fee_amount": {"type": "integer", "index": 7, "name": "application_fee_amount", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 8, "name": "canceled_at", "comment": null}, "cancellation_reason": {"type": "integer", "index": 9, "name": "cancellation_reason", "comment": null}, "capture_method": {"type": "text", "index": 10, "name": "capture_method", "comment": null}, "confirmation_method": {"type": "text", "index": 11, "name": "confirmation_method", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "text", "index": 13, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "description": {"type": "text", "index": 15, "name": "description", "comment": null}, "last_payment_error_charge_id": {"type": "integer", "index": 16, "name": "last_payment_error_charge_id", "comment": null}, "last_payment_error_code": {"type": "integer", "index": 17, "name": "last_payment_error_code", "comment": null}, "last_payment_error_decline_code": {"type": "integer", "index": 18, "name": "last_payment_error_decline_code", "comment": null}, "last_payment_error_doc_url": {"type": "integer", "index": 19, "name": "last_payment_error_doc_url", "comment": null}, "last_payment_error_message": {"type": "integer", "index": 20, "name": "last_payment_error_message", "comment": null}, "last_payment_error_param": {"type": "integer", "index": 21, "name": "last_payment_error_param", "comment": null}, "last_payment_error_source_id": {"type": "integer", "index": 22, "name": "last_payment_error_source_id", "comment": null}, "last_payment_error_type": {"type": "integer", "index": 23, "name": "last_payment_error_type", "comment": null}, "livemode": {"type": "boolean", "index": 24, "name": "livemode", "comment": null}, "on_behalf_of": {"type": "integer", "index": 25, "name": "on_behalf_of", "comment": null}, "payment_method_id": {"type": "text", "index": 26, "name": "payment_method_id", "comment": null}, "receipt_email": {"type": "text", "index": 27, "name": "receipt_email", "comment": null}, "source_id": {"type": "integer", "index": 28, "name": "source_id", "comment": null}, "statement_descriptor": {"type": "integer", "index": 29, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 30, "name": "status", "comment": null}, "transfer_data_destination": {"type": "integer", "index": 31, "name": "transfer_data_destination", "comment": null}, "transfer_group": {"type": "integer", "index": 32, "name": "transfer_group", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payment_intent_tmp"}, "model.stripe.stg_stripe__payment_method": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method", "database": "postgres", "comment": "PaymentMethod objects represent your customer's payment instruments. They can be used with PaymentIntents to collect payments or saved to Customer objects to store instrument details for future payments.", "owner": "postgres"}, "columns": {"payment_method_id": {"type": "text", "index": 1, "name": "payment_method_id", "comment": "Unique identifier for the object."}, "created_at": {"type": "timestamp without time zone", "index": 2, "name": "created_at", "comment": "Time at which the object was created."}, "customer_id": {"type": "text", "index": 3, "name": "customer_id", "comment": "The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer."}, "metadata": {"type": "text", "index": 4, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "type": {"type": "text", "index": 5, "name": "type", "comment": "The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type."}, "source_relation": {"type": "text", "index": 6, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payment_method"}, "model.stripe.stg_stripe__payment_method_card": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method_card", "database": "postgres", "comment": "Table with the relationships between a payment method and a card", "owner": "postgres"}, "columns": {"payment_method_id": {"type": "text", "index": 1, "name": "payment_method_id", "comment": "ID of the payment method"}, "brand": {"type": "text", "index": 2, "name": "brand", "comment": "Card brand. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown."}, "funding": {"type": "text", "index": 3, "name": "funding", "comment": "Card funding type. Can be credit, debit, prepaid, or unknown."}, "charge_id": {"type": "integer", "index": 4, "name": "charge_id", "comment": "ID of the charge that this card belongs to."}, "type": {"type": "integer", "index": 5, "name": "type", "comment": "The type of the payment method."}, "wallet_type": {"type": "integer", "index": 6, "name": "wallet_type", "comment": "The type of the card wallet, one of amex_express_checkout, apple_pay, google_pay, masterpass, samsung_pay, or visa_checkout. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type."}, "three_d_secure_authentication_flow": {"type": "text", "index": 7, "name": "three_d_secure_authentication_flow", "comment": "For authenticated transactions, how the customer was authenticated by the issuing bank."}, "three_d_secure_result": {"type": "text", "index": 8, "name": "three_d_secure_result", "comment": "Indicates the outcome of 3D Secure authentication."}, "three_d_secure_result_reason": {"type": "text", "index": 9, "name": "three_d_secure_result_reason", "comment": "Additional information about why 3D Secure succeeded or failed based on the result."}, "three_d_secure_version": {"type": "text", "index": 10, "name": "three_d_secure_version", "comment": "The version of 3D Secure that was used."}, "source_relation": {"type": "text", "index": 11, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payment_method_card"}, "model.stripe.stg_stripe__payment_method_card_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method_card_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"payment_method_id": {"type": "text", "index": 1, "name": "payment_method_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "brand": {"type": "text", "index": 3, "name": "brand", "comment": null}, "charge_id": {"type": "integer", "index": 4, "name": "charge_id", "comment": null}, "description": {"type": "integer", "index": 5, "name": "description", "comment": null}, "fingerprint": {"type": "text", "index": 6, "name": "fingerprint", "comment": null}, "funding": {"type": "text", "index": 7, "name": "funding", "comment": null}, "type": {"type": "integer", "index": 8, "name": "type", "comment": null}, "wallet_type": {"type": "integer", "index": 9, "name": "wallet_type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payment_method_card_tmp"}, "model.stripe.stg_stripe__payment_method_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "billing_detail_address_city": {"type": "integer", "index": 3, "name": "billing_detail_address_city", "comment": null}, "billing_detail_address_country": {"type": "integer", "index": 4, "name": "billing_detail_address_country", "comment": null}, "billing_detail_address_line_1": {"type": "integer", "index": 5, "name": "billing_detail_address_line_1", "comment": null}, "billing_detail_address_line_2": {"type": "integer", "index": 6, "name": "billing_detail_address_line_2", "comment": null}, "billing_detail_address_postal_code": {"type": "text", "index": 7, "name": "billing_detail_address_postal_code", "comment": null}, "billing_detail_address_state": {"type": "integer", "index": 8, "name": "billing_detail_address_state", "comment": null}, "billing_detail_email": {"type": "text", "index": 9, "name": "billing_detail_email", "comment": null}, "billing_detail_name": {"type": "text", "index": 10, "name": "billing_detail_name", "comment": null}, "billing_detail_phone": {"type": "integer", "index": 11, "name": "billing_detail_phone", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "customer_id": {"type": "text", "index": 13, "name": "customer_id", "comment": null}, "livemode": {"type": "boolean", "index": 14, "name": "livemode", "comment": null}, "type": {"type": "text", "index": 15, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payment_method_tmp"}, "model.stripe.stg_stripe__payout": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__payout", "database": "postgres", "comment": "A Payout object is created when you receive funds from Stripe, or when you initiate a payout to either a bank account or debit card of a connected Stripe account.", "owner": "postgres"}, "columns": {"payout_id": {"type": "text", "index": 1, "name": "payout_id", "comment": "Unique identifier for the object."}, "amount": {"type": "integer", "index": 2, "name": "amount", "comment": "Amount (in currency units) to be transferred to your bank account or debit card. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "arrival_date_at": {"type": "timestamp without time zone", "index": 3, "name": "arrival_date_at", "comment": "Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays."}, "is_automatic": {"type": "boolean", "index": 4, "name": "is_automatic", "comment": "true if the payout was created by an automated payout schedule, and false if it was requested manually."}, "balance_transaction_id": {"type": "text", "index": 5, "name": "balance_transaction_id", "comment": "ID of the latest balance transaction linked to this payout, describing its impact on your account balance. The payout to balance_transaction relationship is 1:many.\n"}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": "Time at which the object was created."}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "description": {"type": "text", "index": 8, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "destination_bank_account_id": {"type": "character varying(500)", "index": 9, "name": "destination_bank_account_id", "comment": "ID of the bank account the payout was sent to."}, "destination_card_id": {"type": "character varying(500)", "index": 10, "name": "destination_card_id", "comment": "ID of the card the payout was sent to."}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "method": {"type": "text", "index": 12, "name": "method", "comment": "The method used to send this payout, which can be standard or instant."}, "source_type": {"type": "text", "index": 13, "name": "source_type", "comment": "The source balance this payout came from. One of card, fpx, or bank_account."}, "status": {"type": "text", "index": 14, "name": "status", "comment": "Current status of the payout. Can be paid, pending, in_transit, canceled or failed."}, "type": {"type": "text", "index": 15, "name": "type", "comment": "Can be bank_account or card."}, "source_relation": {"type": "text", "index": 16, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payout"}, "model.stripe.stg_stripe__payout_balance_transaction": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__payout_balance_transaction", "database": "postgres", "comment": "Table that contains the complete mapping between `payout_id` and `balance_transaction_id`. The payout to balance_transaction relationship is 1:many.\n", "owner": "postgres"}, "columns": {"payout_id": {"type": "text", "index": 1, "name": "payout_id", "comment": "Unique identifier for the payout."}, "balance_transaction_id": {"type": "text", "index": 2, "name": "balance_transaction_id", "comment": "Unique identifier for the balance transaction."}, "source_relation": {"type": "text", "index": 3, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payout_balance_transaction"}, "model.stripe.stg_stripe__payout_balance_transaction_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__payout_balance_transaction_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"payout_id": {"type": "text", "index": 1, "name": "payout_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "balance_transaction_id": {"type": "text", "index": 3, "name": "balance_transaction_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payout_balance_transaction_tmp"}, "model.stripe.stg_stripe__payout_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__payout_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "arrival_date": {"type": "timestamp without time zone", "index": 4, "name": "arrival_date", "comment": null}, "automatic": {"type": "boolean", "index": 5, "name": "automatic", "comment": null}, "balance_transaction_id": {"type": "text", "index": 6, "name": "balance_transaction_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 7, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 8, "name": "created", "comment": null}, "currency": {"type": "text", "index": 9, "name": "currency", "comment": null}, "description": {"type": "text", "index": 10, "name": "description", "comment": null}, "destination_bank_account_id": {"type": "character varying(500)", "index": 11, "name": "destination_bank_account_id", "comment": null}, "destination_card_id": {"type": "character varying(500)", "index": 12, "name": "destination_card_id", "comment": null}, "failure_balance_transaction_id": {"type": "integer", "index": 13, "name": "failure_balance_transaction_id", "comment": null}, "failure_code": {"type": "integer", "index": 14, "name": "failure_code", "comment": null}, "failure_message": {"type": "integer", "index": 15, "name": "failure_message", "comment": null}, "livemode": {"type": "boolean", "index": 16, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 17, "name": "metadata", "comment": null}, "method": {"type": "text", "index": 18, "name": "method", "comment": null}, "source_type": {"type": "text", "index": 19, "name": "source_type", "comment": null}, "statement_descriptor": {"type": "integer", "index": 20, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 21, "name": "status", "comment": null}, "type": {"type": "text", "index": 22, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__payout_tmp"}, "model.stripe.stg_stripe__price_plan": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__price_plan", "database": "postgres", "comment": "This model defines the base price, currency, and billing cycle for recurring purchases of products. Please note that the Prices API replaced the Plans API in Stripe, so if you have migrated and choose to use the Price object then these columns come from the Price object. Otherwise, these will come from the Plan object. For how to configure, refer to the README.", "owner": "postgres"}, "columns": {"price_plan_id": {"type": "text", "index": 1, "name": "price_plan_id", "comment": "The ID of the record. If you have opted to use the Prices API, this will be the ID from the price object. If you opted not to, this will be the ID from the plan object."}, "is_active": {"type": "boolean", "index": 2, "name": "is_active", "comment": "Whether the plan can be used for new purchases."}, "unit_amount": {"type": "integer", "index": 3, "name": "unit_amount", "comment": "The unit amount in currency units to be charged, represented as a whole integer if possible. In the Plan source table as Amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "recurring_interval": {"type": "text", "index": 5, "name": "recurring_interval", "comment": "The frequency at which a subscription is billed. One of day, week, month or year. In the Plan table as Interval."}, "recurring_interval_count": {"type": "integer", "index": 6, "name": "recurring_interval_count", "comment": "The number of intervals between subscription billings. For example, interval_count=3 bills every 3 months. In the plan source table as interval_count."}, "recurring_usage_type": {"type": "character varying(100)", "index": 7, "name": "recurring_usage_type", "comment": "Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed. In the Plan object as usage_type."}, "recurring_aggregate_usage": {"type": "character varying(100)", "index": 8, "name": "recurring_aggregate_usage", "comment": "Specifies a usage aggregation strategy for prices of usage_type=metered. Allowed values are sum for summing up all usage during a period, last_during_period for using the last usage record reported within a period, last_ever for using the last usage record ever (across period bounds) or max which uses the usage record with the maximum reported usage during a period. Defaults to sum. In the plan source table as aggregate_usage."}, "metadata": {"type": "text", "index": 9, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "nickname": {"type": "text", "index": 10, "name": "nickname", "comment": "A brief description of the plan, hidden from customers."}, "product_id": {"type": "text", "index": 11, "name": "product_id", "comment": "The id of the product whose pricing this plan determines."}, "billing_scheme": {"type": "text", "index": 12, "name": "billing_scheme", "comment": "Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in unit_amount or unit_amount_decimal) will be charged per unit in quantity (for prices with usage_type=licensed), or per unit of total usage (for prices with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes."}, "created_at": {"type": "timestamp without time zone", "index": 13, "name": "created_at", "comment": "Time at which the object was created. Measured in seconds since the Unix epoch."}, "is_deleted": {"type": "boolean", "index": 14, "name": "is_deleted", "comment": "Whether record has been deleted."}, "source_relation": {"type": "text", "index": 15, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__price_plan"}, "model.stripe.stg_stripe__price_plan_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__price_plan_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "billing_scheme": {"type": "text", "index": 4, "name": "billing_scheme", "comment": null}, "created": {"type": "timestamp without time zone", "index": 5, "name": "created", "comment": null}, "currency": {"type": "text", "index": 6, "name": "currency", "comment": null}, "invoice_item_id": {"type": "text", "index": 7, "name": "invoice_item_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 8, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 9, "name": "livemode", "comment": null}, "lookup_key": {"type": "integer", "index": 10, "name": "lookup_key", "comment": null}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": null}, "nickname": {"type": "text", "index": 12, "name": "nickname", "comment": null}, "product_id": {"type": "text", "index": 13, "name": "product_id", "comment": null}, "recurring_aggregate_usage": {"type": "character varying(100)", "index": 14, "name": "recurring_aggregate_usage", "comment": null}, "recurring_interval": {"type": "character varying(100)", "index": 15, "name": "recurring_interval", "comment": null}, "recurring_interval_count": {"type": "bigint", "index": 16, "name": "recurring_interval_count", "comment": null}, "recurring_usage_type": {"type": "character varying(100)", "index": 17, "name": "recurring_usage_type", "comment": null}, "tiers_mode": {"type": "integer", "index": 18, "name": "tiers_mode", "comment": null}, "transform_quantity_divide_by": {"type": "integer", "index": 19, "name": "transform_quantity_divide_by", "comment": null}, "transform_quantity_round": {"type": "integer", "index": 20, "name": "transform_quantity_round", "comment": null}, "type": {"type": "text", "index": 21, "name": "type", "comment": null}, "unit_amount": {"type": "integer", "index": 22, "name": "unit_amount", "comment": null}, "unit_amount_decimal": {"type": "integer", "index": 23, "name": "unit_amount_decimal", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__price_plan_tmp"}, "model.stripe.stg_stripe__product": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__product", "database": "postgres", "comment": "Properties belonging to a Stripe product.", "owner": "postgres"}, "columns": {"product_id": {"type": "text", "index": 1, "name": "product_id", "comment": "Unique identifier for the object."}, "is_active": {"type": "boolean", "index": 2, "name": "is_active", "comment": "Whether the product is currently available for purchase."}, "attributes": {"type": "text", "index": 3, "name": "attributes", "comment": "Key-value pairs that can be attached to a product object, useful for storing additional structured information."}, "caption": {"type": "text", "index": 4, "name": "caption", "comment": "A brief explanation or description of the product for display purposes."}, "created_at": {"type": "timestamp without time zone", "index": 5, "name": "created_at", "comment": "Timestamp indicating when the product was created."}, "deactivate_at": {"type": "timestamp without time zone", "index": 6, "name": "deactivate_at", "comment": "List of dates when the product will be deactivated."}, "description": {"type": "text", "index": 7, "name": "description", "comment": "The product\u2019s description, meant to be displayable to the customer."}, "images": {"type": "text", "index": 8, "name": "images", "comment": "A list of up to 8 URLs of images for this product, meant to be displayable to the customer."}, "is_deleted": {"type": "boolean", "index": 9, "name": "is_deleted", "comment": "Indicates whether the product has been deleted."}, "name": {"type": "text", "index": 10, "name": "name", "comment": "The product\u2019s name, meant to be displayable to the customer."}, "shippable": {"type": "boolean", "index": 11, "name": "shippable", "comment": "Whether this product is shipped (i.e., physical goods)."}, "statement_descriptor": {"type": "integer", "index": 12, "name": "statement_descriptor", "comment": "Extra information about a product which will appear on your customer\u2019s credit card statement."}, "type": {"type": "text", "index": 13, "name": "type", "comment": "The type of the product (e.g., good, service)."}, "unit_label": {"type": "integer", "index": 14, "name": "unit_label", "comment": "A label that represents units of this product, included in receipts and invoices."}, "updated": {"type": "text", "index": 15, "name": "updated", "comment": "Time at which the object was last updated, measured in seconds since the Unix epoch."}, "url": {"type": "text", "index": 16, "name": "url", "comment": "A URL of a publicly-accessible webpage for this product."}, "source_relation": {"type": "text", "index": 17, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__product"}, "model.stripe.stg_stripe__product_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__product_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "caption": {"type": "text", "index": 4, "name": "caption", "comment": null}, "created": {"type": "timestamp without time zone", "index": 5, "name": "created", "comment": null}, "description": {"type": "text", "index": 6, "name": "description", "comment": null}, "is_deleted": {"type": "boolean", "index": 7, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 9, "name": "metadata", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "package_dimensions_height": {"type": "integer", "index": 11, "name": "package_dimensions_height", "comment": null}, "package_dimensions_length": {"type": "integer", "index": 12, "name": "package_dimensions_length", "comment": null}, "package_dimensions_weight": {"type": "integer", "index": 13, "name": "package_dimensions_weight", "comment": null}, "package_dimensions_width": {"type": "integer", "index": 14, "name": "package_dimensions_width", "comment": null}, "shippable": {"type": "boolean", "index": 15, "name": "shippable", "comment": null}, "statement_descriptor": {"type": "integer", "index": 16, "name": "statement_descriptor", "comment": null}, "type": {"type": "text", "index": 17, "name": "type", "comment": null}, "unit_label": {"type": "integer", "index": 18, "name": "unit_label", "comment": null}, "updated": {"type": "text", "index": 19, "name": "updated", "comment": null}, "url": {"type": "text", "index": 20, "name": "url", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__product_tmp"}, "model.stripe.stg_stripe__refund": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__refund", "database": "postgres", "comment": "Details of transactions that have been refunded", "owner": "postgres"}, "columns": {"refund_id": {"type": "text", "index": 1, "name": "refund_id", "comment": "Unique identifier for the object."}, "payment_intent_id": {"type": "text", "index": 2, "name": "payment_intent_id", "comment": "ID of the payment intent associated with this refund."}, "balance_transaction_id": {"type": "text", "index": 3, "name": "balance_transaction_id", "comment": "ID for the balance transaction that describes the impact on your account balance."}, "charge_id": {"type": "text", "index": 4, "name": "charge_id", "comment": "ID of the charge that was refunded."}, "amount": {"type": "integer", "index": 5, "name": "amount", "comment": "Amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": "Time at which the object was created."}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "description": {"type": "integer", "index": 8, "name": "description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users. (Available on non-card refunds only)"}, "metadata": {"type": "text", "index": 9, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "reason": {"type": "text", "index": 10, "name": "reason", "comment": "Reason for the refund, either user-provided (duplicate, fraudulent, or requested_by_customer) or generated by Stripe internally (expired_uncaptured_charge)."}, "receipt_number": {"type": "text", "index": 11, "name": "receipt_number", "comment": "This is the transaction number that appears on email receipts sent for this refund."}, "status": {"type": "text", "index": 12, "name": "status", "comment": "Status of the refund. For credit card refunds, this can be pending, succeeded, or failed. For other types of refunds, it can be pending, succeeded, failed, or canceled."}, "source_relation": {"type": "text", "index": 13, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__refund"}, "model.stripe.stg_stripe__refund_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__refund_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "balance_transaction_id": {"type": "text", "index": 4, "name": "balance_transaction_id", "comment": null}, "charge_id": {"type": "text", "index": 5, "name": "charge_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "integer", "index": 8, "name": "description", "comment": null}, "failure_balance_transaction_id": {"type": "integer", "index": 9, "name": "failure_balance_transaction_id", "comment": null}, "failure_reason": {"type": "integer", "index": 10, "name": "failure_reason", "comment": null}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": null}, "reason": {"type": "text", "index": 12, "name": "reason", "comment": null}, "receipt_number": {"type": "text", "index": 13, "name": "receipt_number", "comment": null}, "status": {"type": "text", "index": 14, "name": "status", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__refund_tmp"}, "model.stripe.stg_stripe__subscription": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__subscription", "database": "postgres", "comment": "Subscriptions allow you to charge a customer on a recurring basis. Please note that the more recent `subscription_history` table replaced the `subscription` table, so the source used in this model depends on which one you have.", "owner": "postgres"}, "columns": {"subscription_id": {"type": "text", "index": 1, "name": "subscription_id", "comment": "Unique identifier for the object."}, "latest_invoice_id": {"type": "text", "index": 2, "name": "latest_invoice_id", "comment": "ID of the latest invoice for this subscription."}, "customer_id": {"type": "text", "index": 3, "name": "customer_id", "comment": "ID of customer this subscription belongs to."}, "default_payment_method_id": {"type": "text", "index": 4, "name": "default_payment_method_id", "comment": "ID of the default payment method for this subscription."}, "pending_setup_intent_id": {"type": "text", "index": 5, "name": "pending_setup_intent_id", "comment": "ID of the payment setup intent for this subscription."}, "status": {"type": "text", "index": 6, "name": "status", "comment": "Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid."}, "billing": {"type": "text", "index": 7, "name": "billing", "comment": "How the invoice is billed"}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 8, "name": "billing_cycle_anchor", "comment": "Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices."}, "cancel_at": {"type": "timestamp without time zone", "index": 9, "name": "cancel_at", "comment": "A date in the future at which the subscription will automatically get canceled"}, "is_cancel_at_period_end": {"type": "boolean", "index": 10, "name": "is_cancel_at_period_end", "comment": "Boolean indicating whether this subscription should cancel at the end of the current period."}, "canceled_at": {"type": "timestamp without time zone", "index": 11, "name": "canceled_at", "comment": "If the subscription has been canceled, the date of that cancellation."}, "created_at": {"type": "timestamp without time zone", "index": 12, "name": "created_at", "comment": "Time at which the object was created."}, "current_period_start": {"type": "timestamp without time zone", "index": 13, "name": "current_period_start", "comment": "Start of the current period that the subscription has been invoiced for."}, "current_period_end": {"type": "timestamp without time zone", "index": 14, "name": "current_period_end", "comment": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created."}, "days_until_due": {"type": "integer", "index": 15, "name": "days_until_due", "comment": "Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically."}, "metadata": {"type": "text", "index": 16, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "start_date_at": {"type": "timestamp without time zone", "index": 17, "name": "start_date_at", "comment": "Date when the subscription was first created. The date might differ from the created date due to backdating."}, "ended_at": {"type": "timestamp without time zone", "index": 18, "name": "ended_at", "comment": "If the subscription has ended, the date the subscription ended."}, "pause_collection_behavior": {"type": "text", "index": 19, "name": "pause_collection_behavior", "comment": "The payment collection behavior for this subscription while paused. One of \"keep_as_draft\", \"mark_uncollectible\", or \"void\"."}, "pause_collection_resumes_at": {"type": "timestamp without time zone", "index": 20, "name": "pause_collection_resumes_at", "comment": "The time after which the subscription will resume collecting payments."}, "source_relation": {"type": "text", "index": 21, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__subscription"}, "model.stripe.stg_stripe__subscription_discount": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_discount", "database": "postgres", "comment": "Properties belonging to a Stripe subscription discount.", "owner": "postgres"}, "columns": {"subscription_discount_id": {"type": "text", "index": 1, "name": "subscription_discount_id", "comment": "The ID of the subscription discount object."}, "checkout_session_id": {"type": "integer", "index": 2, "name": "checkout_session_id", "comment": "The Checkout Session that this discount is applied to, if it is applied to a particular session in payment mode."}, "coupon_id": {"type": "text", "index": 3, "name": "coupon_id", "comment": "The ID of the coupon applied to create this discount."}, "customer_id": {"type": "text", "index": 4, "name": "customer_id", "comment": "The ID of the customer associated with this discount."}, "end_at": {"type": "timestamp without time zone", "index": 5, "name": "end_at", "comment": "If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null."}, "invoice_id": {"type": "character varying(500)", "index": 6, "name": "invoice_id", "comment": "The invoice that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice."}, "invoice_item_id": {"type": "integer", "index": 7, "name": "invoice_item_id", "comment": "The invoice item id (or invoice line item id for invoice line items of type=\u2018subscription\u2019) that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."}, "start_at": {"type": "timestamp without time zone", "index": 8, "name": "start_at", "comment": "The date that the coupon was applied."}, "subscription_id": {"type": "text", "index": 9, "name": "subscription_id", "comment": "The subscription that this coupon is applied to, if it is applied to a particular subscription."}, "source_relation": {"type": "text", "index": 10, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__subscription_discount"}, "model.stripe.stg_stripe__subscription_discount_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_discount_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "checkout_session": {"type": "integer", "index": 3, "name": "checkout_session", "comment": null}, "coupon_id": {"type": "text", "index": 4, "name": "coupon_id", "comment": null}, "customer_id": {"type": "text", "index": 5, "name": "customer_id", "comment": null}, "end": {"type": "timestamp without time zone", "index": 6, "name": "end", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 7, "name": "invoice_id", "comment": null}, "invoice_item_id": {"type": "integer", "index": 8, "name": "invoice_item_id", "comment": null}, "start": {"type": "text", "index": 9, "name": "start", "comment": null}, "subscription_id": {"type": "text", "index": 10, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__subscription_discount_tmp"}, "model.stripe.stg_stripe__subscription_item": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_item", "database": "postgres", "comment": "Subscription items allow you to create customer subscriptions with more than one plan, making it easy to represent complex billing relationships.", "owner": "postgres"}, "columns": {"subscription_item_id": {"type": "text", "index": 1, "name": "subscription_item_id", "comment": "Unique identifier for the object."}, "plan_id": {"type": "text", "index": 2, "name": "plan_id", "comment": "The ID of the plan associated with this subscription_item."}, "subscription_id": {"type": "text", "index": 3, "name": "subscription_id", "comment": "The ID of the subscription this item belongs to. Join key to the subscription_history table."}, "created_at": {"type": "timestamp without time zone", "index": 4, "name": "created_at", "comment": "Time at which the object was created"}, "current_period_start": {"type": "timestamp without time zone", "index": 5, "name": "current_period_start", "comment": "Start of the current period that the subscription has been invoiced for."}, "current_period_end": {"type": "timestamp without time zone", "index": 6, "name": "current_period_end", "comment": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created."}, "metadata": {"type": "text", "index": 7, "name": "metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "quantity": {"type": "bigint", "index": 8, "name": "quantity", "comment": "The quantity of the plan to which the customer is subscribed."}, "source_relation": {"type": "text", "index": 9, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__subscription_item"}, "model.stripe.stg_stripe__subscription_item_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_item_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "created": {"type": "timestamp without time zone", "index": 2, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 3, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 4, "name": "current_period_start", "comment": null}, "id": {"type": "text", "index": 5, "name": "id", "comment": null}, "metadata": {"type": "text", "index": 6, "name": "metadata", "comment": null}, "plan_id": {"type": "text", "index": 7, "name": "plan_id", "comment": null}, "quantity": {"type": "bigint", "index": 8, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 9, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__subscription_item_tmp"}, "model.stripe.stg_stripe__subscription_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "_fivetran_active": {"type": "boolean", "index": 3, "name": "_fivetran_active", "comment": null}, "application_fee_percent": {"type": "integer", "index": 4, "name": "application_fee_percent", "comment": null}, "billing": {"type": "text", "index": 5, "name": "billing", "comment": null}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 6, "name": "billing_cycle_anchor", "comment": null}, "billing_threshold_amount_gte": {"type": "integer", "index": 7, "name": "billing_threshold_amount_gte", "comment": null}, "billing_threshold_reset_billing_cycle_anchor": {"type": "boolean", "index": 8, "name": "billing_threshold_reset_billing_cycle_anchor", "comment": null}, "cancel_at": {"type": "timestamp without time zone", "index": 9, "name": "cancel_at", "comment": null}, "cancel_at_period_end": {"type": "boolean", "index": 10, "name": "cancel_at_period_end", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 11, "name": "canceled_at", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 13, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 14, "name": "current_period_start", "comment": null}, "customer_id": {"type": "text", "index": 15, "name": "customer_id", "comment": null}, "days_until_due": {"type": "integer", "index": 16, "name": "days_until_due", "comment": null}, "default_source_id": {"type": "text", "index": 17, "name": "default_source_id", "comment": null}, "ended_at": {"type": "timestamp without time zone", "index": 18, "name": "ended_at", "comment": null}, "livemode": {"type": "boolean", "index": 19, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 20, "name": "metadata", "comment": null}, "quantity": {"type": "integer", "index": 21, "name": "quantity", "comment": null}, "start_date": {"type": "timestamp without time zone", "index": 22, "name": "start_date", "comment": null}, "status": {"type": "text", "index": 23, "name": "status", "comment": null}, "tax_percent": {"type": "integer", "index": 24, "name": "tax_percent", "comment": null}, "trial_end": {"type": "timestamp without time zone", "index": 25, "name": "trial_end", "comment": null}, "trial_start": {"type": "timestamp without time zone", "index": 26, "name": "trial_start", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__subscription_tmp"}, "model.stripe.stg_stripe__transfer": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stg_stripe__transfer", "database": "postgres", "comment": "Properties belonging to a Stripe transfer.", "owner": "postgres"}, "columns": {"transfer_id": {"type": "text", "index": 1, "name": "transfer_id", "comment": "Unique identifier for the object."}, "transfer_amount": {"type": "integer", "index": 2, "name": "transfer_amount", "comment": "Amount in currency units to be transferred. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "transfer_amount_reversed": {"type": "integer", "index": 3, "name": "transfer_amount_reversed", "comment": "Amount in currency units reversed (can be less than the amount attribute on the transfer if a partial reversal was issued). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "balance_transaction_id": {"type": "text", "index": 4, "name": "balance_transaction_id", "comment": "Balance transaction that describes the impact of this transfer on your account balance."}, "transfer_created_at": {"type": "timestamp without time zone", "index": 5, "name": "transfer_created_at", "comment": "Time that this record of the transfer was first created."}, "transfer_currency": {"type": "text", "index": 6, "name": "transfer_currency", "comment": "Three-letter ISO currency code, in lowercase. Must be a supported currency."}, "transfer_description": {"type": "text", "index": 7, "name": "transfer_description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "transfer_destination": {"type": "text", "index": 8, "name": "transfer_destination", "comment": "ID of the Stripe account the transfer was sent to."}, "destination_payment": {"type": "integer", "index": 9, "name": "destination_payment", "comment": "If the destination is a Stripe account, the payment that the destination account received for the transfer."}, "destination_payment_id": {"type": "integer", "index": 10, "name": "destination_payment_id", "comment": "If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer."}, "transfer_metadata": {"type": "text", "index": 11, "name": "transfer_metadata", "comment": "Custom metadata added to the record, in JSON string format"}, "transfer_is_reversed": {"type": "boolean", "index": 12, "name": "transfer_is_reversed", "comment": "Boolean of whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false."}, "source_transaction": {"type": "integer", "index": 13, "name": "source_transaction", "comment": "The source transaction related to this transfer."}, "source_transaction_id": {"type": "integer", "index": 14, "name": "source_transaction_id", "comment": "ID of the charge or payment that was used to fund the transfer. If null, the transfer was funded from the available balance."}, "source_type": {"type": "text", "index": 15, "name": "source_type", "comment": "The source balance this transfer came from. One of card, fpx, or bank_account."}, "transfer_group": {"type": "integer", "index": 16, "name": "transfer_group", "comment": "A string that identifies this transaction as part of a group. See the Connect documentation for details."}, "source_relation": {"type": "text", "index": 17, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__transfer"}, "model.stripe.stg_stripe__transfer_tmp": {"metadata": {"type": "VIEW", "schema": "public_stripe_dev", "name": "stg_stripe__transfer_tmp", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "amount_reversed": {"type": "integer", "index": 4, "name": "amount_reversed", "comment": null}, "balance_transaction_id": {"type": "text", "index": 5, "name": "balance_transaction_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "destination": {"type": "text", "index": 9, "name": "destination", "comment": null}, "destination_payment": {"type": "integer", "index": 10, "name": "destination_payment", "comment": null}, "destination_payment_id": {"type": "integer", "index": 11, "name": "destination_payment_id", "comment": null}, "livemode": {"type": "boolean", "index": 12, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 13, "name": "metadata", "comment": null}, "reversed": {"type": "boolean", "index": 14, "name": "reversed", "comment": null}, "source_transaction": {"type": "integer", "index": 15, "name": "source_transaction", "comment": null}, "source_transaction_id": {"type": "integer", "index": 16, "name": "source_transaction_id", "comment": null}, "source_type": {"type": "text", "index": 17, "name": "source_type", "comment": null}, "transfer_group": {"type": "integer", "index": 18, "name": "transfer_group", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stg_stripe__transfer_tmp"}, "model.stripe.stripe__activity_itemized_2": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__activity_itemized_2", "database": "postgres", "comment": "Modeled after the [titular report](https://stripe.com/docs/reports/activity#downloading-data) from Stripe, each record represents a balance transaction and additional details such as associated customer, charge, refund, fee, and invoice information. This class of Activity reports allows you to see your payments activity alongside the related fees for the same period of time. Designed specifically for users with Interchange Plus (IC+) pricing, it presents users with fees on the date they incur them. This makes it useful for calculating fee accrual entries and understanding your net payments activity. This itemized report contains a full list of individual transactions.", "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": "Unique identifier for the related balance transaction."}, "balance_transaction_created_at": {"type": "timestamp without time zone", "index": 2, "name": "balance_transaction_created_at", "comment": "Time (in UTC) at which the balance transaction affected your Stripe balance."}, "balance_transaction_reporting_category": {"type": "text", "index": 3, "name": "balance_transaction_reporting_category", "comment": "(Beta) Reporting category is a top-level categorization of balance transactions for financial accounting purposes."}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": "Three-letter ISO code for the currency in which the amount is defined."}, "amount": {"type": "integer", "index": 5, "name": "amount", "comment": "Amount of this activity."}, "charge_id": {"type": "text", "index": 6, "name": "charge_id", "comment": "The unique ID of the related charge, if any. For charges, this will be the charge itself; for refunds or disputes, this will be the original charge being refunded or disputed."}, "payment_intent_id": {"type": "text", "index": 7, "name": "payment_intent_id", "comment": "The unique ID of the related Payment Intent, if any."}, "refund_id": {"type": "text", "index": 8, "name": "refund_id", "comment": "The unique ID of the related refund, if any."}, "dispute_ids": {"type": "text", "index": 9, "name": "dispute_ids", "comment": "The unique IDs of the related disputes, if any."}, "invoice_id": {"type": "text", "index": 10, "name": "invoice_id", "comment": "Unique ID for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice."}, "invoice_number": {"type": "bigint", "index": 11, "name": "invoice_number", "comment": "Number for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice."}, "subscription_id": {"type": "text", "index": 12, "name": "subscription_id", "comment": "Unique ID for the subscription associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing subscription."}, "transfer_id": {"type": "text", "index": 13, "name": "transfer_id", "comment": "The unique ID of the related transfer, if any."}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": "The unique ID of the related customer, if any."}, "customer_email": {"type": "integer", "index": 15, "name": "customer_email", "comment": "Email address of the customer, if any, associated with this balance transaction."}, "customer_name": {"type": "text", "index": 16, "name": "customer_name", "comment": "Name of the customer, if any, associated with this balance transaction."}, "customer_description": {"type": "character varying(500)", "index": 17, "name": "customer_description", "comment": "Description provided when creating the customer, often used to store the customer name."}, "customer_shipping_address_line_1": {"type": "integer", "index": 18, "name": "customer_shipping_address_line_1", "comment": "First line of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_line_2": {"type": "integer", "index": 19, "name": "customer_shipping_address_line_2", "comment": "Second line of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_city": {"type": "integer", "index": 20, "name": "customer_shipping_address_city", "comment": "City of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_state": {"type": "integer", "index": 21, "name": "customer_shipping_address_state", "comment": "State of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_postal_code": {"type": "integer", "index": 22, "name": "customer_shipping_address_postal_code", "comment": "Postal code of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_country": {"type": "integer", "index": 23, "name": "customer_shipping_address_country", "comment": "Country of the customer shipping address associated with this charge, if any"}, "customer_address_line_1": {"type": "integer", "index": 24, "name": "customer_address_line_1", "comment": "First line of the customer address associated with this charge, if any"}, "customer_address_line_2": {"type": "integer", "index": 25, "name": "customer_address_line_2", "comment": "Second line of the customer address associated with this charge, if any"}, "customer_address_city": {"type": "integer", "index": 26, "name": "customer_address_city", "comment": "City of the customer address associated with this charge, if any"}, "customer_address_state": {"type": "integer", "index": 27, "name": "customer_address_state", "comment": "State of the customer address associated with this charge, if any"}, "customer_address_postal_code": {"type": "integer", "index": 28, "name": "customer_address_postal_code", "comment": "Postal code of the customer address associated with this charge, if any"}, "customer_address_country": {"type": "integer", "index": 29, "name": "customer_address_country", "comment": "Country of the customer address associated with this charge, if any"}, "shipping_address_line_1": {"type": "integer", "index": 30, "name": "shipping_address_line_1", "comment": "First line of the shipping address associated with this charge, if any"}, "shipping_address_line_2": {"type": "integer", "index": 31, "name": "shipping_address_line_2", "comment": "Second line of the shipping address associated with this charge, if any"}, "shipping_address_city": {"type": "integer", "index": 32, "name": "shipping_address_city", "comment": "City of the shipping address associated with this charge, if any"}, "shipping_address_state": {"type": "integer", "index": 33, "name": "shipping_address_state", "comment": "State of the shipping address associated with this charge, if any"}, "shipping_address_postal_code": {"type": "integer", "index": 34, "name": "shipping_address_postal_code", "comment": "Postal code of the shipping address associated with this charge, if any"}, "shipping_address_country": {"type": "integer", "index": 35, "name": "shipping_address_country", "comment": "Country of the shipping address associated with this charge, if any"}, "card_address_line_1": {"type": "integer", "index": 36, "name": "card_address_line_1", "comment": "First line of the card address associated with this charge, if any"}, "card_address_line_2": {"type": "integer", "index": 37, "name": "card_address_line_2", "comment": "Second line of the card address associated with this charge, if any"}, "card_address_city": {"type": "integer", "index": 38, "name": "card_address_city", "comment": "City of the card address associated with this charge, if any"}, "card_address_state": {"type": "integer", "index": 39, "name": "card_address_state", "comment": "State of the card address associated with this charge, if any"}, "card_address_postal_code": {"type": "integer", "index": 40, "name": "card_address_postal_code", "comment": "Postal code of the card address associated with this charge, if any"}, "card_address_country": {"type": "integer", "index": 41, "name": "card_address_country", "comment": "Country of the card address associated with this charge, if any"}, "automatic_payout_id": {"type": "text", "index": 42, "name": "automatic_payout_id", "comment": "(Applies only to accounts on automatic payouts.) For paid-out activity, this will be the unique ID for the associated payout."}, "automatic_payout_effective_at": {"type": "timestamp without time zone", "index": 43, "name": "automatic_payout_effective_at", "comment": "The date we expect this automatic payout to arrive in your bank account, in UTC. This is also when the paid-out funds are deducted from your Stripe balance."}, "payment_method_type": {"type": "text", "index": 44, "name": "payment_method_type", "comment": "The type of payment method used in the related payment."}, "card_brand": {"type": "text", "index": 45, "name": "card_brand", "comment": "Card brand, if applicable."}, "card_funding": {"type": "text", "index": 46, "name": "card_funding", "comment": "Card funding type, if applicable."}, "card_country": {"type": "text", "index": 47, "name": "card_country", "comment": "Two-letter ISO code representing the country of the card."}, "statement_descriptor": {"type": "integer", "index": 48, "name": "statement_descriptor", "comment": "The dynamic statement descriptor or suffix specified when the related charge was created."}, "customer_facing_amount": {"type": "bigint", "index": 49, "name": "customer_facing_amount", "comment": "For transactions associated with charges, refunds, or disputes, the amount of the original charge, the refund, or the latest dispute. If the customer was charged in a different currency than your account\u2019s default, this field will reflect the amount as seen by the customer."}, "balance_transaction_description": {"type": "text", "index": 50, "name": "balance_transaction_description", "comment": "An arbitrary string attached to the balance transaction."}, "connected_account_id": {"type": "integer", "index": 51, "name": "connected_account_id", "comment": "For Stripe Connect activity related to a connected account, the unique ID for the account."}, "connected_account_country": {"type": "text", "index": 52, "name": "connected_account_country", "comment": "For Stripe Connect activity related to a connected account, the two-letter ISO code representing the country of the account."}, "connected_account_direct_charge_id": {"type": "text", "index": 53, "name": "connected_account_direct_charge_id", "comment": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account."}, "source_relation": {"type": "text", "index": 54, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__activity_itemized_2"}, "model.stripe.stripe__balance_change_from_activity_itemized_3": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__balance_change_from_activity_itemized_3", "database": "postgres", "comment": "Modeled after the [titular report](https://stripe.com/docs/reports/balance#schema-balance-change-from-activity-itemized-3) from Stripe, each record represents a balance transaction and additional details such as associated customer, charge, refund, card, and invoice information. This class of Balance reports is similar to a bank statement, helping you to reconcile your Stripe balance at the end of the month. The Balance report is most useful if you treat Stripe like a bank account for accounting purposes, reconciling the balance at the end of each month. If you have automatic payouts enabled and prefer to reconcile the transactions settled in each payout, see the Payout reconciliation report instead. The Balance Change from Activity reports provides a more detailed breakdown of your transactions by reporting category. This section includes all transactions except for payouts that affect your balance, including charges, refunds, disputes, other adjustments, and fees.", "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": "Unique identifier for the balance transaction."}, "created": {"type": "timestamp without time zone", "index": 2, "name": "created", "comment": "Time at which the balance transaction was created. Dates in the requested timezone, or UTC if not provided."}, "available_on": {"type": "timestamp without time zone", "index": 3, "name": "available_on", "comment": "The date the balance transaction\u2019s net funds will become available in the Stripe balance. Dates in the requested timezone, or UTC if not provided."}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": "Three-letter ISO code for the currency in which gross, fee and net are defined."}, "gross": {"type": "integer", "index": 5, "name": "gross", "comment": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "fee": {"type": "integer", "index": 6, "name": "fee", "comment": "Fees paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "net": {"type": "integer", "index": 7, "name": "net", "comment": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "reporting_category": {"type": "text", "index": 8, "name": "reporting_category", "comment": "Reporting Category is a new categorization of balance transactions, meant to improve on the current type field."}, "source_id": {"type": "text", "index": 9, "name": "source_id", "comment": "The Stripe object to which this transaction is related."}, "description": {"type": "text", "index": 10, "name": "description", "comment": "An arbitrary string attached to the balance transaction. Often useful for displaying to users."}, "customer_facing_amount": {"type": "bigint", "index": 11, "name": "customer_facing_amount", "comment": "For transactions associated with charges, refunds, or disputes, the amount of the original charge, the refund, or the latest dispute. If the customer was charged in a different currency than your account\u2019s default, this field will reflect the amount as seen by the customer."}, "customer_facing_currency": {"type": "text", "index": 12, "name": "customer_facing_currency", "comment": "For transactions associated with charges, refunds, or disputes, the three-letter ISO currency code for customer_facing_amount."}, "automatic_payout_id": {"type": "text", "index": 13, "name": "automatic_payout_id", "comment": "ID of the automatically created payout associated with this balance transaction (only set if your account is on an automatic payout schedule)."}, "automatic_payout_effective_at": {"type": "timestamp without time zone", "index": 14, "name": "automatic_payout_effective_at", "comment": "The date we expect this automatic payout to arrive in your bank account, in the requested timezone, or UTC if not provided. This is also when the paid-out funds are deducted from your Stripe balance."}, "customer_id": {"type": "text", "index": 15, "name": "customer_id", "comment": "The unique ID of the related customer, if any."}, "customer_email": {"type": "integer", "index": 16, "name": "customer_email", "comment": "Email address of the customer, if any, associated with this balance transaction."}, "customer_name": {"type": "text", "index": 17, "name": "customer_name", "comment": "Name of the customer, if any, associated with this balance transaction."}, "customer_description": {"type": "character varying(500)", "index": 18, "name": "customer_description", "comment": "Description provided when creating the customer, often used to store the customer name."}, "customer_shipping_address_line_1": {"type": "integer", "index": 19, "name": "customer_shipping_address_line_1", "comment": "First line of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_line_2": {"type": "integer", "index": 20, "name": "customer_shipping_address_line_2", "comment": "Second line of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_city": {"type": "integer", "index": 21, "name": "customer_shipping_address_city", "comment": "City of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_state": {"type": "integer", "index": 22, "name": "customer_shipping_address_state", "comment": "State of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_postal_code": {"type": "integer", "index": 23, "name": "customer_shipping_address_postal_code", "comment": "Postal code of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_country": {"type": "integer", "index": 24, "name": "customer_shipping_address_country", "comment": "Country of the customer shipping address associated with this charge, if any"}, "customer_address_line_1": {"type": "integer", "index": 25, "name": "customer_address_line_1", "comment": "First line of the customer address associated with this charge, if any"}, "customer_address_line_2": {"type": "integer", "index": 26, "name": "customer_address_line_2", "comment": "Second line of the customer address associated with this charge, if any"}, "customer_address_city": {"type": "integer", "index": 27, "name": "customer_address_city", "comment": "City of the customer address associated with this charge, if any"}, "customer_address_state": {"type": "integer", "index": 28, "name": "customer_address_state", "comment": "State of the customer address associated with this charge, if any"}, "customer_address_postal_code": {"type": "integer", "index": 29, "name": "customer_address_postal_code", "comment": "Postal code of the customer address associated with this charge, if any"}, "customer_address_country": {"type": "integer", "index": 30, "name": "customer_address_country", "comment": "Country of the customer address associated with this charge, if any"}, "shipping_address_line_1": {"type": "integer", "index": 31, "name": "shipping_address_line_1", "comment": "First line of the shipping address associated with this charge, if any"}, "shipping_address_line_2": {"type": "integer", "index": 32, "name": "shipping_address_line_2", "comment": "Second line of the shipping address associated with this charge, if any"}, "shipping_address_city": {"type": "integer", "index": 33, "name": "shipping_address_city", "comment": "City of the shipping address associated with this charge, if any"}, "shipping_address_state": {"type": "integer", "index": 34, "name": "shipping_address_state", "comment": "State of the shipping address associated with this charge, if any"}, "shipping_address_postal_code": {"type": "integer", "index": 35, "name": "shipping_address_postal_code", "comment": "Postal code of the shipping address associated with this charge, if any"}, "shipping_address_country": {"type": "integer", "index": 36, "name": "shipping_address_country", "comment": "Country of the shipping address associated with this charge, if any"}, "card_address_line_1": {"type": "integer", "index": 37, "name": "card_address_line_1", "comment": "First line of the card address associated with this charge, if any"}, "card_address_line_2": {"type": "integer", "index": 38, "name": "card_address_line_2", "comment": "Second line of the card address associated with this charge, if any"}, "card_address_city": {"type": "integer", "index": 39, "name": "card_address_city", "comment": "City of the card address associated with this charge, if any"}, "card_address_state": {"type": "integer", "index": 40, "name": "card_address_state", "comment": "State of the card address associated with this charge, if any"}, "card_address_postal_code": {"type": "integer", "index": 41, "name": "card_address_postal_code", "comment": "Postal code of the card address associated with this charge, if any"}, "card_address_country": {"type": "integer", "index": 42, "name": "card_address_country", "comment": "Country of the card address associated with this charge, if any"}, "charge_id": {"type": "text", "index": 43, "name": "charge_id", "comment": "Unique identifier for the original charge associated with this balance transaction. Available for charges, refunds and disputes."}, "payment_intent_id": {"type": "text", "index": 44, "name": "payment_intent_id", "comment": "The unique ID of the related Payment Intent, if any."}, "charge_created": {"type": "timestamp without time zone", "index": 45, "name": "charge_created", "comment": "Creation time of the original charge associated with this balance transaction. Available for charges, refunds and disputes. For charges that were separately authorized and captured, this is the authorization time. Dates in the requested timezone, or UTC if not provided."}, "invoice_id": {"type": "text", "index": 46, "name": "invoice_id", "comment": "Unique ID for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice."}, "invoice_number": {"type": "bigint", "index": 47, "name": "invoice_number", "comment": "Number for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice."}, "subscription_id": {"type": "text", "index": 48, "name": "subscription_id", "comment": "Unique ID for the subscription associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing subscription."}, "payment_method_type": {"type": "text", "index": 49, "name": "payment_method_type", "comment": "The type of payment method used in the related payment."}, "card_brand": {"type": "text", "index": 50, "name": "card_brand", "comment": "Card brand, if applicable."}, "card_funding": {"type": "text", "index": 51, "name": "card_funding", "comment": "Card funding type, if applicable."}, "card_country": {"type": "text", "index": 52, "name": "card_country", "comment": "Two-letter ISO code representing the country of the card."}, "statement_descriptor": {"type": "integer", "index": 53, "name": "statement_descriptor", "comment": "The dynamic statement descriptor or suffix specified when the related charge was created."}, "dispute_reasons": {"type": "text", "index": 54, "name": "dispute_reasons", "comment": "Reasons given by cardholder for disputes. Read more about [dispute reasons](https://docs.stripe.com/disputes/categories)."}, "connected_account_id": {"type": "integer", "index": 55, "name": "connected_account_id", "comment": "For Stripe Connect activity related to a connected account, the unique ID for the account."}, "connected_account_country": {"type": "text", "index": 56, "name": "connected_account_country", "comment": "For Stripe Connect activity related to a connected account, the two-letter ISO code representing the country of the account."}, "connected_account_direct_charge_id": {"type": "text", "index": 57, "name": "connected_account_direct_charge_id", "comment": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account."}, "source_relation": {"type": "text", "index": 58, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__balance_change_from_activity_itemized_3"}, "model.stripe.stripe__balance_transactions": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__balance_transactions", "database": "postgres", "comment": "Each record represents a change to your account balance, enriched with data about the transaction.", "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": "Unique identifier for the transaction."}, "balance_transaction_created_at": {"type": "timestamp without time zone", "index": 2, "name": "balance_transaction_created_at", "comment": "When the transaction took place"}, "balance_transaction_available_on": {"type": "timestamp without time zone", "index": 3, "name": "balance_transaction_available_on", "comment": "The date the transaction\u2019s net funds will become available in the Stripe balance."}, "balance_transaction_currency": {"type": "text", "index": 4, "name": "balance_transaction_currency", "comment": "Three-letter ISO currency code, in lowercase."}, "balance_transaction_amount": {"type": "integer", "index": 5, "name": "balance_transaction_amount", "comment": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "balance_transaction_fee": {"type": "integer", "index": 6, "name": "balance_transaction_fee", "comment": "Fees (in currency units) paid for this transaction."}, "balance_transaction_net": {"type": "integer", "index": 7, "name": "balance_transaction_net", "comment": "Net amount of the transaction. Gross amount minus fees, refunds, and disputes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "balance_transaction_source_id": {"type": "text", "index": 8, "name": "balance_transaction_source_id", "comment": "The Stripe object to which this transaction is related."}, "balance_transaction_description": {"type": "text", "index": 9, "name": "balance_transaction_description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "balance_transaction_type": {"type": "text", "index": 10, "name": "balance_transaction_type", "comment": "The type of transaction. Possible values are adjustment, advance, advance_funding, application_fee, application_fee_refund, charge, connect_collection_transfer, issuing_authorization_hold, issuing_authorization_release, issuing_dispute, issuing_transaction, payment, payment_failure_refund, payment_refund, payout, payout_cancel, payout_failure, refund, refund_failure, reserve_transaction, reserved_funds, stripe_fee, stripe_fx_fee, tax_fee, topup, topup_reversal, transfer, transfer_cancel, transfer_failure, or transfer_refund."}, "balance_transaction_reporting_category": {"type": "text", "index": 11, "name": "balance_transaction_reporting_category", "comment": "Groupings of transactions types based on how they show in Stripe's reporting"}, "customer_facing_amount": {"type": "bigint", "index": 12, "name": "customer_facing_amount", "comment": "The transaction amount that the customer sees. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "customer_facing_currency": {"type": "text", "index": 13, "name": "customer_facing_currency", "comment": "Three-letter ISO currency code that the customer sees."}, "latest_dispute_amount_won": {"type": "bigint", "index": 14, "name": "latest_dispute_amount_won", "comment": "Latest disputed amount that was won in favor of the merchant. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "latest_dispute_amount_lost": {"type": "bigint", "index": 15, "name": "latest_dispute_amount_lost", "comment": "Latest disputed amount that was lost and returned to the customer. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "latest_dispute_amount_under_review": {"type": "bigint", "index": 16, "name": "latest_dispute_amount_under_review", "comment": "Latest disputed amount that is currently under review by the bank. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "latest_dispute_amount_needs_response": {"type": "bigint", "index": 17, "name": "latest_dispute_amount_needs_response", "comment": "Latest disputed amount that currently needs a response (the dispute has been filed but the merchant has not yet responded with evidence). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "latest_dispute_amount_warning_closed": {"type": "bigint", "index": 18, "name": "latest_dispute_amount_warning_closed", "comment": "Latest disputed amount that is currently of status `warning_under_closed` (early fraud warning being closed due to no formal dispute). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "latest_dispute_amount_warning_under_review": {"type": "bigint", "index": 19, "name": "latest_dispute_amount_warning_under_review", "comment": "Latest disputed amount that is currently of status `warning_under_review` (card issuer suspects possible fraud but hasn't yet escalated the situation to a full dispute). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "latest_dispute_amount_warning_needs_response": {"type": "bigint", "index": 20, "name": "latest_dispute_amount_warning_needs_response", "comment": "Latest disputed amount that is currently of status `warning_needs_response` (early fraud warning has been escalated into formal dispute or card issuer has requested more information). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "effective_at": {"type": "timestamp without time zone", "index": 21, "name": "effective_at", "comment": "calendar day after available_at"}, "automatic_payout_id": {"type": "text", "index": 22, "name": "automatic_payout_id", "comment": "(Applies only to accounts on automatic payouts.) The unique ID for the associated payout."}, "payout_id": {"type": "text", "index": 23, "name": "payout_id", "comment": "ID for the payout associated with this balance transaction"}, "payout_created_at": {"type": "timestamp without time zone", "index": 24, "name": "payout_created_at", "comment": "Time at which the payout record was created."}, "payout_currency": {"type": "text", "index": 25, "name": "payout_currency", "comment": "Three-letter ISO currency code of the payout, in lowercase."}, "payout_is_automatic": {"type": "boolean", "index": 26, "name": "payout_is_automatic", "comment": "True if the payout was created by an automated payout schedule, and false if it was requested manually."}, "payout_arrival_date_at": {"type": "timestamp without time zone", "index": 27, "name": "payout_arrival_date_at", "comment": "Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays."}, "automatic_payout_effective_at": {"type": "timestamp without time zone", "index": 28, "name": "automatic_payout_effective_at", "comment": "The date we expect this automatic payout to arrive in your bank account, in UTC. This is also when the paid-out funds are deducted from your Stripe balance."}, "payout_type": {"type": "text", "index": 29, "name": "payout_type", "comment": "Whether the payout was to a bank_account or card."}, "payout_status": {"type": "text", "index": 30, "name": "payout_status", "comment": "Current status of the payout. Can be paid, pending, in_transit, canceled or failed."}, "payout_description": {"type": "text", "index": 31, "name": "payout_description", "comment": "An arbitrary string attached to the payout. Often useful for displaying to users."}, "destination_bank_account_id": {"type": "character varying(500)", "index": 32, "name": "destination_bank_account_id", "comment": "ID of the bank account the payout was sent to."}, "destination_card_id": {"type": "character varying(500)", "index": 33, "name": "destination_card_id", "comment": "ID of the card the payout was sent to."}, "payout_balance_transaction_is_current": {"type": "boolean", "index": 34, "name": "payout_balance_transaction_is_current", "comment": "Boolean if the current record matches the most recent balance_transaction_id recorded in the corresponding PAYOUT."}, "customer_id": {"type": "text", "index": 35, "name": "customer_id", "comment": "The customer associated with the balance transaction (based on charge or refund details)"}, "receipt_email": {"type": "text", "index": 36, "name": "receipt_email", "comment": "The email the receipt was emailed to for this transaction."}, "customer_email": {"type": "integer", "index": 37, "name": "customer_email", "comment": "The customer\u2019s email address."}, "customer_name": {"type": "text", "index": 38, "name": "customer_name", "comment": "Customer name."}, "customer_description": {"type": "character varying(500)", "index": 39, "name": "customer_description", "comment": "The description field associated with the customer"}, "customer_shipping_address_line_1": {"type": "integer", "index": 40, "name": "customer_shipping_address_line_1", "comment": "Attribute of the customer's shipping address."}, "customer_shipping_address_line_2": {"type": "integer", "index": 41, "name": "customer_shipping_address_line_2", "comment": "Attribute of the customer's shipping address."}, "customer_shipping_address_city": {"type": "integer", "index": 42, "name": "customer_shipping_address_city", "comment": "Attribute of the customer's shipping address."}, "customer_shipping_address_state": {"type": "integer", "index": 43, "name": "customer_shipping_address_state", "comment": "Attribute of the customer's shipping address."}, "customer_shipping_address_postal_code": {"type": "integer", "index": 44, "name": "customer_shipping_address_postal_code", "comment": "Attribute of the customer's shipping address."}, "customer_shipping_address_country": {"type": "integer", "index": 45, "name": "customer_shipping_address_country", "comment": "Attribute of the customer's shipping address."}, "customer_address_line_1": {"type": "integer", "index": 46, "name": "customer_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "customer_address_line_2": {"type": "integer", "index": 47, "name": "customer_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "customer_address_city": {"type": "integer", "index": 48, "name": "customer_address_city", "comment": "City, district, suburb, town, or village."}, "customer_address_state": {"type": "integer", "index": 49, "name": "customer_address_state", "comment": "State, county, province, or region."}, "customer_address_postal_code": {"type": "integer", "index": 50, "name": "customer_address_postal_code", "comment": "ZIP or postal code."}, "customer_address_country": {"type": "integer", "index": 51, "name": "customer_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "charge_shipping_address_line_1": {"type": "integer", "index": 52, "name": "charge_shipping_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name) belonging to the charge."}, "charge_shipping_address_line_2": {"type": "integer", "index": 53, "name": "charge_shipping_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building) belonging to the charge."}, "charge_shipping_address_city": {"type": "integer", "index": 54, "name": "charge_shipping_address_city", "comment": "City, district, suburb, town, or village belonging to the charge."}, "charge_shipping_address_state": {"type": "integer", "index": 55, "name": "charge_shipping_address_state", "comment": "State, county, province, or region belonging to the charge."}, "charge_shipping_address_postal_code": {"type": "integer", "index": 56, "name": "charge_shipping_address_postal_code", "comment": "ZIP or postal code belonging to the charge."}, "charge_shipping_address_country": {"type": "integer", "index": 57, "name": "charge_shipping_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2) belonging to the charge."}, "card_address_line_1": {"type": "integer", "index": 58, "name": "card_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "card_address_line_2": {"type": "integer", "index": 59, "name": "card_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "card_address_city": {"type": "integer", "index": 60, "name": "card_address_city", "comment": "City, district, suburb, town, or village."}, "card_address_state": {"type": "integer", "index": 61, "name": "card_address_state", "comment": "State, county, province, or region."}, "card_address_postal_code": {"type": "integer", "index": 62, "name": "card_address_postal_code", "comment": "ZIP or postal code."}, "card_address_country": {"type": "integer", "index": 63, "name": "card_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "charge_id": {"type": "text", "index": 64, "name": "charge_id", "comment": "The id of the charge associated with the balance transaction"}, "charge_created_at": {"type": "timestamp without time zone", "index": 65, "name": "charge_created_at", "comment": "Timestamp of the charge object associated with the balance transaction"}, "payment_intent_id": {"type": "text", "index": 66, "name": "payment_intent_id", "comment": "The id of the payment intent associated with the balance transaction"}, "invoice_id": {"type": "text", "index": 67, "name": "invoice_id", "comment": "The ID of the invoice this record is a part of."}, "invoice_number": {"type": "bigint", "index": 68, "name": "invoice_number", "comment": "The number of the invoice associated with this record."}, "subscription_id": {"type": "text", "index": 69, "name": "subscription_id", "comment": "The ID of the subscription is associated with this record."}, "payment_method_type": {"type": "text", "index": 70, "name": "payment_method_type", "comment": "The id of the payment method type associated with the balance transaction"}, "payment_method_brand": {"type": "text", "index": 71, "name": "payment_method_brand", "comment": "Card brand used for the payment method. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown."}, "payment_method_funding": {"type": "text", "index": 72, "name": "payment_method_funding", "comment": "Card funding type for the payment method. Can be credit, debit, prepaid, or unknown."}, "card_brand": {"type": "text", "index": 73, "name": "card_brand", "comment": "The brand of the card associated with the balance transaction"}, "card_funding": {"type": "text", "index": 74, "name": "card_funding", "comment": "Card funding type. Can be credit, debit, prepaid, or unknown."}, "card_country": {"type": "text", "index": 75, "name": "card_country", "comment": "The country the card was issued in."}, "charge_statement_descriptor": {"type": "integer", "index": 76, "name": "charge_statement_descriptor", "comment": "Extra information about a source. This will appear on your customer\u2019s statement every time you charge the source."}, "dispute_ids": {"type": "text", "index": 77, "name": "dispute_ids", "comment": "Unique identifiers for the object."}, "dispute_reasons": {"type": "text", "index": 78, "name": "dispute_reasons", "comment": "Reasons given by cardholder for dispute. Possible values are bank_cannot_process, check_returned, credit_not_processed, customer_initiated, debit_not_authorized, duplicate, fraudulent, general, incorrect_account_details, insufficient_funds, product_not_received, product_unacceptable, subscription_canceled, or unrecognized."}, "dispute_count": {"type": "bigint", "index": 79, "name": "dispute_count", "comment": "Count of disputes raised against this transaction. If > 1, join in `dispute` data for additional information on each dispute."}, "refund_id": {"type": "text", "index": 80, "name": "refund_id", "comment": "ID of the refund associated with this record."}, "refund_reason": {"type": "text", "index": 81, "name": "refund_reason", "comment": "Reason for the refund, either user-provided (duplicate, fraudulent, or requested_by_customer) or generated by Stripe internally (expired_uncaptured_charge)."}, "transfer_id": {"type": "text", "index": 82, "name": "transfer_id", "comment": "ID of the transfer associated with this record."}, "connected_account_id": {"type": "integer", "index": 83, "name": "connected_account_id", "comment": "The ID of the account connected to the transaction."}, "connected_account_country": {"type": "text", "index": 84, "name": "connected_account_country", "comment": "The country of the account connected to the transaction."}, "connected_account_direct_charge_id": {"type": "text", "index": 85, "name": "connected_account_direct_charge_id", "comment": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account."}, "source_relation": {"type": "text", "index": 86, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__balance_transactions"}, "model.stripe.stripe__customer_overview": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__customer_overview", "database": "postgres", "comment": "Each record represents a customer, enriched with metrics about their associated transactions.", "owner": "postgres"}, "columns": {"customer_id": {"type": "text", "index": 1, "name": "customer_id", "comment": "Unique identifier for each record from the Stripe customer object."}, "customer_description": {"type": "text", "index": 2, "name": "customer_description", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "customer_created_at": {"type": "timestamp without time zone", "index": 3, "name": "customer_created_at", "comment": "Timestamp of when the customer entry was created."}, "customer_currency": {"type": "integer", "index": 4, "name": "customer_currency", "comment": "Currency used by the customer."}, "account_balance": {"type": "integer", "index": 5, "name": "account_balance", "comment": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice."}, "customer_address_city": {"type": "integer", "index": 6, "name": "customer_address_city", "comment": "City, district, suburb, town, or village."}, "customer_address_country": {"type": "integer", "index": 7, "name": "customer_address_country", "comment": "Two-letter country code (ISO 3166-1 alpha-2)."}, "customer_address_line_1": {"type": "integer", "index": 8, "name": "customer_address_line_1", "comment": "Address line 1 (e.g., street, PO Box, or company name)."}, "customer_address_line_2": {"type": "integer", "index": 9, "name": "customer_address_line_2", "comment": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "customer_address_postal_code": {"type": "integer", "index": 10, "name": "customer_address_postal_code", "comment": "ZIP or postal code."}, "customer_address_state": {"type": "integer", "index": 11, "name": "customer_address_state", "comment": "State, county, province, or region."}, "customer_balance": {"type": "integer", "index": 12, "name": "customer_balance", "comment": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized."}, "bank_account_id": {"type": "text", "index": 13, "name": "bank_account_id", "comment": "ID of the bank account associated with this customer."}, "default_card_id": {"type": "integer", "index": 14, "name": "default_card_id", "comment": "ID of the default card used by the customer."}, "is_delinquent": {"type": "boolean", "index": 15, "name": "is_delinquent", "comment": "When the customer\u2019s latest invoice is billed by charging automatically, delinquent is true if the invoice\u2019s latest charge is failed. When the customer\u2019s latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date."}, "email": {"type": "integer", "index": 16, "name": "email", "comment": "Email address associated with the customer."}, "customer_name": {"type": "text", "index": 17, "name": "customer_name", "comment": "Customer name."}, "phone": {"type": "integer", "index": 18, "name": "phone", "comment": "Customer's phone number."}, "shipping_address_city": {"type": "integer", "index": 19, "name": "shipping_address_city", "comment": "Attribute of the customer's shipping address."}, "shipping_address_country": {"type": "integer", "index": 20, "name": "shipping_address_country", "comment": "Attribute of the customer's shipping address."}, "shipping_address_line_1": {"type": "integer", "index": 21, "name": "shipping_address_line_1", "comment": "Attribute of the customer's shipping address."}, "shipping_address_line_2": {"type": "integer", "index": 22, "name": "shipping_address_line_2", "comment": "Attribute of the customer's shipping address."}, "shipping_address_postal_code": {"type": "integer", "index": 23, "name": "shipping_address_postal_code", "comment": "Attribute of the customer's shipping address."}, "shipping_address_state": {"type": "integer", "index": 24, "name": "shipping_address_state", "comment": "Attribute of the customer's shipping address."}, "shipping_name": {"type": "integer", "index": 25, "name": "shipping_name", "comment": "Attribute of the customer's shipping address."}, "shipping_phone": {"type": "integer", "index": 26, "name": "shipping_phone", "comment": "Attribute of the customer's shipping address."}, "is_deleted": {"type": "boolean", "index": 27, "name": "is_deleted", "comment": "Boolean reflecting whether the customer has been deleted in Stripe."}, "total_sales": {"type": "bigint", "index": 28, "name": "total_sales", "comment": "Sum of all charges made to this customer."}, "total_refunds": {"type": "bigint", "index": 29, "name": "total_refunds", "comment": "Sum of all refunds made to this customer."}, "total_gross_transaction_amount": {"type": "bigint", "index": 30, "name": "total_gross_transaction_amount", "comment": "Gross amount of all transactions made with this customer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_fees": {"type": "bigint", "index": 31, "name": "total_fees", "comment": "Total fees charged on all transactions made with this customer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_net_transaction_amount": {"type": "bigint", "index": 32, "name": "total_net_transaction_amount", "comment": "Net amount of all transactions made with this customer. This is the gross amount excluding fees, refunds, and disputes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_sales_count": {"type": "bigint", "index": 33, "name": "total_sales_count", "comment": "The total number of sales made to this customer."}, "total_refund_count": {"type": "bigint", "index": 34, "name": "total_refund_count", "comment": "The total number of refunds made to this customer."}, "sales_this_month": {"type": "bigint", "index": 35, "name": "sales_this_month", "comment": "Sum of charges made to this customer this month."}, "refunds_this_month": {"type": "bigint", "index": 36, "name": "refunds_this_month", "comment": "Sum of refunds made to this customer this month."}, "gross_transaction_amount_this_month": {"type": "bigint", "index": 37, "name": "gross_transaction_amount_this_month", "comment": "Gross amount of transactions made with this customer this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "fees_this_month": {"type": "bigint", "index": 38, "name": "fees_this_month", "comment": "Total fees charged on transactions made with this customer this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "net_transaction_amount_this_month": {"type": "bigint", "index": 39, "name": "net_transaction_amount_this_month", "comment": "Net amount of transactions made with this customer this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "sales_count_this_month": {"type": "bigint", "index": 40, "name": "sales_count_this_month", "comment": "The number of sales made to this customer this month."}, "refund_count_this_month": {"type": "bigint", "index": 41, "name": "refund_count_this_month", "comment": "The number of refunds made to this customer this month."}, "first_sale_date": {"type": "timestamp without time zone", "index": 42, "name": "first_sale_date", "comment": "Date of the first time this customer was charged."}, "most_recent_sale_date": {"type": "timestamp without time zone", "index": 43, "name": "most_recent_sale_date", "comment": "Date of the most recent time this customer was charged."}, "total_failed_charge_count": {"type": "bigint", "index": 44, "name": "total_failed_charge_count", "comment": "The total number of incomplete charges this customer has had."}, "total_failed_charge_amount": {"type": "numeric", "index": 45, "name": "total_failed_charge_amount", "comment": "The total amount from incomplete charges this customer has had. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "failed_charge_count_this_month": {"type": "bigint", "index": 46, "name": "failed_charge_count_this_month", "comment": "The number of incomplete charges this customer has had this month."}, "failed_charge_amount_this_month": {"type": "numeric", "index": 47, "name": "failed_charge_amount_this_month", "comment": "The amount from incomplete charges this customer has had this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "source_relation": {"type": "text", "index": 48, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__customer_overview"}, "model.stripe.stripe__daily_overview": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__daily_overview", "database": "postgres", "comment": "Each record represents, per account per day, a summary of daily totals and rolling totals by transaction type (balances, payments, refunds, payouts, and other transactions).", "owner": "postgres"}, "columns": {"account_id": {"type": "integer", "index": 1, "name": "account_id", "comment": "The ID of the account tied to the balance."}, "account_daily_id": {"type": "text", "index": 2, "name": "account_daily_id", "comment": "A surrogate key made up of account_id and date_day."}, "date_day": {"type": "date", "index": 3, "name": "date_day", "comment": "Day of record, taken from the date of each balance transaction."}, "date_week": {"type": "date", "index": 4, "name": "date_week", "comment": "Week of record."}, "date_month": {"type": "date", "index": 5, "name": "date_month", "comment": "Month of record."}, "date_year": {"type": "date", "index": 6, "name": "date_year", "comment": "Year of record."}, "date_index": {"type": "bigint", "index": 7, "name": "date_index", "comment": "Index indicating the relative position of the date to all other dates available in this model."}, "source_relation": {"type": "text", "index": 8, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}, "total_daily_sales_amount": {"type": "numeric", "index": 9, "name": "total_daily_sales_amount", "comment": "Total amount for when transaction type is a charge or payment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_refunds_amount": {"type": "numeric", "index": 10, "name": "total_daily_refunds_amount", "comment": "Total amount for when transaction type is payment_refund or refund. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_adjustments_amount": {"type": "numeric", "index": 11, "name": "total_daily_adjustments_amount", "comment": "Total amount for when transaction type is adjustment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_other_transactions_amount": {"type": "numeric", "index": 12, "name": "total_daily_other_transactions_amount", "comment": "Total amount for when transaction type is not of the prior types. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_gross_transaction_amount": {"type": "numeric", "index": 13, "name": "total_daily_gross_transaction_amount", "comment": "Total amount for when transaction type is not payout or transfer \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_net_transactions_amount": {"type": "numeric", "index": 14, "name": "total_daily_net_transactions_amount", "comment": "Total net for when transaction type is not payout or transfer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_payout_fee_amount": {"type": "numeric", "index": 15, "name": "total_daily_payout_fee_amount", "comment": "Total fee for when transaction type is payout or transfer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_gross_payout_amount": {"type": "numeric", "index": 16, "name": "total_daily_gross_payout_amount", "comment": "Total amount for when transaction type is payout or transfer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "daily_net_activity_amount": {"type": "numeric", "index": 17, "name": "daily_net_activity_amount", "comment": "Net amount minus fees from payouts and transfers. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "daily_end_balance_amount": {"type": "numeric", "index": 18, "name": "daily_end_balance_amount", "comment": "daily_net_activity_amount + total_daily_gross_payout_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_daily_sales_count": {"type": "numeric", "index": 19, "name": "total_daily_sales_count", "comment": "Count of total balance transactions where type is payment or charge."}, "total_daily_payouts_count": {"type": "numeric", "index": 20, "name": "total_daily_payouts_count", "comment": "Count of total balance transactions where type is payout."}, "total_daily_adjustments_count": {"type": "numeric", "index": 21, "name": "total_daily_adjustments_count", "comment": "Count of total balance transactions where type is adjustment."}, "total_daily_failed_charge_count": {"type": "numeric", "index": 22, "name": "total_daily_failed_charge_count", "comment": "Count of incomplete charges."}, "total_daily_failed_charge_amount": {"type": "numeric", "index": 23, "name": "total_daily_failed_charge_amount", "comment": "Total amount of incomplete charges. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_sales_amount": {"type": "numeric", "index": 24, "name": "rolling_total_daily_sales_amount", "comment": "Rolling total of total_daily_sales_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_refunds_amount": {"type": "numeric", "index": 25, "name": "rolling_total_daily_refunds_amount", "comment": "Rolling total of total_daily_refunds_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_adjustments_amount": {"type": "numeric", "index": 26, "name": "rolling_total_daily_adjustments_amount", "comment": "Rolling total of total_daily_adjustments_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_other_transactions_amount": {"type": "numeric", "index": 27, "name": "rolling_total_daily_other_transactions_amount", "comment": "Rolling total of total_daily_other_transactions_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_gross_transaction_amount": {"type": "numeric", "index": 28, "name": "rolling_total_daily_gross_transaction_amount", "comment": "Rolling total of total_daily_gross_transaction_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_net_transactions_amount": {"type": "numeric", "index": 29, "name": "rolling_total_daily_net_transactions_amount", "comment": "Rolling total of total_daily_net_transactions_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_payout_fee_amount": {"type": "numeric", "index": 30, "name": "rolling_total_daily_payout_fee_amount", "comment": "Rolling total of total_daily_payout_fee_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_gross_payout_amount": {"type": "numeric", "index": 31, "name": "rolling_total_daily_gross_payout_amount", "comment": "Rolling total of total_daily_gross_payout_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_daily_net_activity_amount": {"type": "numeric", "index": 32, "name": "rolling_daily_net_activity_amount", "comment": "Rolling total of daily_net_activity_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_daily_end_balance_amount": {"type": "numeric", "index": 33, "name": "rolling_daily_end_balance_amount", "comment": "Rolling total of daily_end_balance_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "rolling_total_daily_sales_count": {"type": "numeric", "index": 34, "name": "rolling_total_daily_sales_count", "comment": "Rolling total of total_daily_sales_count"}, "rolling_total_daily_payouts_count": {"type": "numeric", "index": 35, "name": "rolling_total_daily_payouts_count", "comment": "Rolling total of total_daily_payouts_count"}, "rolling_total_daily_adjustments_count": {"type": "numeric", "index": 36, "name": "rolling_total_daily_adjustments_count", "comment": "Rolling total of total_daily_adjustments_count"}, "rolling_total_daily_failed_charge_count": {"type": "numeric", "index": 37, "name": "rolling_total_daily_failed_charge_count", "comment": "Rolling total of total_daily_failed_charge_count"}, "rolling_total_daily_failed_charge_amount": {"type": "numeric", "index": 38, "name": "rolling_total_daily_failed_charge_amount", "comment": "Rolling total of total_daily_failed_charge_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__daily_overview"}, "model.stripe.stripe__ending_balance_reconciliation_itemized_4": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__ending_balance_reconciliation_itemized_4", "database": "postgres", "comment": "Modeled after the [titular report](https://stripe.com/docs/reports/payout-reconciliation#schema-ending-balance-reconciliation-itemized-4) from Stripe, each record represents an automatic payout and additional details such as associated customer, shipping, card, subscription information. This report belongs to the class of Payout Reconciliation reports. The Payout reconciliation report helps you match the payouts you receive in your bank account with the batches of payments and other transactions that they relate to. The payout reconciliation report is only available for users with automatic payouts enabled, and is optimized for users who prefer to reconcile the transactions included in each payout as a settlement batch. If you use manual payouts or prefer to track and reconcile your Stripe balance like a bank account, see the Balance report instead. To help you decide which report is right for you, see the guide for selecting reports. This Ending Balance Reconciliation section provides a similar breakdown of the transactions that hadn\u2019t been settled as of the report\u2019s end date.", "owner": "postgres"}, "columns": {"automatic_payout_id": {"type": "text", "index": 1, "name": "automatic_payout_id", "comment": "ID of the automatically created payout associated with this balance transaction (only set if your account is on an automatic payout schedule)."}, "automatic_payout_effective_at": {"type": "timestamp without time zone", "index": 2, "name": "automatic_payout_effective_at", "comment": "The date we expect this automatic payout to arrive in your bank account, in the requested timezone, or UTC if not provided. This is also when the paid-out funds are deducted from your Stripe balance."}, "balance_transaction_id": {"type": "text", "index": 3, "name": "balance_transaction_id", "comment": "Unique identifier for the balance transaction."}, "created": {"type": "timestamp without time zone", "index": 4, "name": "created", "comment": "Time at which the balance transaction was created. Dates in the requested timezone, or UTC if not provided."}, "available_on": {"type": "timestamp without time zone", "index": 5, "name": "available_on", "comment": "The date the balance transaction\u2019s net funds will become available in the Stripe balance. Dates in the requested timezone, or UTC if not provided."}, "currency": {"type": "text", "index": 6, "name": "currency", "comment": "Three-letter ISO code for the currency in which gross, fee and net are defined."}, "gross": {"type": "integer", "index": 7, "name": "gross", "comment": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "fee": {"type": "integer", "index": 8, "name": "fee", "comment": "Fees paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "net": {"type": "integer", "index": 9, "name": "net", "comment": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "reporting_category": {"type": "text", "index": 10, "name": "reporting_category", "comment": "Reporting Category is a new categorization of balance transactions, meant to improve on the current type field."}, "source_id": {"type": "text", "index": 11, "name": "source_id", "comment": "The Stripe object to which this transaction is related."}, "description": {"type": "text", "index": 12, "name": "description", "comment": "An arbitrary string attached to the balance transaction. Often useful for displaying to users."}, "customer_facing_amount": {"type": "bigint", "index": 13, "name": "customer_facing_amount", "comment": "For transactions associated with charges, refunds, or disputes, the amount of the original charge, the refund, or the latest dispute. If the customer was charged in a different currency than your account\u2019s default, this field will reflect the amount as seen by the customer."}, "customer_facing_currency": {"type": "text", "index": 14, "name": "customer_facing_currency", "comment": "For transactions associated with charges, refunds, or disputes, the three-letter ISO currency code for customer_facing_amount."}, "customer_id": {"type": "text", "index": 15, "name": "customer_id", "comment": "The unique ID of the related customer, if any."}, "customer_email": {"type": "integer", "index": 16, "name": "customer_email", "comment": "Email address of the customer, if any, associated with this balance transaction."}, "customer_name": {"type": "text", "index": 17, "name": "customer_name", "comment": "Name of the customer, if any, associated with this balance transaction."}, "customer_description": {"type": "character varying(500)", "index": 18, "name": "customer_description", "comment": "Description provided when creating the customer, often used to store the customer name."}, "customer_shipping_address_line_1": {"type": "integer", "index": 19, "name": "customer_shipping_address_line_1", "comment": "First line of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_line_2": {"type": "integer", "index": 20, "name": "customer_shipping_address_line_2", "comment": "Second line of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_city": {"type": "integer", "index": 21, "name": "customer_shipping_address_city", "comment": "City of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_state": {"type": "integer", "index": 22, "name": "customer_shipping_address_state", "comment": "State of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_postal_code": {"type": "integer", "index": 23, "name": "customer_shipping_address_postal_code", "comment": "Postal code of the customer shipping address associated with this charge, if any"}, "customer_shipping_address_country": {"type": "integer", "index": 24, "name": "customer_shipping_address_country", "comment": "Country of the customer shipping address associated with this charge, if any"}, "customer_address_line_1": {"type": "integer", "index": 25, "name": "customer_address_line_1", "comment": "First line of the customer address associated with this charge, if any"}, "customer_address_line_2": {"type": "integer", "index": 26, "name": "customer_address_line_2", "comment": "Second line of the customer address associated with this charge, if any"}, "customer_address_city": {"type": "integer", "index": 27, "name": "customer_address_city", "comment": "City of the customer address associated with this charge, if any"}, "customer_address_state": {"type": "integer", "index": 28, "name": "customer_address_state", "comment": "State of the customer address associated with this charge, if any"}, "customer_address_postal_code": {"type": "integer", "index": 29, "name": "customer_address_postal_code", "comment": "Postal code of the customer address associated with this charge, if any"}, "customer_address_country": {"type": "integer", "index": 30, "name": "customer_address_country", "comment": "Country of the customer address associated with this charge, if any"}, "shipping_address_line_1": {"type": "integer", "index": 31, "name": "shipping_address_line_1", "comment": "First line of the shipping address associated with this charge, if any"}, "shipping_address_line_2": {"type": "integer", "index": 32, "name": "shipping_address_line_2", "comment": "Second line of the shipping address associated with this charge, if any"}, "shipping_address_city": {"type": "integer", "index": 33, "name": "shipping_address_city", "comment": "City of the shipping address associated with this charge, if any"}, "shipping_address_state": {"type": "integer", "index": 34, "name": "shipping_address_state", "comment": "State of the shipping address associated with this charge, if any"}, "shipping_address_postal_code": {"type": "integer", "index": 35, "name": "shipping_address_postal_code", "comment": "Postal code of the shipping address associated with this charge, if any"}, "shipping_address_country": {"type": "integer", "index": 36, "name": "shipping_address_country", "comment": "Country of the shipping address associated with this charge, if any"}, "card_address_line_1": {"type": "integer", "index": 37, "name": "card_address_line_1", "comment": "First line of the card address associated with this charge, if any"}, "card_address_line_2": {"type": "integer", "index": 38, "name": "card_address_line_2", "comment": "Second line of the card address associated with this charge, if any"}, "card_address_city": {"type": "integer", "index": 39, "name": "card_address_city", "comment": "City of the card address associated with this charge, if any"}, "card_address_state": {"type": "integer", "index": 40, "name": "card_address_state", "comment": "State of the card address associated with this charge, if any"}, "card_address_postal_code": {"type": "integer", "index": 41, "name": "card_address_postal_code", "comment": "Postal code of the card address associated with this charge, if any"}, "card_address_country": {"type": "integer", "index": 42, "name": "card_address_country", "comment": "Country of the card address associated with this charge, if any"}, "charge_id": {"type": "text", "index": 43, "name": "charge_id", "comment": "Unique identifier for the original charge associated with this balance transaction. Available for charges, refunds and disputes."}, "payment_intent_id": {"type": "text", "index": 44, "name": "payment_intent_id", "comment": "The unique ID of the related Payment Intent, if any."}, "charge_created": {"type": "timestamp without time zone", "index": 45, "name": "charge_created", "comment": "Creation time of the original charge associated with this balance transaction. Available for charges, refunds and disputes. For charges that were separately authorized and captured, this is the authorization time. Dates in the requested timezone, or UTC if not provided."}, "invoice_id": {"type": "text", "index": 46, "name": "invoice_id", "comment": "Unique ID for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice."}, "invoice_number": {"type": "bigint", "index": 47, "name": "invoice_number", "comment": "Unique Number for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice."}, "subscription_id": {"type": "text", "index": 48, "name": "subscription_id", "comment": "Unique ID for the subscription associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing subscription."}, "payment_method_type": {"type": "text", "index": 49, "name": "payment_method_type", "comment": "The type of payment method used in the related payment."}, "card_brand": {"type": "text", "index": 50, "name": "card_brand", "comment": "Card brand, if applicable."}, "card_funding": {"type": "text", "index": 51, "name": "card_funding", "comment": "Card funding type, if applicable."}, "card_country": {"type": "text", "index": 52, "name": "card_country", "comment": "Two-letter ISO code representing the country of the card."}, "statement_descriptor": {"type": "integer", "index": 53, "name": "statement_descriptor", "comment": "The dynamic statement descriptor or suffix specified when the related charge was created."}, "dispute_reasons": {"type": "text", "index": 54, "name": "dispute_reasons", "comment": "Reasons given by cardholder for disputes. Read more about [dispute reasons](https://docs.stripe.com/disputes/categories)."}, "connected_account_id": {"type": "integer", "index": 55, "name": "connected_account_id", "comment": "For Stripe Connect activity related to a connected account, the unique ID for the account."}, "connected_account_country": {"type": "text", "index": 56, "name": "connected_account_country", "comment": "For Stripe Connect activity related to a connected account, the two-letter ISO code representing the country of the account."}, "connected_account_direct_charge_id": {"type": "text", "index": 57, "name": "connected_account_direct_charge_id", "comment": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account."}, "source_relation": {"type": "text", "index": 58, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__ending_balance_reconciliation_itemized_4"}, "model.stripe.stripe__invoice_details": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__invoice_details", "database": "postgres", "comment": "Each record represents an invoice, enriched with details about the associated charge, customer, and subscription data.", "owner": "postgres"}, "columns": {"invoice_id": {"type": "text", "index": 1, "name": "invoice_id", "comment": "The unique Identifier of the invoice object. Note invoices can have many line items, so this value can appear multiple times."}, "invoice_number": {"type": "bigint", "index": 2, "name": "invoice_number", "comment": "A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer\u2019s unique invoice_prefix if it is specified."}, "invoice_created_at": {"type": "timestamp without time zone", "index": 3, "name": "invoice_created_at", "comment": "Timestamp of when the invoice was created."}, "period_start": {"type": "timestamp without time zone", "index": 4, "name": "period_start", "comment": "Timestamp of the start of the period."}, "period_end": {"type": "timestamp without time zone", "index": 5, "name": "period_end", "comment": "Timestamp of the end of the period."}, "status": {"type": "text", "index": 6, "name": "status", "comment": "Current status of the invoice."}, "due_date": {"type": "timestamp without time zone", "index": 7, "name": "due_date", "comment": "Date when payment for the invoice is due."}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": "The currency that the invoice is in. Three-letter ISO currency code, in lowercase."}, "amount_due": {"type": "bigint", "index": 9, "name": "amount_due", "comment": "Final amount due at this time for this invoice. If the invoice\u2019s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "amount_paid": {"type": "bigint", "index": 10, "name": "amount_paid", "comment": "The amount, if any, that the customer has paid on the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "subtotal": {"type": "bigint", "index": 11, "name": "subtotal", "comment": "The amount of the invoice before discounts and taxes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "tax": {"type": "bigint", "index": 12, "name": "tax", "comment": "The amount of tax being charged in the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total": {"type": "bigint", "index": 13, "name": "total", "comment": "The Total after discounts and taxes."}, "amount_remaining": {"type": "bigint", "index": 14, "name": "amount_remaining", "comment": "The amount of the invoice remaining to be paid. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "attempt_count": {"type": "bigint", "index": 15, "name": "attempt_count", "comment": "Number of payment attempts made for this invoice, from the perspective of the payment retry schedule."}, "invoice_memo": {"type": "text", "index": 16, "name": "invoice_memo", "comment": "An arbitrary string attached to the object. Often useful for displaying to users."}, "number_of_line_items": {"type": "bigint", "index": 17, "name": "number_of_line_items", "comment": "Number of line item records for this invoice."}, "total_quantity": {"type": "bigint", "index": 18, "name": "total_quantity", "comment": "The total quantity of items for this invoice."}, "balance_transaction_id": {"type": "character varying(500)", "index": 19, "name": "balance_transaction_id", "comment": "The ID of the balance transaction object representing payment"}, "charge_amount": {"type": "bigint", "index": 20, "name": "charge_amount", "comment": "The amount charged to the customer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "charge_status": {"type": "text", "index": 21, "name": "charge_status", "comment": "The status of the charge for the invoice."}, "connected_account_id": {"type": "integer", "index": 22, "name": "connected_account_id", "comment": "The ID of the account connected to the charge."}, "charge_created_at": {"type": "timestamp without time zone", "index": 23, "name": "charge_created_at", "comment": "When the charge for the invoice was created."}, "charge_is_refunded": {"type": "boolean", "index": 24, "name": "charge_is_refunded", "comment": "Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false."}, "customer_id": {"type": "text", "index": 25, "name": "customer_id", "comment": "The associated customer reference."}, "customer_description": {"type": "character varying(500)", "index": 26, "name": "customer_description", "comment": "Description of the customer."}, "customer_account_balance": {"type": "integer", "index": 27, "name": "customer_account_balance", "comment": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice."}, "customer_currency": {"type": "integer", "index": 28, "name": "customer_currency", "comment": "Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes."}, "customer_is_delinquent": {"type": "boolean", "index": 29, "name": "customer_is_delinquent", "comment": "When the customer\u2019s latest invoice is billed by charging automatically, delinquent is true if the invoice\u2019s latest charge is failed. When the customer\u2019s latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date."}, "customer_email": {"type": "integer", "index": 30, "name": "customer_email", "comment": "Email of the customer."}, "subscription_id": {"type": "text", "index": 31, "name": "subscription_id", "comment": "ID of the subscription this invoice relates to."}, "subscription_billing": {"type": "text", "index": 32, "name": "subscription_billing", "comment": "How the subscription is billed"}, "subscription_start_date": {"type": "timestamp without time zone", "index": 33, "name": "subscription_start_date", "comment": "The start date of the subscription"}, "subscription_ended_at": {"type": "timestamp without time zone", "index": 34, "name": "subscription_ended_at", "comment": "The end date of the subscription"}, "source_relation": {"type": "text", "index": 35, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__invoice_details"}, "model.stripe.stripe__invoice_line_item_details": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__invoice_line_item_details", "database": "postgres", "comment": "Each record represents an invoice line item, enriched with details about the associated invoice, charge, customer, subscription, and pricing data.", "owner": "postgres"}, "columns": {"invoice_line_item_id": {"type": "text", "index": 1, "name": "invoice_line_item_id", "comment": "The unique Identifier of the invoice line object. Note that the same line item can be shown across different invoices, so this value can appear multiple times."}, "invoice_id": {"type": "character varying(500)", "index": 2, "name": "invoice_id", "comment": "The unique Identifier of the invoice object. Note invoices can have many line items, so this value can appear multiple times."}, "invoice_item_id": {"type": "text", "index": 3, "name": "invoice_item_id", "comment": "The ID of the invoice item this item is a part of"}, "invoice_line_item_amount": {"type": "integer", "index": 4, "name": "invoice_line_item_amount", "comment": "Amount for this line item. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": "Currency of this line item."}, "invoice_line_item_memo": {"type": "text", "index": 6, "name": "invoice_line_item_memo", "comment": "Description for this line item."}, "is_discountable": {"type": "boolean", "index": 7, "name": "is_discountable", "comment": "Whether this line item is discountable."}, "plan_id": {"type": "text", "index": 8, "name": "plan_id", "comment": "The ID that documents the plan record detailing the base price, currency, and billing information for each product. Valid if you are using the Plan API."}, "price_id": {"type": "text", "index": 9, "name": "price_id", "comment": "The ID that documents the price record detailing the base price, currency, and billing information for each product. Valid if you are using the new Prices API."}, "proration": {"type": "boolean", "index": 10, "name": "proration", "comment": "Whether this is a proration."}, "quantity": {"type": "integer", "index": 11, "name": "quantity", "comment": "The quantity of the subscription, if the line item is a subscription or a proration."}, "subscription_id": {"type": "text", "index": 12, "name": "subscription_id", "comment": "The ID of the subscription that the invoice item pertains to, if any."}, "subscription_item_id": {"type": "text", "index": 13, "name": "subscription_item_id", "comment": "The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription."}, "type": {"type": "integer", "index": 14, "name": "type", "comment": "A string identifying the type of the source of this line item, either an invoice item or a subscription."}, "unique_invoice_line_item_id": {"type": "text", "index": 15, "name": "unique_invoice_line_item_id", "comment": "A unique id generated for old invoice line item ID's from a past version of the API"}, "period_start": {"type": "timestamp without time zone", "index": 16, "name": "period_start", "comment": "Start of the usage period during which invoice items were added to this invoice."}, "period_end": {"type": "timestamp without time zone", "index": 17, "name": "period_end", "comment": "End of the usage period during which invoice items were added to this invoice."}, "invoice_created_at": {"type": "timestamp without time zone", "index": 18, "name": "invoice_created_at", "comment": "Timestamp of when the invoice was created."}, "invoice_status": {"type": "text", "index": 19, "name": "invoice_status", "comment": "Current status of the invoice."}, "invoice_due_date": {"type": "timestamp without time zone", "index": 20, "name": "invoice_due_date", "comment": "Date when payment for the invoice is due."}, "invoice_amount_due": {"type": "bigint", "index": 21, "name": "invoice_amount_due", "comment": "Final amount due at this time for this invoice. If the invoice\u2019s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "invoice_amount_paid": {"type": "bigint", "index": 22, "name": "invoice_amount_paid", "comment": "The amount, if any, that the customer has paid on the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "invoice_subtotal": {"type": "bigint", "index": 23, "name": "invoice_subtotal", "comment": "The amount of the invoice before discounts and taxes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "invoice_tax": {"type": "bigint", "index": 24, "name": "invoice_tax", "comment": "The amount of tax being charged in the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "invoice_total": {"type": "bigint", "index": 25, "name": "invoice_total", "comment": "The total of the invoice after discounts and taxes."}, "connected_account_id": {"type": "integer", "index": 26, "name": "connected_account_id", "comment": "The ID of the account connected to the charge."}, "customer_id": {"type": "text", "index": 27, "name": "customer_id", "comment": "The associated customer reference."}, "subscription_billing": {"type": "text", "index": 28, "name": "subscription_billing", "comment": "How the subscription is billed"}, "subscription_start_date": {"type": "timestamp without time zone", "index": 29, "name": "subscription_start_date", "comment": "The start date of the subscription"}, "subscription_ended_at": {"type": "timestamp without time zone", "index": 30, "name": "subscription_ended_at", "comment": "The end date of the subscription"}, "price_plan_is_active": {"type": "boolean", "index": 31, "name": "price_plan_is_active", "comment": "Boolean indicating if the plan or price is active (true) or in-active (false)."}, "price_plan_amount": {"type": "integer", "index": 32, "name": "price_plan_amount", "comment": "The unit amount in currency units to be charged, represented as a whole integer if possible. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "price_plan_interval": {"type": "text", "index": 33, "name": "price_plan_interval", "comment": "The frequency at which a subscription is billed. One of day, week, month or year."}, "price_plan_interval_count": {"type": "integer", "index": 34, "name": "price_plan_interval_count", "comment": "The number of intervals between subscription billings. For example, interval_count=3 bills every 3 months."}, "price_plan_nickname": {"type": "text", "index": 35, "name": "price_plan_nickname", "comment": "A brief description of the plan or price, hidden from customers."}, "price_plan_product_id": {"type": "text", "index": 36, "name": "price_plan_product_id", "comment": "Reference to the product this price or plan is about."}, "source_relation": {"type": "text", "index": 37, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__invoice_line_item_details"}, "model.stripe.stripe__line_item_enhanced": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__line_item_enhanced", "database": "postgres", "comment": "This model constructs a comprehensive, denormalized analytical table that enables reporting on key revenue, subscription, customer, and product metrics from your billing platform. It\u2019s designed to align with the schema of the `*__line_item_enhanced` model found in Stripe, Recharge, Recurly, Shopify, and Zuora, offering standardized reporting across various billing platforms. To see the kinds of insights this model can generate, explore example visualizations in the [Fivetran Billing Model Streamlit App](https://fivetran-billing-model.streamlit.app/). Visit the app for more details.", "owner": "postgres"}, "columns": {"header_id": {"type": "character varying(500)", "index": 1, "name": "header_id", "comment": "Id of corresponding invoice."}, "line_item_id": {"type": "text", "index": 2, "name": "line_item_id", "comment": "Invoice line item id."}, "line_item_index": {"type": "bigint", "index": 3, "name": "line_item_index", "comment": "Unique index of each line item id for each invoice."}, "record_type": {"type": "text", "index": 4, "name": "record_type", "comment": "header or line_item"}, "created_at": {"type": "timestamp without time zone", "index": 5, "name": "created_at", "comment": "When the invoice was created"}, "currency": {"type": "text", "index": 6, "name": "currency", "comment": "Currency used in the invoice."}, "header_status": {"type": "text", "index": 7, "name": "header_status", "comment": "Status of the invoice."}, "product_id": {"type": "text", "index": 8, "name": "product_id", "comment": "Product ID"}, "product_name": {"type": "text", "index": 9, "name": "product_name", "comment": "Product name"}, "transaction_type": {"type": "text", "index": 10, "name": "transaction_type", "comment": "Balance transaction type. If refunds and charges are tied to one invoice, it's designated as 'charge + refund'. If a charge isn't tied to a refund, it's designated as 'payment intent + refund'. Otherwise, it's just 'charge'."}, "billing_type": {"type": "text", "index": 11, "name": "billing_type", "comment": "Type of invoice line item."}, "product_type": {"type": "text", "index": 12, "name": "product_type", "comment": "Product type"}, "quantity": {"type": "double precision", "index": 13, "name": "quantity", "comment": "The number of units of this line item."}, "unit_amount": {"type": "double precision", "index": 14, "name": "unit_amount", "comment": "Amount per unit."}, "discount_amount": {"type": "numeric(28,6)", "index": 15, "name": "discount_amount", "comment": "The discount amount associated with this invoice."}, "tax_amount": {"type": "numeric(28,6)", "index": 16, "name": "tax_amount", "comment": "The tax amount associated with this invoice."}, "total_amount": {"type": "double precision", "index": 17, "name": "total_amount", "comment": "Invoice total"}, "payment_id": {"type": "text", "index": 18, "name": "payment_id", "comment": "Payment intent ID"}, "payment_method_id": {"type": "text", "index": 19, "name": "payment_method_id", "comment": "Payment method ID"}, "payment_method": {"type": "text", "index": 20, "name": "payment_method", "comment": "Payment method type"}, "payment_at": {"type": "timestamp without time zone", "index": 21, "name": "payment_at", "comment": "Charge created date"}, "fee_amount": {"type": "numeric", "index": 22, "name": "fee_amount", "comment": "Balance transaction fee from charges and refunds."}, "refund_amount": {"type": "numeric(28,6)", "index": 23, "name": "refund_amount", "comment": "Refund amount associated with this invoice."}, "subscription_id": {"type": "text", "index": 24, "name": "subscription_id", "comment": "Subscription associated with this invoice."}, "subscription_plan": {"type": "text", "index": 25, "name": "subscription_plan", "comment": "The product associated with the subscription item. In Stripe a subscription plan would best be attributed to the product which the price/plan is of the subscription is linked."}, "subscription_period_started_at": {"type": "timestamp without time zone", "index": 26, "name": "subscription_period_started_at", "comment": "Subscription's current period start"}, "subscription_period_ended_at": {"type": "timestamp without time zone", "index": 27, "name": "subscription_period_ended_at", "comment": "Subscription's current period end"}, "subscription_status": {"type": "text", "index": 28, "name": "subscription_status", "comment": "Subscription status"}, "customer_id": {"type": "text", "index": 29, "name": "customer_id", "comment": "Customer associated with this invoice."}, "customer_created_at": {"type": "timestamp without time zone", "index": 30, "name": "customer_created_at", "comment": "Date which the customer was created in Stripe."}, "customer_level": {"type": "text", "index": 31, "name": "customer_level", "comment": "Whether 'account' or 'customer'. For Stripe, the level is 'customer'."}, "customer_name": {"type": "text", "index": 32, "name": "customer_name", "comment": "Customer name"}, "customer_company": {"type": "text", "index": 33, "name": "customer_company", "comment": "Associated account's company if applicable."}, "customer_email": {"type": "text", "index": 34, "name": "customer_email", "comment": "Customer email"}, "customer_city": {"type": "text", "index": 35, "name": "customer_city", "comment": "Customer city"}, "customer_country": {"type": "text", "index": 36, "name": "customer_country", "comment": "Customer country"}, "source_relation": {"type": "text", "index": 37, "name": "source_relation", "comment": "The source of the record if the unioning functionality is being used. If not this field will be empty."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__line_item_enhanced"}, "model.stripe.stripe__payout_itemized_3": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__payout_itemized_3", "database": "postgres", "comment": "Modeled after the [titular report](https://stripe.com/docs/reports/balance#schema-payouts-itemized-3) from Stripe, each record represents a payout and its additional details such as expected arrival date and current status. This report belongs to the class of Balance reports. The Balance report is similar to a bank statement, helping you to reconcile your Stripe balance at the end of the month. The Balance report is most useful if you treat Stripe like a bank account for accounting purposes, reconciling the balance at the end of each month. If you have automatic payouts enabled and prefer to reconcile the transactions settled in each payout, see the Payout reconciliation report instead. The Payout Itemized report information on each payout made to your bank account.", "owner": "postgres"}, "columns": {"payout_id": {"type": "text", "index": 1, "name": "payout_id", "comment": "The Stripe object to which this transaction is related."}, "effective_at": {"type": "timestamp without time zone", "index": 2, "name": "effective_at", "comment": "For automatic payouts, this is the date we expect funds to arrive in your bank account. For manual payouts, this is the date the payout was initiated. In both cases, it's the date the paid-out funds are deducted from your Stripe balance. All dates in the requested timezone, or UTC if not provided."}, "currency": {"type": "text", "index": 3, "name": "currency", "comment": "Three-letter ISO code for the currency in which gross, fee and net are defined."}, "balance_transaction_id": {"type": "text", "index": 4, "name": "balance_transaction_id", "comment": "Unique identifier for the balance transaction. Specifically for Payout, the relation is the ID of the balance transaction that describes the impact of this payout on your account balance."}, "gross": {"type": "integer", "index": 5, "name": "gross", "comment": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "fee": {"type": "integer", "index": 6, "name": "fee", "comment": "Fees paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "net": {"type": "integer", "index": 7, "name": "net", "comment": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "reporting_category": {"type": "text", "index": 8, "name": "reporting_category", "comment": "Reporting Category is a new categorization of balance transactions, meant to improve on the current type field."}, "description": {"type": "text", "index": 9, "name": "description", "comment": "An arbitrary string attached to the balance transaction. Often useful for displaying to users."}, "payout_expected_arrival_date": {"type": "timestamp without time zone", "index": 10, "name": "payout_expected_arrival_date", "comment": "Date the payout is scheduled to arrive in the bank. This factors in delays like weekends or bank holidays."}, "payout_status": {"type": "text", "index": 11, "name": "payout_status", "comment": "Current status of the payout (paid, pending, in_transit, canceled or failed). A payout will be pending until it is submitted to the bank, at which point it becomes in_transit. It will then change to paid if the transaction goes through. If it does not go through successfully, its status will change to failed or canceled."}, "payout_reversed_at": {"type": "timestamp without time zone", "index": 12, "name": "payout_reversed_at", "comment": "Typically this field will be empty. However, if the payout's status is canceled or failed, this field will reflect the time at which it entered that status. Times in the requested timezone, or UTC if not provided."}, "payout_type": {"type": "text", "index": 13, "name": "payout_type", "comment": "Can be bank_account or card."}, "payout_description": {"type": "text", "index": 14, "name": "payout_description", "comment": "An arbitrary string attached to the payout. Often useful for displaying to users."}, "payout_destination_id": {"type": "character varying(500)", "index": 15, "name": "payout_destination_id", "comment": "ID of the bank account or card the payout was sent to."}, "source_relation": {"type": "text", "index": 16, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__payout_itemized_3"}, "model.stripe.stripe__subscription_details": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__subscription_details", "database": "postgres", "comment": "Each record represents a subscription, enriched with customer details and payment aggregations.", "owner": "postgres"}, "columns": {"subscription_id": {"type": "text", "index": 1, "name": "subscription_id", "comment": "Unique identifier for the subscription object."}, "customer_id": {"type": "text", "index": 2, "name": "customer_id", "comment": "ID of the customer who owns the subscription."}, "customer_description": {"type": "character varying(500)", "index": 3, "name": "customer_description", "comment": "Description of the customer who owns the subscription."}, "customer_email": {"type": "integer", "index": 4, "name": "customer_email", "comment": "Email of the customer who owns the subscription."}, "status": {"type": "text", "index": 5, "name": "status", "comment": "Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid."}, "start_date_at": {"type": "timestamp without time zone", "index": 6, "name": "start_date_at", "comment": "Date when the subscription was first created. The date might differ from the created date due to backdating."}, "ended_at": {"type": "timestamp without time zone", "index": 7, "name": "ended_at", "comment": "If the subscription has ended, the date the subscription ended."}, "billing": {"type": "text", "index": 8, "name": "billing", "comment": "How the description is billed."}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 9, "name": "billing_cycle_anchor", "comment": "Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices."}, "canceled_at": {"type": "timestamp without time zone", "index": 10, "name": "canceled_at", "comment": "If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with cancel_at_period_end, canceled_at will still reflect the date of the initial cancellation request, not the end of the subscription period when the subscription is automatically moved to a canceled state."}, "created_at": {"type": "timestamp without time zone", "index": 11, "name": "created_at", "comment": "Time at which the subscription object was created."}, "current_period_start": {"type": "timestamp without time zone", "index": 12, "name": "current_period_start", "comment": "Start of the current period that the subscription has been invoiced for."}, "current_period_end": {"type": "timestamp without time zone", "index": 13, "name": "current_period_end", "comment": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created."}, "days_until_due": {"type": "integer", "index": 14, "name": "days_until_due", "comment": "Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically."}, "is_cancel_at_period_end": {"type": "boolean", "index": 15, "name": "is_cancel_at_period_end", "comment": "If the subscription has been canceled with the at_period_end flag set to true, cancel_at_period_end on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period."}, "cancel_at": {"type": "timestamp without time zone", "index": 16, "name": "cancel_at", "comment": "A date in the future at which the subscription will automatically get canceled"}, "number_invoices_generated": {"type": "bigint", "index": 17, "name": "number_invoices_generated", "comment": "Number of invoices that have been generated for this subscription."}, "total_amount_billed": {"type": "numeric", "index": 18, "name": "total_amount_billed", "comment": "The total amount that has been billed to the customer for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_amount_paid": {"type": "numeric", "index": 19, "name": "total_amount_paid", "comment": "The total amount paid by the customer for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "total_amount_remaining": {"type": "numeric", "index": 20, "name": "total_amount_remaining", "comment": "Any outstanding balance for invoices related to this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "most_recent_invoice_created_at": {"type": "timestamp without time zone", "index": 21, "name": "most_recent_invoice_created_at", "comment": "The timestamp of the most recent invoice for this subscription created."}, "average_invoice_amount": {"type": "numeric", "index": 22, "name": "average_invoice_amount", "comment": "The average amount of invoices generated for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "average_line_item_amount": {"type": "numeric", "index": 23, "name": "average_line_item_amount", "comment": "The average sum of the line items for invoices generated for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "avg_num_line_items": {"type": "numeric", "index": 24, "name": "avg_num_line_items", "comment": "The average number of line items for invoices generated for this subscription"}, "source_relation": {"type": "text", "index": 25, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__subscription_details"}, "model.stripe.stripe__subscription_item_mrr_report": {"metadata": {"type": "BASE TABLE", "schema": "public_stripe_dev", "name": "stripe__subscription_item_mrr_report", "database": "postgres", "comment": "Each record represents a subscription item for a given month with monthly recurring revenue (MRR) metrics and movement classification. Tracks MRR changes over time, classifying each month as new, expansion, contraction, churned, reactivation, or unchanged. Reconstructs historical MRR amount changes from invoice line items and anchors each item's timeline to its creation date. Requires `stripe__using_invoices`: true to build. See the [DECISIONLOG](https://github.com/fivetran/dbt_stripe/blob/main/DECISIONLOG.md) for full details.\n", "owner": "postgres"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}, "subscription_item_id": {"type": "text", "index": 2, "name": "subscription_item_id", "comment": "Unique identifier for the subscription item."}, "subscription_id": {"type": "text", "index": 3, "name": "subscription_id", "comment": "Unique identifier for the subscription."}, "customer_id": {"type": "text", "index": 4, "name": "customer_id", "comment": "ID of the customer who owns the subscription."}, "product_id": {"type": "text", "index": 5, "name": "product_id", "comment": "ID of the product associated with this subscription item."}, "price_plan_id": {"type": "text", "index": 6, "name": "price_plan_id", "comment": "ID of the price plan associated with this subscription item."}, "subscription_status": {"type": "text", "index": 7, "name": "subscription_status", "comment": "Current status of the subscription. Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid."}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": "Three-letter ISO currency code, in lowercase."}, "subscription_month": {"type": "date", "index": 9, "name": "subscription_month", "comment": "Month of the subscription period."}, "subscription_year": {"type": "date", "index": 10, "name": "subscription_year", "comment": "Year of the subscription period."}, "month_contract_mrr": {"type": "numeric", "index": 11, "name": "month_contract_mrr", "comment": "Contracted monthly recurring revenue for this subscription item for this subscription month before discounts are applied. Historical months use current price with historical quantity. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "month_discount_applied": {"type": "numeric", "index": 12, "name": "month_discount_applied", "comment": "Discount amount applied to this subscription item for this month, allocated proportionally based on the item's share of the subscription's total contracted MRR. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "month_billed_mrr": {"type": "numeric", "index": 13, "name": "month_billed_mrr", "comment": "Net monthly recurring revenue for this subscription item for this subscription month after discounts are applied (month_contract_mrr minus month_discount_applied). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "prior_month_contract_mrr": {"type": "numeric", "index": 14, "name": "prior_month_contract_mrr", "comment": "Contracted monthly recurring revenue for this subscription item for the previous subscription month before discounts are applied. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\""}, "item_month_number": {"type": "bigint", "index": 15, "name": "item_month_number", "comment": "Sequential month number for this subscription item, starting from 1 for the first month."}, "contract_mrr_type": {"type": "text", "index": 16, "name": "contract_mrr_type", "comment": "Classification of the contracted MRR change for this month based on month_contract_mrr. Possible values are new (first month with MRR), expansion (MRR increased), contraction (MRR decreased but still positive), churned (MRR went to zero), reactivation (MRR returned after being zero for at least 3 months), unchanged (MRR stayed the same), or unknown."}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.stripe.stripe__subscription_item_mrr_report"}}, "sources": {"source.stripe.stripe.account": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "account_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "business_profile_mcc": {"type": "integer", "index": 3, "name": "business_profile_mcc", "comment": null}, "business_profile_name": {"type": "text", "index": 4, "name": "business_profile_name", "comment": null}, "business_profile_product_description": {"type": "integer", "index": 5, "name": "business_profile_product_description", "comment": null}, "business_profile_support_address_city": {"type": "text", "index": 6, "name": "business_profile_support_address_city", "comment": null}, "business_profile_support_address_country": {"type": "text", "index": 7, "name": "business_profile_support_address_country", "comment": null}, "business_profile_support_address_line_1": {"type": "text", "index": 8, "name": "business_profile_support_address_line_1", "comment": null}, "business_profile_support_address_line_2": {"type": "text", "index": 9, "name": "business_profile_support_address_line_2", "comment": null}, "business_profile_support_address_postal_code": {"type": "integer", "index": 10, "name": "business_profile_support_address_postal_code", "comment": null}, "business_profile_support_address_state": {"type": "text", "index": 11, "name": "business_profile_support_address_state", "comment": null}, "business_profile_support_email": {"type": "text", "index": 12, "name": "business_profile_support_email", "comment": null}, "business_profile_support_phone": {"type": "integer", "index": 13, "name": "business_profile_support_phone", "comment": null}, "business_profile_support_url": {"type": "text", "index": 14, "name": "business_profile_support_url", "comment": null}, "business_profile_url": {"type": "text", "index": 15, "name": "business_profile_url", "comment": null}, "business_type": {"type": "integer", "index": 16, "name": "business_type", "comment": null}, "capabilities_afterpay_clearpay_payments": {"type": "text", "index": 17, "name": "capabilities_afterpay_clearpay_payments", "comment": null}, "capabilities_au_becs_debit_payments": {"type": "integer", "index": 18, "name": "capabilities_au_becs_debit_payments", "comment": null}, "capabilities_bacs_debit_payments": {"type": "integer", "index": 19, "name": "capabilities_bacs_debit_payments", "comment": null}, "capabilities_bancontact_payments": {"type": "text", "index": 20, "name": "capabilities_bancontact_payments", "comment": null}, "capabilities_card_issuing": {"type": "integer", "index": 21, "name": "capabilities_card_issuing", "comment": null}, "capabilities_card_payments": {"type": "text", "index": 22, "name": "capabilities_card_payments", "comment": null}, "capabilities_cartes_bancaires_payments": {"type": "integer", "index": 23, "name": "capabilities_cartes_bancaires_payments", "comment": null}, "capabilities_eps_payments": {"type": "text", "index": 24, "name": "capabilities_eps_payments", "comment": null}, "capabilities_fpx_payments": {"type": "integer", "index": 25, "name": "capabilities_fpx_payments", "comment": null}, "capabilities_giropay_payments": {"type": "text", "index": 26, "name": "capabilities_giropay_payments", "comment": null}, "capabilities_grabpay_payments": {"type": "integer", "index": 27, "name": "capabilities_grabpay_payments", "comment": null}, "capabilities_ideal_payments": {"type": "text", "index": 28, "name": "capabilities_ideal_payments", "comment": null}, "capabilities_jcb_payments": {"type": "integer", "index": 29, "name": "capabilities_jcb_payments", "comment": null}, "capabilities_legacy_payments": {"type": "integer", "index": 30, "name": "capabilities_legacy_payments", "comment": null}, "capabilities_oxxo_payments": {"type": "integer", "index": 31, "name": "capabilities_oxxo_payments", "comment": null}, "capabilities_p_24_payments": {"type": "text", "index": 32, "name": "capabilities_p_24_payments", "comment": null}, "capabilities_platform_payments": {"type": "text", "index": 33, "name": "capabilities_platform_payments", "comment": null}, "capabilities_sepa_debit_payments": {"type": "text", "index": 34, "name": "capabilities_sepa_debit_payments", "comment": null}, "capabilities_sofort_payments": {"type": "text", "index": 35, "name": "capabilities_sofort_payments", "comment": null}, "capabilities_tax_reporting_us_1099_k": {"type": "integer", "index": 36, "name": "capabilities_tax_reporting_us_1099_k", "comment": null}, "capabilities_tax_reporting_us_1099_misc": {"type": "integer", "index": 37, "name": "capabilities_tax_reporting_us_1099_misc", "comment": null}, "capabilities_transfers": {"type": "integer", "index": 38, "name": "capabilities_transfers", "comment": null}, "charges_enabled": {"type": "boolean", "index": 39, "name": "charges_enabled", "comment": null}, "company_address_city": {"type": "integer", "index": 40, "name": "company_address_city", "comment": null}, "company_address_country": {"type": "integer", "index": 41, "name": "company_address_country", "comment": null}, "company_address_kana_city": {"type": "integer", "index": 42, "name": "company_address_kana_city", "comment": null}, "company_address_kana_country": {"type": "integer", "index": 43, "name": "company_address_kana_country", "comment": null}, "company_address_kana_line_1": {"type": "integer", "index": 44, "name": "company_address_kana_line_1", "comment": null}, "company_address_kana_line_2": {"type": "integer", "index": 45, "name": "company_address_kana_line_2", "comment": null}, "company_address_kana_postal_code": {"type": "integer", "index": 46, "name": "company_address_kana_postal_code", "comment": null}, "company_address_kana_state": {"type": "integer", "index": 47, "name": "company_address_kana_state", "comment": null}, "company_address_kana_town": {"type": "integer", "index": 48, "name": "company_address_kana_town", "comment": null}, "company_address_kanji_city": {"type": "integer", "index": 49, "name": "company_address_kanji_city", "comment": null}, "company_address_kanji_country": {"type": "integer", "index": 50, "name": "company_address_kanji_country", "comment": null}, "company_address_kanji_line_1": {"type": "integer", "index": 51, "name": "company_address_kanji_line_1", "comment": null}, "company_address_kanji_line_2": {"type": "integer", "index": 52, "name": "company_address_kanji_line_2", "comment": null}, "company_address_kanji_postal_code": {"type": "integer", "index": 53, "name": "company_address_kanji_postal_code", "comment": null}, "company_address_kanji_state": {"type": "integer", "index": 54, "name": "company_address_kanji_state", "comment": null}, "company_address_kanji_town": {"type": "integer", "index": 55, "name": "company_address_kanji_town", "comment": null}, "company_address_line_1": {"type": "integer", "index": 56, "name": "company_address_line_1", "comment": null}, "company_address_line_2": {"type": "integer", "index": 57, "name": "company_address_line_2", "comment": null}, "company_address_postal_code": {"type": "integer", "index": 58, "name": "company_address_postal_code", "comment": null}, "company_address_state": {"type": "integer", "index": 59, "name": "company_address_state", "comment": null}, "company_directors_provided": {"type": "integer", "index": 60, "name": "company_directors_provided", "comment": null}, "company_executives_provided": {"type": "integer", "index": 61, "name": "company_executives_provided", "comment": null}, "company_name": {"type": "integer", "index": 62, "name": "company_name", "comment": null}, "company_name_kana": {"type": "integer", "index": 63, "name": "company_name_kana", "comment": null}, "company_name_kanji": {"type": "integer", "index": 64, "name": "company_name_kanji", "comment": null}, "company_owners_provided": {"type": "integer", "index": 65, "name": "company_owners_provided", "comment": null}, "company_phone": {"type": "integer", "index": 66, "name": "company_phone", "comment": null}, "company_structure": {"type": "integer", "index": 67, "name": "company_structure", "comment": null}, "company_tax_id_provided": {"type": "integer", "index": 68, "name": "company_tax_id_provided", "comment": null}, "company_tax_id_registrar": {"type": "integer", "index": 69, "name": "company_tax_id_registrar", "comment": null}, "company_vat_id_provided": {"type": "integer", "index": 70, "name": "company_vat_id_provided", "comment": null}, "company_verification_document_back": {"type": "integer", "index": 71, "name": "company_verification_document_back", "comment": null}, "company_verification_document_details": {"type": "integer", "index": 72, "name": "company_verification_document_details", "comment": null}, "company_verification_document_details_code": {"type": "integer", "index": 73, "name": "company_verification_document_details_code", "comment": null}, "company_verification_document_front": {"type": "integer", "index": 74, "name": "company_verification_document_front", "comment": null}, "country": {"type": "text", "index": 75, "name": "country", "comment": null}, "created": {"type": "timestamp without time zone", "index": 76, "name": "created", "comment": null}, "default_currency": {"type": "text", "index": 77, "name": "default_currency", "comment": null}, "details_submitted": {"type": "boolean", "index": 78, "name": "details_submitted", "comment": null}, "email": {"type": "text", "index": 79, "name": "email", "comment": null}, "individual_id": {"type": "integer", "index": 80, "name": "individual_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 81, "name": "is_deleted", "comment": null}, "metadata": {"type": "integer", "index": 82, "name": "metadata", "comment": null}, "payouts_enabled": {"type": "boolean", "index": 83, "name": "payouts_enabled", "comment": null}, "requirements_current_deadline": {"type": "integer", "index": 84, "name": "requirements_current_deadline", "comment": null}, "requirements_currently_due": {"type": "integer", "index": 85, "name": "requirements_currently_due", "comment": null}, "requirements_disabled_reason": {"type": "integer", "index": 86, "name": "requirements_disabled_reason", "comment": null}, "requirements_errors": {"type": "integer", "index": 87, "name": "requirements_errors", "comment": null}, "requirements_eventually_due": {"type": "integer", "index": 88, "name": "requirements_eventually_due", "comment": null}, "requirements_past_due": {"type": "integer", "index": 89, "name": "requirements_past_due", "comment": null}, "requirements_pending_verification": {"type": "integer", "index": 90, "name": "requirements_pending_verification", "comment": null}, "settings_branding_icon": {"type": "integer", "index": 91, "name": "settings_branding_icon", "comment": null}, "settings_branding_logo": {"type": "text", "index": 92, "name": "settings_branding_logo", "comment": null}, "settings_branding_primary_color": {"type": "text", "index": 93, "name": "settings_branding_primary_color", "comment": null}, "settings_card_payments_decline_on_avs_failure": {"type": "integer", "index": 94, "name": "settings_card_payments_decline_on_avs_failure", "comment": null}, "settings_card_payments_decline_on_cvc_failure": {"type": "integer", "index": 95, "name": "settings_card_payments_decline_on_cvc_failure", "comment": null}, "settings_card_payments_statement_descriptor_prefix": {"type": "integer", "index": 96, "name": "settings_card_payments_statement_descriptor_prefix", "comment": null}, "settings_dashboard_display_name": {"type": "text", "index": 97, "name": "settings_dashboard_display_name", "comment": null}, "settings_dashboard_timezone": {"type": "text", "index": 98, "name": "settings_dashboard_timezone", "comment": null}, "settings_payments_statement_descriptor": {"type": "text", "index": 99, "name": "settings_payments_statement_descriptor", "comment": null}, "settings_payments_statement_descriptor_kana": {"type": "integer", "index": 100, "name": "settings_payments_statement_descriptor_kana", "comment": null}, "settings_payments_statement_descriptor_kanji": {"type": "integer", "index": 101, "name": "settings_payments_statement_descriptor_kanji", "comment": null}, "settings_payouts_debit_negative_balances": {"type": "boolean", "index": 102, "name": "settings_payouts_debit_negative_balances", "comment": null}, "settings_payouts_schedule_delay_days": {"type": "integer", "index": 103, "name": "settings_payouts_schedule_delay_days", "comment": null}, "settings_payouts_schedule_interval": {"type": "text", "index": 104, "name": "settings_payouts_schedule_interval", "comment": null}, "settings_payouts_schedule_monthly_anchor": {"type": "integer", "index": 105, "name": "settings_payouts_schedule_monthly_anchor", "comment": null}, "settings_payouts_schedule_weekly_anchor": {"type": "integer", "index": 106, "name": "settings_payouts_schedule_weekly_anchor", "comment": null}, "settings_payouts_statement_descriptor": {"type": "integer", "index": 107, "name": "settings_payouts_statement_descriptor", "comment": null}, "tos_acceptance_date": {"type": "integer", "index": 108, "name": "tos_acceptance_date", "comment": null}, "tos_acceptance_ip": {"type": "integer", "index": 109, "name": "tos_acceptance_ip", "comment": null}, "tos_acceptance_user_agent": {"type": "integer", "index": 110, "name": "tos_acceptance_user_agent", "comment": null}, "type": {"type": "text", "index": 111, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.account"}, "source.stripe.stripe.balance_transaction": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "balance_transaction_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "available_on": {"type": "timestamp without time zone", "index": 4, "name": "available_on", "comment": null}, "connected_account_id": {"type": "integer", "index": 5, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "exchange_rate": {"type": "integer", "index": 9, "name": "exchange_rate", "comment": null}, "fee": {"type": "integer", "index": 10, "name": "fee", "comment": null}, "net": {"type": "integer", "index": 11, "name": "net", "comment": null}, "source": {"type": "text", "index": 12, "name": "source", "comment": null}, "status": {"type": "text", "index": 13, "name": "status", "comment": null}, "type": {"type": "text", "index": 14, "name": "type", "comment": null}, "payout_id": {"type": "text", "index": 15, "name": "payout_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.balance_transaction"}, "source.stripe.stripe.card": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "card_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "address_city": {"type": "integer", "index": 4, "name": "address_city", "comment": null}, "address_country": {"type": "integer", "index": 5, "name": "address_country", "comment": null}, "address_line_1": {"type": "integer", "index": 6, "name": "address_line_1", "comment": null}, "address_line_1_check": {"type": "integer", "index": 7, "name": "address_line_1_check", "comment": null}, "address_line_2": {"type": "integer", "index": 8, "name": "address_line_2", "comment": null}, "address_state": {"type": "integer", "index": 9, "name": "address_state", "comment": null}, "address_zip": {"type": "integer", "index": 10, "name": "address_zip", "comment": null}, "address_zip_check": {"type": "integer", "index": 11, "name": "address_zip_check", "comment": null}, "brand": {"type": "text", "index": 12, "name": "brand", "comment": null}, "connected_account_id": {"type": "integer", "index": 13, "name": "connected_account_id", "comment": null}, "country": {"type": "text", "index": 14, "name": "country", "comment": null}, "created": {"type": "timestamp without time zone", "index": 15, "name": "created", "comment": null}, "currency": {"type": "text", "index": 16, "name": "currency", "comment": null}, "customer_id": {"type": "integer", "index": 17, "name": "customer_id", "comment": null}, "cvc_check": {"type": "text", "index": 18, "name": "cvc_check", "comment": null}, "dynamic_last_4": {"type": "integer", "index": 19, "name": "dynamic_last_4", "comment": null}, "exp_month": {"type": "integer", "index": 20, "name": "exp_month", "comment": null}, "exp_year": {"type": "integer", "index": 21, "name": "exp_year", "comment": null}, "fingerprint": {"type": "text", "index": 22, "name": "fingerprint", "comment": null}, "funding": {"type": "text", "index": 23, "name": "funding", "comment": null}, "is_deleted": {"type": "boolean", "index": 24, "name": "is_deleted", "comment": null}, "last_4": {"type": "integer", "index": 25, "name": "last_4", "comment": null}, "name": {"type": "integer", "index": 26, "name": "name", "comment": null}, "network": {"type": "text", "index": 27, "name": "network", "comment": null}, "recipient": {"type": "integer", "index": 28, "name": "recipient", "comment": null}, "tokenization_method": {"type": "integer", "index": 29, "name": "tokenization_method", "comment": null}, "metadata": {"type": "text", "index": 30, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.card"}, "source.stripe.stripe.charge": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "charge_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "bigint", "index": 3, "name": "amount", "comment": null}, "amount_refunded": {"type": "bigint", "index": 4, "name": "amount_refunded", "comment": null}, "application": {"type": "text", "index": 5, "name": "application", "comment": null}, "application_fee_amount": {"type": "bigint", "index": 6, "name": "application_fee_amount", "comment": null}, "balance_transaction_id": {"type": "character varying(500)", "index": 7, "name": "balance_transaction_id", "comment": null}, "bank_account_id": {"type": "integer", "index": 8, "name": "bank_account_id", "comment": null}, "captured": {"type": "boolean", "index": 9, "name": "captured", "comment": null}, "card_id": {"type": "text", "index": 10, "name": "card_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 11, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "text", "index": 13, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "description": {"type": "text", "index": 15, "name": "description", "comment": null}, "destination": {"type": "integer", "index": 16, "name": "destination", "comment": null}, "failure_code": {"type": "text", "index": 17, "name": "failure_code", "comment": null}, "failure_message": {"type": "text", "index": 18, "name": "failure_message", "comment": null}, "fraud_details_stripe_report": {"type": "integer", "index": 19, "name": "fraud_details_stripe_report", "comment": null}, "fraud_details_user_report": {"type": "integer", "index": 20, "name": "fraud_details_user_report", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 21, "name": "invoice_id", "comment": null}, "livemode": {"type": "boolean", "index": 22, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 23, "name": "metadata", "comment": null}, "on_behalf_of": {"type": "integer", "index": 24, "name": "on_behalf_of", "comment": null}, "outcome_network_status": {"type": "text", "index": 25, "name": "outcome_network_status", "comment": null}, "outcome_reason": {"type": "text", "index": 26, "name": "outcome_reason", "comment": null}, "outcome_risk_level": {"type": "text", "index": 27, "name": "outcome_risk_level", "comment": null}, "outcome_risk_score": {"type": "double precision", "index": 28, "name": "outcome_risk_score", "comment": null}, "outcome_seller_message": {"type": "text", "index": 29, "name": "outcome_seller_message", "comment": null}, "outcome_type": {"type": "text", "index": 30, "name": "outcome_type", "comment": null}, "paid": {"type": "boolean", "index": 31, "name": "paid", "comment": null}, "payment_intent_id": {"type": "text", "index": 32, "name": "payment_intent_id", "comment": null}, "receipt_email": {"type": "text", "index": 33, "name": "receipt_email", "comment": null}, "receipt_number": {"type": "integer", "index": 34, "name": "receipt_number", "comment": null}, "receipt_url": {"type": "integer", "index": 35, "name": "receipt_url", "comment": null}, "refunded": {"type": "boolean", "index": 36, "name": "refunded", "comment": null}, "shipping_address_city": {"type": "integer", "index": 37, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "integer", "index": 38, "name": "shipping_address_country", "comment": null}, "shipping_address_line_1": {"type": "integer", "index": 39, "name": "shipping_address_line_1", "comment": null}, "shipping_address_line_2": {"type": "integer", "index": 40, "name": "shipping_address_line_2", "comment": null}, "shipping_address_postal_code": {"type": "integer", "index": 41, "name": "shipping_address_postal_code", "comment": null}, "shipping_address_state": {"type": "integer", "index": 42, "name": "shipping_address_state", "comment": null}, "shipping_carrier": {"type": "integer", "index": 43, "name": "shipping_carrier", "comment": null}, "shipping_name": {"type": "integer", "index": 44, "name": "shipping_name", "comment": null}, "shipping_phone": {"type": "integer", "index": 45, "name": "shipping_phone", "comment": null}, "shipping_tracking_number": {"type": "integer", "index": 46, "name": "shipping_tracking_number", "comment": null}, "source_id": {"type": "integer", "index": 47, "name": "source_id", "comment": null}, "source_transfer": {"type": "integer", "index": 48, "name": "source_transfer", "comment": null}, "statement_descriptor": {"type": "integer", "index": 49, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 50, "name": "status", "comment": null}, "transfer_data_destination": {"type": "integer", "index": 51, "name": "transfer_data_destination", "comment": null}, "transfer_group": {"type": "integer", "index": 52, "name": "transfer_group", "comment": null}, "transfer_id": {"type": "integer", "index": 53, "name": "transfer_id", "comment": null}, "calculated_statement_descriptor": {"type": "text", "index": 54, "name": "calculated_statement_descriptor", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.charge"}, "source.stripe.stripe.coupon": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "coupon_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "amount_off": {"type": "integer", "index": 2, "name": "amount_off", "comment": null}, "created": {"type": "timestamp without time zone", "index": 3, "name": "created", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "duration": {"type": "text", "index": 5, "name": "duration", "comment": null}, "duration_in_months": {"type": "integer", "index": 6, "name": "duration_in_months", "comment": null}, "livemode": {"type": "boolean", "index": 7, "name": "livemode", "comment": null}, "max_redemptions": {"type": "integer", "index": 8, "name": "max_redemptions", "comment": null}, "metadata": {"type": "integer", "index": 9, "name": "metadata", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "percent_off": {"type": "double precision", "index": 11, "name": "percent_off", "comment": null}, "redeem_by": {"type": "timestamp without time zone", "index": 12, "name": "redeem_by", "comment": null}, "times_redeemed": {"type": "integer", "index": 13, "name": "times_redeemed", "comment": null}, "valid": {"type": "boolean", "index": 14, "name": "valid", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 15, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.coupon"}, "source.stripe.stripe.credit_note": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "credit_note_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "amount": {"type": "integer", "index": 2, "name": "amount", "comment": null}, "created": {"type": "timestamp without time zone", "index": 3, "name": "created", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "discount_amount": {"type": "integer", "index": 5, "name": "discount_amount", "comment": null}, "subtotal": {"type": "integer", "index": 6, "name": "subtotal", "comment": null}, "total": {"type": "integer", "index": 7, "name": "total", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "memo": {"type": "integer", "index": 9, "name": "memo", "comment": null}, "metadata": {"type": "text", "index": 10, "name": "metadata", "comment": null}, "number": {"type": "text", "index": 11, "name": "number", "comment": null}, "pdf": {"type": "text", "index": 12, "name": "pdf", "comment": null}, "reason": {"type": "integer", "index": 13, "name": "reason", "comment": null}, "status": {"type": "text", "index": 14, "name": "status", "comment": null}, "type": {"type": "text", "index": 15, "name": "type", "comment": null}, "voided_at": {"type": "timestamp without time zone", "index": 16, "name": "voided_at", "comment": null}, "customer_balance_transaction_id": {"type": "integer", "index": 17, "name": "customer_balance_transaction_id", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 18, "name": "invoice_id", "comment": null}, "refund_id": {"type": "text", "index": 19, "name": "refund_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 20, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.credit_note"}, "source.stripe.stripe.credit_note_line_item": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "credit_note_line_item_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"credit_note_id": {"type": "text", "index": 1, "name": "credit_note_id", "comment": null}, "id": {"type": "text", "index": 2, "name": "id", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "discount_amount": {"type": "integer", "index": 4, "name": "discount_amount", "comment": null}, "description": {"type": "text", "index": 5, "name": "description", "comment": null}, "livemode": {"type": "boolean", "index": 6, "name": "livemode", "comment": null}, "quantity": {"type": "integer", "index": 7, "name": "quantity", "comment": null}, "type": {"type": "text", "index": 8, "name": "type", "comment": null}, "unit_amount": {"type": "integer", "index": 9, "name": "unit_amount", "comment": null}, "unit_amount_decimal": {"type": "integer", "index": 10, "name": "unit_amount_decimal", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.credit_note_line_item"}, "source.stripe.stripe.customer": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "customer_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "account_balance": {"type": "integer", "index": 3, "name": "account_balance", "comment": null}, "address_city": {"type": "integer", "index": 4, "name": "address_city", "comment": null}, "address_country": {"type": "integer", "index": 5, "name": "address_country", "comment": null}, "address_line_1": {"type": "integer", "index": 6, "name": "address_line_1", "comment": null}, "address_line_2": {"type": "integer", "index": 7, "name": "address_line_2", "comment": null}, "address_postal_code": {"type": "integer", "index": 8, "name": "address_postal_code", "comment": null}, "address_state": {"type": "integer", "index": 9, "name": "address_state", "comment": null}, "balance": {"type": "integer", "index": 10, "name": "balance", "comment": null}, "bank_account_id": {"type": "text", "index": 11, "name": "bank_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "integer", "index": 13, "name": "currency", "comment": null}, "default_card_id": {"type": "integer", "index": 14, "name": "default_card_id", "comment": null}, "delinquent": {"type": "boolean", "index": 15, "name": "delinquent", "comment": null}, "description": {"type": "character varying(500)", "index": 16, "name": "description", "comment": null}, "email": {"type": "integer", "index": 17, "name": "email", "comment": null}, "invoice_prefix": {"type": "text", "index": 18, "name": "invoice_prefix", "comment": null}, "invoice_settings_default_payment_method": {"type": "integer", "index": 19, "name": "invoice_settings_default_payment_method", "comment": null}, "invoice_settings_footer": {"type": "integer", "index": 20, "name": "invoice_settings_footer", "comment": null}, "is_deleted": {"type": "boolean", "index": 21, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 22, "name": "livemode", "comment": null}, "name": {"type": "text", "index": 23, "name": "name", "comment": null}, "phone": {"type": "integer", "index": 24, "name": "phone", "comment": null}, "shipping_address_city": {"type": "integer", "index": 25, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "integer", "index": 26, "name": "shipping_address_country", "comment": null}, "shipping_address_line_1": {"type": "integer", "index": 27, "name": "shipping_address_line_1", "comment": null}, "shipping_address_line_2": {"type": "integer", "index": 28, "name": "shipping_address_line_2", "comment": null}, "shipping_address_postal_code": {"type": "integer", "index": 29, "name": "shipping_address_postal_code", "comment": null}, "shipping_address_state": {"type": "integer", "index": 30, "name": "shipping_address_state", "comment": null}, "shipping_carrier": {"type": "integer", "index": 31, "name": "shipping_carrier", "comment": null}, "shipping_name": {"type": "integer", "index": 32, "name": "shipping_name", "comment": null}, "shipping_phone": {"type": "integer", "index": 33, "name": "shipping_phone", "comment": null}, "shipping_tracking_number": {"type": "integer", "index": 34, "name": "shipping_tracking_number", "comment": null}, "source_id": {"type": "integer", "index": 35, "name": "source_id", "comment": null}, "tax_exempt": {"type": "text", "index": 36, "name": "tax_exempt", "comment": null}, "tax_info_tax_id": {"type": "integer", "index": 37, "name": "tax_info_tax_id", "comment": null}, "tax_info_type": {"type": "integer", "index": 38, "name": "tax_info_type", "comment": null}, "tax_info_verification_status": {"type": "integer", "index": 39, "name": "tax_info_verification_status", "comment": null}, "tax_info_verification_verified_name": {"type": "integer", "index": 40, "name": "tax_info_verification_verified_name", "comment": null}, "metadata": {"type": "text", "index": 41, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.customer"}, "source.stripe.stripe.discount": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "discount_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "type": {"type": "integer", "index": 2, "name": "type", "comment": null}, "type_id": {"type": "text", "index": 3, "name": "type_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 4, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "bigint", "index": 5, "name": "amount", "comment": null}, "checkout_session_id": {"type": "integer", "index": 6, "name": "checkout_session_id", "comment": null}, "checkout_session_line_item_id": {"type": "integer", "index": 7, "name": "checkout_session_line_item_id", "comment": null}, "coupon_id": {"type": "text", "index": 8, "name": "coupon_id", "comment": null}, "credit_note_line_item_id": {"type": "text", "index": 9, "name": "credit_note_line_item_id", "comment": null}, "customer_id": {"type": "text", "index": 10, "name": "customer_id", "comment": null}, "end": {"type": "timestamp without time zone", "index": 11, "name": "end", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 12, "name": "invoice_id", "comment": null}, "invoice_item_id": {"type": "integer", "index": 13, "name": "invoice_item_id", "comment": null}, "promotion_code": {"type": "integer", "index": 14, "name": "promotion_code", "comment": null}, "start": {"type": "text", "index": 15, "name": "start", "comment": null}, "subscription_id": {"type": "text", "index": 16, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.discount"}, "source.stripe.stripe.dispute": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "dispute_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "balance_transaction": {"type": "text", "index": 4, "name": "balance_transaction", "comment": null}, "charge_id": {"type": "text", "index": 5, "name": "charge_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 6, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 7, "name": "created", "comment": null}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": null}, "evidence_access_activity_log": {"type": "integer", "index": 9, "name": "evidence_access_activity_log", "comment": null}, "evidence_billing_address": {"type": "text", "index": 10, "name": "evidence_billing_address", "comment": null}, "evidence_cancellation_policy": {"type": "integer", "index": 11, "name": "evidence_cancellation_policy", "comment": null}, "evidence_cancellation_policy_disclosure": {"type": "integer", "index": 12, "name": "evidence_cancellation_policy_disclosure", "comment": null}, "evidence_cancellation_rebuttal": {"type": "integer", "index": 13, "name": "evidence_cancellation_rebuttal", "comment": null}, "evidence_customer_communication": {"type": "integer", "index": 14, "name": "evidence_customer_communication", "comment": null}, "evidence_customer_email_address": {"type": "text", "index": 15, "name": "evidence_customer_email_address", "comment": null}, "evidence_customer_name": {"type": "text", "index": 16, "name": "evidence_customer_name", "comment": null}, "evidence_customer_purchase_ip": {"type": "text", "index": 17, "name": "evidence_customer_purchase_ip", "comment": null}, "evidence_customer_signature": {"type": "integer", "index": 18, "name": "evidence_customer_signature", "comment": null}, "evidence_details_due_by": {"type": "text", "index": 19, "name": "evidence_details_due_by", "comment": null}, "evidence_details_has_evidence": {"type": "boolean", "index": 20, "name": "evidence_details_has_evidence", "comment": null}, "evidence_details_past_due": {"type": "boolean", "index": 21, "name": "evidence_details_past_due", "comment": null}, "evidence_details_submission_count": {"type": "integer", "index": 22, "name": "evidence_details_submission_count", "comment": null}, "evidence_duplicate_charge_documentation": {"type": "integer", "index": 23, "name": "evidence_duplicate_charge_documentation", "comment": null}, "evidence_duplicate_charge_explanation": {"type": "integer", "index": 24, "name": "evidence_duplicate_charge_explanation", "comment": null}, "evidence_duplicate_charge_id": {"type": "integer", "index": 25, "name": "evidence_duplicate_charge_id", "comment": null}, "evidence_product_description": {"type": "integer", "index": 26, "name": "evidence_product_description", "comment": null}, "evidence_receipt": {"type": "text", "index": 27, "name": "evidence_receipt", "comment": null}, "evidence_refund_policy": {"type": "integer", "index": 28, "name": "evidence_refund_policy", "comment": null}, "evidence_refund_policy_disclosure": {"type": "integer", "index": 29, "name": "evidence_refund_policy_disclosure", "comment": null}, "evidence_refund_refusal_explanation": {"type": "integer", "index": 30, "name": "evidence_refund_refusal_explanation", "comment": null}, "evidence_service_date": {"type": "integer", "index": 31, "name": "evidence_service_date", "comment": null}, "evidence_service_documentation": {"type": "integer", "index": 32, "name": "evidence_service_documentation", "comment": null}, "evidence_shipping_address": {"type": "integer", "index": 33, "name": "evidence_shipping_address", "comment": null}, "evidence_shipping_carrier": {"type": "integer", "index": 34, "name": "evidence_shipping_carrier", "comment": null}, "evidence_shipping_date": {"type": "integer", "index": 35, "name": "evidence_shipping_date", "comment": null}, "evidence_shipping_documentation": {"type": "integer", "index": 36, "name": "evidence_shipping_documentation", "comment": null}, "evidence_shipping_tracking_number": {"type": "integer", "index": 37, "name": "evidence_shipping_tracking_number", "comment": null}, "evidence_uncategorized_file": {"type": "integer", "index": 38, "name": "evidence_uncategorized_file", "comment": null}, "evidence_uncategorized_text": {"type": "integer", "index": 39, "name": "evidence_uncategorized_text", "comment": null}, "is_charge_refundable": {"type": "boolean", "index": 40, "name": "is_charge_refundable", "comment": null}, "livemode": {"type": "boolean", "index": 41, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 42, "name": "metadata", "comment": null}, "reason": {"type": "text", "index": 43, "name": "reason", "comment": null}, "status": {"type": "text", "index": 44, "name": "status", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.dispute"}, "source.stripe.stripe.fee": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "fee_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"balance_transaction_id": {"type": "text", "index": 1, "name": "balance_transaction_id", "comment": null}, "index": {"type": "integer", "index": 2, "name": "index", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "application": {"type": "integer", "index": 5, "name": "application", "comment": null}, "connected_account_id": {"type": "integer", "index": 6, "name": "connected_account_id", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "type": {"type": "text", "index": 9, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.fee"}, "source.stripe.stripe.invoice": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "invoice_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 5, "name": "customer_id", "comment": null}, "due_date": {"type": "timestamp without time zone", "index": 6, "name": "due_date", "comment": null}, "description": {"type": "text", "index": 7, "name": "description", "comment": null}, "discountable": {"type": "boolean", "index": 8, "name": "discountable", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 9, "name": "invoice_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 10, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 11, "name": "livemode", "comment": null}, "period_end": {"type": "timestamp without time zone", "index": 12, "name": "period_end", "comment": null}, "period_start": {"type": "timestamp without time zone", "index": 13, "name": "period_start", "comment": null}, "proration": {"type": "boolean", "index": 14, "name": "proration", "comment": null}, "quantity": {"type": "integer", "index": 15, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 16, "name": "subscription_id", "comment": null}, "subscription_item_id": {"type": "text", "index": 17, "name": "subscription_item_id", "comment": null}, "unit_amount": {"type": "integer", "index": 18, "name": "unit_amount", "comment": null}, "default_payment_method_id": {"type": "text", "index": 19, "name": "default_payment_method_id", "comment": null}, "amount_due": {"type": "bigint", "index": 20, "name": "amount_due", "comment": null}, "amount_paid": {"type": "bigint", "index": 21, "name": "amount_paid", "comment": null}, "amount_remaining": {"type": "bigint", "index": 22, "name": "amount_remaining", "comment": null}, "post_payment_credit_notes_amount": {"type": "bigint", "index": 23, "name": "post_payment_credit_notes_amount", "comment": null}, "pre_payment_credit_notes_amount": {"type": "bigint", "index": 24, "name": "pre_payment_credit_notes_amount", "comment": null}, "subtotal": {"type": "bigint", "index": 25, "name": "subtotal", "comment": null}, "tax": {"type": "bigint", "index": 26, "name": "tax", "comment": null}, "total": {"type": "bigint", "index": 27, "name": "total", "comment": null}, "attempt_count": {"type": "bigint", "index": 28, "name": "attempt_count", "comment": null}, "auto_advance": {"type": "boolean", "index": 29, "name": "auto_advance", "comment": null}, "billing_reason": {"type": "text", "index": 30, "name": "billing_reason", "comment": null}, "metadata": {"type": "text", "index": 31, "name": "metadata", "comment": null}, "number": {"type": "bigint", "index": 32, "name": "number", "comment": null}, "paid": {"type": "boolean", "index": 33, "name": "paid", "comment": null}, "receipt_number": {"type": "integer", "index": 34, "name": "receipt_number", "comment": null}, "status": {"type": "text", "index": 35, "name": "status", "comment": null}, "source_relation": {"type": "integer", "index": 36, "name": "source_relation", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.invoice"}, "source.stripe.stripe.invoice_line_item": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "invoice_line_item_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 2, "name": "invoice_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 3, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "description": {"type": "text", "index": 6, "name": "description", "comment": null}, "discountable": {"type": "boolean", "index": 7, "name": "discountable", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "period_end": {"type": "timestamp without time zone", "index": 9, "name": "period_end", "comment": null}, "period_start": {"type": "timestamp without time zone", "index": 10, "name": "period_start", "comment": null}, "plan_id": {"type": "text", "index": 11, "name": "plan_id", "comment": null}, "proration": {"type": "boolean", "index": 12, "name": "proration", "comment": null}, "quantity": {"type": "integer", "index": 13, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 14, "name": "subscription_id", "comment": null}, "subscription_item_id": {"type": "text", "index": 15, "name": "subscription_item_id", "comment": null}, "type": {"type": "integer", "index": 16, "name": "type", "comment": null}, "unique_id": {"type": "text", "index": 17, "name": "unique_id", "comment": null}, "metadata": {"type": "text", "index": 18, "name": "metadata", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.invoice_line_item"}, "source.stripe.stripe.payment_intent": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payment_intent_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "amount_capturable": {"type": "integer", "index": 4, "name": "amount_capturable", "comment": null}, "amount_received": {"type": "integer", "index": 5, "name": "amount_received", "comment": null}, "application": {"type": "text", "index": 6, "name": "application", "comment": null}, "application_fee_amount": {"type": "integer", "index": 7, "name": "application_fee_amount", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 8, "name": "canceled_at", "comment": null}, "cancellation_reason": {"type": "integer", "index": 9, "name": "cancellation_reason", "comment": null}, "capture_method": {"type": "text", "index": 10, "name": "capture_method", "comment": null}, "confirmation_method": {"type": "text", "index": 11, "name": "confirmation_method", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "currency": {"type": "text", "index": 13, "name": "currency", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "description": {"type": "text", "index": 15, "name": "description", "comment": null}, "last_payment_error_charge_id": {"type": "integer", "index": 16, "name": "last_payment_error_charge_id", "comment": null}, "last_payment_error_code": {"type": "integer", "index": 17, "name": "last_payment_error_code", "comment": null}, "last_payment_error_decline_code": {"type": "integer", "index": 18, "name": "last_payment_error_decline_code", "comment": null}, "last_payment_error_doc_url": {"type": "integer", "index": 19, "name": "last_payment_error_doc_url", "comment": null}, "last_payment_error_message": {"type": "integer", "index": 20, "name": "last_payment_error_message", "comment": null}, "last_payment_error_param": {"type": "integer", "index": 21, "name": "last_payment_error_param", "comment": null}, "last_payment_error_source_id": {"type": "integer", "index": 22, "name": "last_payment_error_source_id", "comment": null}, "last_payment_error_type": {"type": "integer", "index": 23, "name": "last_payment_error_type", "comment": null}, "livemode": {"type": "boolean", "index": 24, "name": "livemode", "comment": null}, "on_behalf_of": {"type": "integer", "index": 25, "name": "on_behalf_of", "comment": null}, "payment_method_id": {"type": "text", "index": 26, "name": "payment_method_id", "comment": null}, "receipt_email": {"type": "text", "index": 27, "name": "receipt_email", "comment": null}, "source_id": {"type": "integer", "index": 28, "name": "source_id", "comment": null}, "statement_descriptor": {"type": "integer", "index": 29, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 30, "name": "status", "comment": null}, "transfer_data_destination": {"type": "integer", "index": 31, "name": "transfer_data_destination", "comment": null}, "transfer_group": {"type": "integer", "index": 32, "name": "transfer_group", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.payment_intent"}, "source.stripe.stripe.payment_method_card": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payment_method_card_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"payment_method_id": {"type": "text", "index": 1, "name": "payment_method_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "brand": {"type": "text", "index": 3, "name": "brand", "comment": null}, "charge_id": {"type": "integer", "index": 4, "name": "charge_id", "comment": null}, "description": {"type": "integer", "index": 5, "name": "description", "comment": null}, "fingerprint": {"type": "text", "index": 6, "name": "fingerprint", "comment": null}, "funding": {"type": "text", "index": 7, "name": "funding", "comment": null}, "type": {"type": "integer", "index": 8, "name": "type", "comment": null}, "wallet_type": {"type": "integer", "index": 9, "name": "wallet_type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.payment_method_card"}, "source.stripe.stripe.payment_method": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payment_method_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "billing_detail_address_city": {"type": "integer", "index": 3, "name": "billing_detail_address_city", "comment": null}, "billing_detail_address_country": {"type": "integer", "index": 4, "name": "billing_detail_address_country", "comment": null}, "billing_detail_address_line_1": {"type": "integer", "index": 5, "name": "billing_detail_address_line_1", "comment": null}, "billing_detail_address_line_2": {"type": "integer", "index": 6, "name": "billing_detail_address_line_2", "comment": null}, "billing_detail_address_postal_code": {"type": "text", "index": 7, "name": "billing_detail_address_postal_code", "comment": null}, "billing_detail_address_state": {"type": "integer", "index": 8, "name": "billing_detail_address_state", "comment": null}, "billing_detail_email": {"type": "text", "index": 9, "name": "billing_detail_email", "comment": null}, "billing_detail_name": {"type": "text", "index": 10, "name": "billing_detail_name", "comment": null}, "billing_detail_phone": {"type": "integer", "index": 11, "name": "billing_detail_phone", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "customer_id": {"type": "text", "index": 13, "name": "customer_id", "comment": null}, "livemode": {"type": "boolean", "index": 14, "name": "livemode", "comment": null}, "type": {"type": "text", "index": 15, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.payment_method"}, "source.stripe.stripe.payout_balance_transaction": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payout_balance_transaction_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"payout_id": {"type": "text", "index": 1, "name": "payout_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "balance_transaction_id": {"type": "text", "index": 3, "name": "balance_transaction_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.payout_balance_transaction"}, "source.stripe.stripe.payout": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "payout_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "arrival_date": {"type": "timestamp without time zone", "index": 4, "name": "arrival_date", "comment": null}, "automatic": {"type": "boolean", "index": 5, "name": "automatic", "comment": null}, "balance_transaction_id": {"type": "text", "index": 6, "name": "balance_transaction_id", "comment": null}, "connected_account_id": {"type": "integer", "index": 7, "name": "connected_account_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 8, "name": "created", "comment": null}, "currency": {"type": "text", "index": 9, "name": "currency", "comment": null}, "description": {"type": "text", "index": 10, "name": "description", "comment": null}, "destination_bank_account_id": {"type": "character varying(500)", "index": 11, "name": "destination_bank_account_id", "comment": null}, "destination_card_id": {"type": "character varying(500)", "index": 12, "name": "destination_card_id", "comment": null}, "failure_balance_transaction_id": {"type": "integer", "index": 13, "name": "failure_balance_transaction_id", "comment": null}, "failure_code": {"type": "integer", "index": 14, "name": "failure_code", "comment": null}, "failure_message": {"type": "integer", "index": 15, "name": "failure_message", "comment": null}, "livemode": {"type": "boolean", "index": 16, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 17, "name": "metadata", "comment": null}, "method": {"type": "text", "index": 18, "name": "method", "comment": null}, "source_type": {"type": "text", "index": 19, "name": "source_type", "comment": null}, "statement_descriptor": {"type": "integer", "index": 20, "name": "statement_descriptor", "comment": null}, "status": {"type": "text", "index": 21, "name": "status", "comment": null}, "type": {"type": "text", "index": 22, "name": "type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.payout"}, "source.stripe.stripe.plan": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "plan_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "aggregate_usage": {"type": "integer", "index": 4, "name": "aggregate_usage", "comment": null}, "amount": {"type": "integer", "index": 5, "name": "amount", "comment": null}, "billing_scheme": {"type": "text", "index": 6, "name": "billing_scheme", "comment": null}, "created": {"type": "timestamp without time zone", "index": 7, "name": "created", "comment": null}, "currency": {"type": "text", "index": 8, "name": "currency", "comment": null}, "interval": {"type": "text", "index": 9, "name": "interval", "comment": null}, "interval_count": {"type": "bigint", "index": 10, "name": "interval_count", "comment": null}, "is_deleted": {"type": "boolean", "index": 11, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 12, "name": "livemode", "comment": null}, "nickname": {"type": "integer", "index": 13, "name": "nickname", "comment": null}, "product_id": {"type": "text", "index": 14, "name": "product_id", "comment": null}, "tiers_mode": {"type": "integer", "index": 15, "name": "tiers_mode", "comment": null}, "transform_usage_divide_by": {"type": "integer", "index": 16, "name": "transform_usage_divide_by", "comment": null}, "transform_usage_round": {"type": "integer", "index": 17, "name": "transform_usage_round", "comment": null}, "trial_period_days": {"type": "integer", "index": 18, "name": "trial_period_days", "comment": null}, "usage_type": {"type": "text", "index": 19, "name": "usage_type", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.plan"}, "source.stripe.stripe.price": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "price_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "billing_scheme": {"type": "text", "index": 4, "name": "billing_scheme", "comment": null}, "created": {"type": "timestamp without time zone", "index": 5, "name": "created", "comment": null}, "currency": {"type": "text", "index": 6, "name": "currency", "comment": null}, "invoice_item_id": {"type": "text", "index": 7, "name": "invoice_item_id", "comment": null}, "is_deleted": {"type": "boolean", "index": 8, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 9, "name": "livemode", "comment": null}, "lookup_key": {"type": "integer", "index": 10, "name": "lookup_key", "comment": null}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": null}, "nickname": {"type": "text", "index": 12, "name": "nickname", "comment": null}, "product_id": {"type": "text", "index": 13, "name": "product_id", "comment": null}, "recurring_aggregate_usage": {"type": "character varying(100)", "index": 14, "name": "recurring_aggregate_usage", "comment": null}, "recurring_interval": {"type": "character varying(100)", "index": 15, "name": "recurring_interval", "comment": null}, "recurring_interval_count": {"type": "bigint", "index": 16, "name": "recurring_interval_count", "comment": null}, "recurring_usage_type": {"type": "character varying(100)", "index": 17, "name": "recurring_usage_type", "comment": null}, "tiers_mode": {"type": "integer", "index": 18, "name": "tiers_mode", "comment": null}, "transform_quantity_divide_by": {"type": "integer", "index": 19, "name": "transform_quantity_divide_by", "comment": null}, "transform_quantity_round": {"type": "integer", "index": 20, "name": "transform_quantity_round", "comment": null}, "type": {"type": "text", "index": 21, "name": "type", "comment": null}, "unit_amount": {"type": "integer", "index": 22, "name": "unit_amount", "comment": null}, "unit_amount_decimal": {"type": "integer", "index": 23, "name": "unit_amount_decimal", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.price"}, "source.stripe.stripe.product": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "product_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "active": {"type": "boolean", "index": 3, "name": "active", "comment": null}, "caption": {"type": "text", "index": 4, "name": "caption", "comment": null}, "created": {"type": "timestamp without time zone", "index": 5, "name": "created", "comment": null}, "description": {"type": "text", "index": 6, "name": "description", "comment": null}, "is_deleted": {"type": "boolean", "index": 7, "name": "is_deleted", "comment": null}, "livemode": {"type": "boolean", "index": 8, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 9, "name": "metadata", "comment": null}, "name": {"type": "text", "index": 10, "name": "name", "comment": null}, "package_dimensions_height": {"type": "integer", "index": 11, "name": "package_dimensions_height", "comment": null}, "package_dimensions_length": {"type": "integer", "index": 12, "name": "package_dimensions_length", "comment": null}, "package_dimensions_weight": {"type": "integer", "index": 13, "name": "package_dimensions_weight", "comment": null}, "package_dimensions_width": {"type": "integer", "index": 14, "name": "package_dimensions_width", "comment": null}, "shippable": {"type": "boolean", "index": 15, "name": "shippable", "comment": null}, "statement_descriptor": {"type": "integer", "index": 16, "name": "statement_descriptor", "comment": null}, "type": {"type": "text", "index": 17, "name": "type", "comment": null}, "unit_label": {"type": "integer", "index": 18, "name": "unit_label", "comment": null}, "updated": {"type": "text", "index": 19, "name": "updated", "comment": null}, "url": {"type": "text", "index": 20, "name": "url", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.product"}, "source.stripe.stripe.refund": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "refund_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "balance_transaction_id": {"type": "text", "index": 4, "name": "balance_transaction_id", "comment": null}, "charge_id": {"type": "text", "index": 5, "name": "charge_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "integer", "index": 8, "name": "description", "comment": null}, "failure_balance_transaction_id": {"type": "integer", "index": 9, "name": "failure_balance_transaction_id", "comment": null}, "failure_reason": {"type": "integer", "index": 10, "name": "failure_reason", "comment": null}, "metadata": {"type": "text", "index": 11, "name": "metadata", "comment": null}, "reason": {"type": "text", "index": 12, "name": "reason", "comment": null}, "receipt_number": {"type": "text", "index": 13, "name": "receipt_number", "comment": null}, "status": {"type": "text", "index": 14, "name": "status", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.refund"}, "source.stripe.stripe.subscription": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "application_fee_percent": {"type": "integer", "index": 3, "name": "application_fee_percent", "comment": null}, "billing": {"type": "text", "index": 4, "name": "billing", "comment": null}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 5, "name": "billing_cycle_anchor", "comment": null}, "billing_threshold_amount_gte": {"type": "integer", "index": 6, "name": "billing_threshold_amount_gte", "comment": null}, "billing_threshold_reset_billing_cycle_anchor": {"type": "boolean", "index": 7, "name": "billing_threshold_reset_billing_cycle_anchor", "comment": null}, "cancel_at": {"type": "timestamp without time zone", "index": 8, "name": "cancel_at", "comment": null}, "cancel_at_period_end": {"type": "boolean", "index": 9, "name": "cancel_at_period_end", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 10, "name": "canceled_at", "comment": null}, "created": {"type": "timestamp without time zone", "index": 11, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 12, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 13, "name": "current_period_start", "comment": null}, "customer_id": {"type": "text", "index": 14, "name": "customer_id", "comment": null}, "days_until_due": {"type": "integer", "index": 15, "name": "days_until_due", "comment": null}, "default_source_id": {"type": "text", "index": 16, "name": "default_source_id", "comment": null}, "ended_at": {"type": "timestamp without time zone", "index": 17, "name": "ended_at", "comment": null}, "livemode": {"type": "boolean", "index": 18, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 19, "name": "metadata", "comment": null}, "quantity": {"type": "integer", "index": 20, "name": "quantity", "comment": null}, "start_date": {"type": "timestamp without time zone", "index": 21, "name": "start_date", "comment": null}, "status": {"type": "text", "index": 22, "name": "status", "comment": null}, "tax_percent": {"type": "integer", "index": 23, "name": "tax_percent", "comment": null}, "trial_end": {"type": "timestamp without time zone", "index": 24, "name": "trial_end", "comment": null}, "trial_start": {"type": "timestamp without time zone", "index": 25, "name": "trial_start", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.subscription"}, "source.stripe.stripe.subscription_discount": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_discount_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "checkout_session": {"type": "integer", "index": 3, "name": "checkout_session", "comment": null}, "coupon_id": {"type": "text", "index": 4, "name": "coupon_id", "comment": null}, "customer_id": {"type": "text", "index": 5, "name": "customer_id", "comment": null}, "end": {"type": "timestamp without time zone", "index": 6, "name": "end", "comment": null}, "invoice_id": {"type": "character varying(500)", "index": 7, "name": "invoice_id", "comment": null}, "invoice_item_id": {"type": "integer", "index": 8, "name": "invoice_item_id", "comment": null}, "start": {"type": "text", "index": 9, "name": "start", "comment": null}, "subscription_id": {"type": "text", "index": 10, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.subscription_discount"}, "source.stripe.stripe.subscription_history": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_history_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "_fivetran_active": {"type": "boolean", "index": 3, "name": "_fivetran_active", "comment": null}, "application_fee_percent": {"type": "integer", "index": 4, "name": "application_fee_percent", "comment": null}, "billing": {"type": "text", "index": 5, "name": "billing", "comment": null}, "billing_cycle_anchor": {"type": "timestamp without time zone", "index": 6, "name": "billing_cycle_anchor", "comment": null}, "billing_threshold_amount_gte": {"type": "integer", "index": 7, "name": "billing_threshold_amount_gte", "comment": null}, "billing_threshold_reset_billing_cycle_anchor": {"type": "boolean", "index": 8, "name": "billing_threshold_reset_billing_cycle_anchor", "comment": null}, "cancel_at": {"type": "timestamp without time zone", "index": 9, "name": "cancel_at", "comment": null}, "cancel_at_period_end": {"type": "boolean", "index": 10, "name": "cancel_at_period_end", "comment": null}, "canceled_at": {"type": "timestamp without time zone", "index": 11, "name": "canceled_at", "comment": null}, "created": {"type": "timestamp without time zone", "index": 12, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 13, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 14, "name": "current_period_start", "comment": null}, "customer_id": {"type": "text", "index": 15, "name": "customer_id", "comment": null}, "days_until_due": {"type": "integer", "index": 16, "name": "days_until_due", "comment": null}, "default_source_id": {"type": "text", "index": 17, "name": "default_source_id", "comment": null}, "ended_at": {"type": "timestamp without time zone", "index": 18, "name": "ended_at", "comment": null}, "livemode": {"type": "boolean", "index": 19, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 20, "name": "metadata", "comment": null}, "quantity": {"type": "integer", "index": 21, "name": "quantity", "comment": null}, "start_date": {"type": "timestamp without time zone", "index": 22, "name": "start_date", "comment": null}, "status": {"type": "text", "index": 23, "name": "status", "comment": null}, "tax_percent": {"type": "integer", "index": 24, "name": "tax_percent", "comment": null}, "trial_end": {"type": "timestamp without time zone", "index": 25, "name": "trial_end", "comment": null}, "trial_start": {"type": "timestamp without time zone", "index": 26, "name": "trial_start", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.subscription_history"}, "source.stripe.stripe.subscription_item": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "subscription_item_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "created": {"type": "timestamp without time zone", "index": 2, "name": "created", "comment": null}, "current_period_end": {"type": "timestamp without time zone", "index": 3, "name": "current_period_end", "comment": null}, "current_period_start": {"type": "timestamp without time zone", "index": 4, "name": "current_period_start", "comment": null}, "id": {"type": "text", "index": 5, "name": "id", "comment": null}, "metadata": {"type": "text", "index": 6, "name": "metadata", "comment": null}, "plan_id": {"type": "text", "index": 7, "name": "plan_id", "comment": null}, "quantity": {"type": "bigint", "index": 8, "name": "quantity", "comment": null}, "subscription_id": {"type": "text", "index": 9, "name": "subscription_id", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.subscription_item"}, "source.stripe.stripe.transfer": {"metadata": {"type": "BASE TABLE", "schema": "public", "name": "transfer_data", "database": "postgres", "comment": null, "owner": "postgres"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "amount": {"type": "integer", "index": 3, "name": "amount", "comment": null}, "amount_reversed": {"type": "integer", "index": 4, "name": "amount_reversed", "comment": null}, "balance_transaction_id": {"type": "text", "index": 5, "name": "balance_transaction_id", "comment": null}, "created": {"type": "timestamp without time zone", "index": 6, "name": "created", "comment": null}, "currency": {"type": "text", "index": 7, "name": "currency", "comment": null}, "description": {"type": "text", "index": 8, "name": "description", "comment": null}, "destination": {"type": "text", "index": 9, "name": "destination", "comment": null}, "destination_payment": {"type": "integer", "index": 10, "name": "destination_payment", "comment": null}, "destination_payment_id": {"type": "integer", "index": 11, "name": "destination_payment_id", "comment": null}, "livemode": {"type": "boolean", "index": 12, "name": "livemode", "comment": null}, "metadata": {"type": "text", "index": 13, "name": "metadata", "comment": null}, "reversed": {"type": "boolean", "index": 14, "name": "reversed", "comment": null}, "source_transaction": {"type": "integer", "index": 15, "name": "source_transaction", "comment": null}, "source_transaction_id": {"type": "integer", "index": 16, "name": "source_transaction_id", "comment": null}, "source_type": {"type": "text", "index": 17, "name": "source_type", "comment": null}, "transfer_group": {"type": "integer", "index": 18, "name": "transfer_group", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.stripe.stripe.transfer"}}, "errors": null}
\ No newline at end of file
diff --git a/docs/manifest.json b/docs/manifest.json
index dd7dd76f..19cc0276 100644
--- a/docs/manifest.json
+++ b/docs/manifest.json
@@ -1 +1 @@
-{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v12.json", "dbt_version": "1.11.11", "generated_at": "2026-06-10T22:35:13.238262Z", "invocation_id": "a37902db-1239-4143-9468-b4a1517724c3", "invocation_started_at": "2026-06-10T22:34:57.245044+00:00", "env": {}, "project_name": "stripe_integration_tests", "project_id": "109848508b1db9729face71a82e6e37e", "user_id": null, "send_anonymous_usage_stats": false, "adapter_type": "postgres", "quoting": {"database": true, "schema": true, "identifier": true, "column": null}, "run_started_at": "2026-06-10T22:34:57.245333+00:00"}, "nodes": {"seed.stripe_integration_tests.credit_note_data": {"database": "postgres", "schema": "public", "name": "credit_note_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "credit_note_data.csv", "original_file_path": "seeds/credit_note_data.csv", "unique_id": "seed.stripe_integration_tests.credit_note_data", "fqn": ["stripe_integration_tests", "credit_note_data"], "alias": "credit_note_data", "checksum": {"name": "sha256", "checksum": "ee376bbb67979393bab00069cf3c8f4a102f01ea82a81c39f1cf69cd8b4abdd0"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "invoice_id": "varchar(500)", "voided_at": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}", "voided_at": "timestamp"}}, "created_at": 1781130899.9975545, "relation_name": "\"postgres\".\"public\".\"credit_note_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.balance_transaction_data": {"database": "postgres", "schema": "public", "name": "balance_transaction_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "balance_transaction_data.csv", "original_file_path": "seeds/balance_transaction_data.csv", "unique_id": "seed.stripe_integration_tests.balance_transaction_data", "fqn": ["stripe_integration_tests", "balance_transaction_data"], "alias": "balance_transaction_data", "checksum": {"name": "sha256", "checksum": "cb8d4c3f391230bc2bddfa84ec177aaeb685bb724e78d862e42bdae41622aaee"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "available_on": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "available_on": "timestamp"}}, "created_at": 1781130900.0006866, "relation_name": "\"postgres\".\"public\".\"balance_transaction_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.credit_note_line_item_data": {"database": "postgres", "schema": "public", "name": "credit_note_line_item_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "credit_note_line_item_data.csv", "original_file_path": "seeds/credit_note_line_item_data.csv", "unique_id": "seed.stripe_integration_tests.credit_note_line_item_data", "fqn": ["stripe_integration_tests", "credit_note_line_item_data"], "alias": "credit_note_line_item_data", "checksum": {"name": "sha256", "checksum": "7acde9b3c86a258e56fceb56e20f12cdba73559af0f1675276cc8bbcf52e90d7"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1781130900.003901, "relation_name": "\"postgres\".\"public\".\"credit_note_line_item_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.charge_data": {"database": "postgres", "schema": "public", "name": "charge_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "charge_data.csv", "original_file_path": "seeds/charge_data.csv", "unique_id": "seed.stripe_integration_tests.charge_data", "fqn": ["stripe_integration_tests", "charge_data"], "alias": "charge_data", "checksum": {"name": "sha256", "checksum": "9762e61ed0ea7df7ea6cd60f073194397154d1f7a1627a88322f552eb5160383"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "balance_transaction_id": "varchar(500)", "captured": "boolean", "livemode": "boolean", "paid": "boolean", "refunded": "boolean", "amount": "bigint", "amount_refunded": "bigint", "application_fee_amount": "bigint", "outcome_risk_score": "float", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "balance_transaction_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}", "captured": "boolean", "livemode": "boolean", "paid": "boolean", "refunded": "boolean", "amount": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "amount_refunded": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "application_fee_amount": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "outcome_risk_score": "{{ 'float' if target.type in ('redshift','postgres') else 'FLOAT64' if target.type == 'bigquery' else 'float'}}", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1781130900.0101142, "relation_name": "\"postgres\".\"public\".\"charge_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.invoice_line_item_data": {"database": "postgres", "schema": "public", "name": "invoice_line_item_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "invoice_line_item_data.csv", "original_file_path": "seeds/invoice_line_item_data.csv", "unique_id": "seed.stripe_integration_tests.invoice_line_item_data", "fqn": ["stripe_integration_tests", "invoice_line_item_data"], "alias": "invoice_line_item_data", "checksum": {"name": "sha256", "checksum": "4e39a171a660d47c2a1669e9137b404435099eedf47ed21173032ed6d84bf0d6"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1781130900.0132062, "relation_name": "\"postgres\".\"public\".\"invoice_line_item_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.subscription_history_data": {"database": "postgres", "schema": "public", "name": "subscription_history_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "subscription_history_data.csv", "original_file_path": "seeds/subscription_history_data.csv", "unique_id": "seed.stripe_integration_tests.subscription_history_data", "fqn": ["stripe_integration_tests", "subscription_history_data"], "alias": "subscription_history_data", "checksum": {"name": "sha256", "checksum": "43b8a0a4b037b4785f390fa7ae4db98d61ce77819eedd7234d61185aee76ae88"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "canceled_at": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "canceled_at": "timestamp"}}, "created_at": 1781130900.0161977, "relation_name": "\"postgres\".\"public\".\"subscription_history_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.subscription_data": {"database": "postgres", "schema": "public", "name": "subscription_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "subscription_data.csv", "original_file_path": "seeds/subscription_data.csv", "unique_id": "seed.stripe_integration_tests.subscription_data", "fqn": ["stripe_integration_tests", "subscription_data"], "alias": "subscription_data", "checksum": {"name": "sha256", "checksum": "9963744a1f45602c27e4c4090348f5f26da54ddf9c25ae91435826d0e6889239"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "canceled_at": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "canceled_at": "timestamp"}}, "created_at": 1781130900.0206647, "relation_name": "\"postgres\".\"public\".\"subscription_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.payout_data": {"database": "postgres", "schema": "public", "name": "payout_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "payout_data.csv", "original_file_path": "seeds/payout_data.csv", "unique_id": "seed.stripe_integration_tests.payout_data", "fqn": ["stripe_integration_tests", "payout_data"], "alias": "payout_data", "checksum": {"name": "sha256", "checksum": "0409106da67c7b90516be9509eeb142941f884d1811805ae96cc5e48d9e54e19"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "destination_bank_account_id": "varchar(500)", "destination_card_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "destination_bank_account_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}", "destination_card_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1781130900.0237067, "relation_name": "\"postgres\".\"public\".\"payout_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.plan_data": {"database": "postgres", "schema": "public", "name": "plan_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "plan_data.csv", "original_file_path": "seeds/plan_data.csv", "unique_id": "seed.stripe_integration_tests.plan_data", "fqn": ["stripe_integration_tests", "plan_data"], "alias": "plan_data", "checksum": {"name": "sha256", "checksum": "871465e7442edbac8f528b0ea6d2622bb8eb61cb95a7f825d8327ebcb24bbba3"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "interval_count": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "interval_count": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}"}}, "created_at": 1781130900.0267112, "relation_name": "\"postgres\".\"public\".\"plan_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.discount_data_postgres": {"database": "postgres", "schema": "public", "name": "discount_data_postgres", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "discount_data_postgres.csv", "original_file_path": "seeds/discount_data_postgres.csv", "unique_id": "seed.stripe_integration_tests.discount_data_postgres", "fqn": ["stripe_integration_tests", "discount_data_postgres"], "alias": "discount_data", "checksum": {"name": "sha256", "checksum": "228d1a67d58ad79cdb41e86ffeb90cd1dd5e7fccd91d684abfbb856daa544174"}, "config": {"enabled": true, "alias": "discount_data", "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "amount": "bigint", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "alias": "discount_data", "enabled": "{{ target.type == 'postgres' and not var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "amount": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1781130900.029738, "relation_name": "\"postgres\".\"public\".\"discount_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.payout_balance_transaction_data": {"database": "postgres", "schema": "public", "name": "payout_balance_transaction_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "payout_balance_transaction_data.csv", "original_file_path": "seeds/payout_balance_transaction_data.csv", "unique_id": "seed.stripe_integration_tests.payout_balance_transaction_data", "fqn": ["stripe_integration_tests", "payout_balance_transaction_data"], "alias": "payout_balance_transaction_data", "checksum": {"name": "sha256", "checksum": "c4231e5a64c9506a3e6c04b276aa234c040210efb10a6644ef9e292aba5629af"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1781130900.0328176, "relation_name": "\"postgres\".\"public\".\"payout_balance_transaction_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.dispute_data": {"database": "postgres", "schema": "public", "name": "dispute_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "dispute_data.csv", "original_file_path": "seeds/dispute_data.csv", "unique_id": "seed.stripe_integration_tests.dispute_data", "fqn": ["stripe_integration_tests", "dispute_data"], "alias": "dispute_data", "checksum": {"name": "sha256", "checksum": "0c4b4f46360010fc0a86af6a5e9bce02c78c8a136559aa705cbb7343741f2e48"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1781130900.0387719, "relation_name": "\"postgres\".\"public\".\"dispute_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.coupon_data": {"database": "postgres", "schema": "public", "name": "coupon_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "coupon_data.csv", "original_file_path": "seeds/coupon_data.csv", "unique_id": "seed.stripe_integration_tests.coupon_data", "fqn": ["stripe_integration_tests", "coupon_data"], "alias": "coupon_data", "checksum": {"name": "sha256", "checksum": "598bbc1ca5098f2a90f5bcec352d07605756803b8aa29d6caa315d850bbee639"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"created": "timestamp", "redeem_by": "timestamp", "_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"created": "timestamp", "redeem_by": "timestamp", "_fivetran_synced": "timestamp"}}, "created_at": 1781130900.0417569, "relation_name": "\"postgres\".\"public\".\"coupon_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.product_data": {"database": "postgres", "schema": "public", "name": "product_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "product_data.csv", "original_file_path": "seeds/product_data.csv", "unique_id": "seed.stripe_integration_tests.product_data", "fqn": ["stripe_integration_tests", "product_data"], "alias": "product_data", "checksum": {"name": "sha256", "checksum": "d0c345561ac765fba290311bcdd66554778fd9f9f24160726f635b48817f40e9"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1781130900.044723, "relation_name": "\"postgres\".\"public\".\"product_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.invoice_data": {"database": "postgres", "schema": "public", "name": "invoice_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "invoice_data.csv", "original_file_path": "seeds/invoice_data.csv", "unique_id": "seed.stripe_integration_tests.invoice_data", "fqn": ["stripe_integration_tests", "invoice_data"], "alias": "invoice_data", "checksum": {"name": "sha256", "checksum": "459c86931e7258baa97bd520409929a3f678c5242c6e88427e564fba48f9e803"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "due_date": "timestamp", "paid": "boolean", "auto_advance": "boolean", "amount_due": "bigint", "amount_paid": "bigint", "amount_remaining": "bigint", "subtotal": "bigint", "tax": "bigint", "total": "bigint", "attempt_count": "bigint", "number": "bigint", "post_payment_credit_notes_amount": "bigint", "pre_payment_credit_notes_amount": "bigint", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "due_date": "timestamp", "paid": "boolean", "auto_advance": "boolean", "amount_due": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "amount_paid": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "amount_remaining": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "subtotal": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "tax": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "total": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "attempt_count": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "number": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "post_payment_credit_notes_amount": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "pre_payment_credit_notes_amount": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1781130900.051067, "relation_name": "\"postgres\".\"public\".\"invoice_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.card_data": {"database": "postgres", "schema": "public", "name": "card_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "card_data.csv", "original_file_path": "seeds/card_data.csv", "unique_id": "seed.stripe_integration_tests.card_data", "fqn": ["stripe_integration_tests", "card_data"], "alias": "card_data", "checksum": {"name": "sha256", "checksum": "ecd181a3b2767ed24c9b3f1074815cffcb0a5de3ba4187178cbb5bf276e7a067"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1781130900.0541663, "relation_name": "\"postgres\".\"public\".\"card_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.subscription_item_data": {"database": "postgres", "schema": "public", "name": "subscription_item_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "subscription_item_data.csv", "original_file_path": "seeds/subscription_item_data.csv", "unique_id": "seed.stripe_integration_tests.subscription_item_data", "fqn": ["stripe_integration_tests", "subscription_item_data"], "alias": "subscription_item_data", "checksum": {"name": "sha256", "checksum": "d37cc1330a9cbbd48c6218c71f18f1cd8dbefe9e9d2ee2dc43ebba94845a63e7"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "quantity": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "quantity": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}"}}, "created_at": 1781130900.0571551, "relation_name": "\"postgres\".\"public\".\"subscription_item_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.transfer_data": {"database": "postgres", "schema": "public", "name": "transfer_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "transfer_data.csv", "original_file_path": "seeds/transfer_data.csv", "unique_id": "seed.stripe_integration_tests.transfer_data", "fqn": ["stripe_integration_tests", "transfer_data"], "alias": "transfer_data", "checksum": {"name": "sha256", "checksum": "d618fff8db4e3adad24ab5325dd4b16ee0d68ab259b39ff52caeab926b4bd74b"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1781130900.0603275, "relation_name": "\"postgres\".\"public\".\"transfer_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.payment_method_card_data": {"database": "postgres", "schema": "public", "name": "payment_method_card_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "payment_method_card_data.csv", "original_file_path": "seeds/payment_method_card_data.csv", "unique_id": "seed.stripe_integration_tests.payment_method_card_data", "fqn": ["stripe_integration_tests", "payment_method_card_data"], "alias": "payment_method_card_data", "checksum": {"name": "sha256", "checksum": "41a235914b6f9a704792d779d74bce5f5810c9091bfe2e246232081bfdded372"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1781130900.06333, "relation_name": "\"postgres\".\"public\".\"payment_method_card_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.refund_data": {"database": "postgres", "schema": "public", "name": "refund_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "refund_data.csv", "original_file_path": "seeds/refund_data.csv", "unique_id": "seed.stripe_integration_tests.refund_data", "fqn": ["stripe_integration_tests", "refund_data"], "alias": "refund_data", "checksum": {"name": "sha256", "checksum": "ff92e2c930bad7b418a907c9df2f6a4303ed92ca52bef2d3c1e4c0f0f1c23c02"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1781130900.0663164, "relation_name": "\"postgres\".\"public\".\"refund_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.account_data": {"database": "postgres", "schema": "public", "name": "account_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "account_data.csv", "original_file_path": "seeds/account_data.csv", "unique_id": "seed.stripe_integration_tests.account_data", "fqn": ["stripe_integration_tests", "account_data"], "alias": "account_data", "checksum": {"name": "sha256", "checksum": "ca8c3c62469d823879a4aa7c266ba25e9c59345389b548e8e5dd682874f627f9"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1781130900.0692952, "relation_name": "\"postgres\".\"public\".\"account_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.subscription_discount_data_postgres": {"database": "postgres", "schema": "public", "name": "subscription_discount_data_postgres", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "subscription_discount_data_postgres.csv", "original_file_path": "seeds/subscription_discount_data_postgres.csv", "unique_id": "seed.stripe_integration_tests.subscription_discount_data_postgres", "fqn": ["stripe_integration_tests", "subscription_discount_data_postgres"], "alias": "subscription_discount_data", "checksum": {"name": "sha256", "checksum": "44b0e2563fabeb7d9fbf9bd4fddea3b82b795f074c27d1f5d9b8dfc49ddac77d"}, "config": {"enabled": true, "alias": "subscription_discount_data", "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "alias": "subscription_discount_data", "enabled": "{{ target.type == 'postgres' and not var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1781130900.0724094, "relation_name": "\"postgres\".\"public\".\"subscription_discount_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.payment_intent_data": {"database": "postgres", "schema": "public", "name": "payment_intent_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "payment_intent_data.csv", "original_file_path": "seeds/payment_intent_data.csv", "unique_id": "seed.stripe_integration_tests.payment_intent_data", "fqn": ["stripe_integration_tests", "payment_intent_data"], "alias": "payment_intent_data", "checksum": {"name": "sha256", "checksum": "bd9e9f474669fd085a32823c36f8c5ea258edaccfe1758aec7bf7900674f133d"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "canceled_at": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "canceled_at": "timestamp"}}, "created_at": 1781130900.0754247, "relation_name": "\"postgres\".\"public\".\"payment_intent_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.fee_data": {"database": "postgres", "schema": "public", "name": "fee_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "fee_data.csv", "original_file_path": "seeds/fee_data.csv", "unique_id": "seed.stripe_integration_tests.fee_data", "fqn": ["stripe_integration_tests", "fee_data"], "alias": "fee_data", "checksum": {"name": "sha256", "checksum": "2c64d3edd42b0a1c03170433aab3cb53ddc0efe4eb3b57cd1b812f95f3326868"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1781130900.0784082, "relation_name": "\"postgres\".\"public\".\"fee_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.payment_method_data": {"database": "postgres", "schema": "public", "name": "payment_method_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "payment_method_data.csv", "original_file_path": "seeds/payment_method_data.csv", "unique_id": "seed.stripe_integration_tests.payment_method_data", "fqn": ["stripe_integration_tests", "payment_method_data"], "alias": "payment_method_data", "checksum": {"name": "sha256", "checksum": "fed06046c1179ee28f73b719380c71cafe40a8757f1f9f25008c0407f858f171"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1781130900.0813818, "relation_name": "\"postgres\".\"public\".\"payment_method_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.price_data": {"database": "postgres", "schema": "public", "name": "price_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "price_data.csv", "original_file_path": "seeds/price_data.csv", "unique_id": "seed.stripe_integration_tests.price_data", "fqn": ["stripe_integration_tests", "price_data"], "alias": "price_data", "checksum": {"name": "sha256", "checksum": "8399e1834944c1290ddd74a23a8896844fa75ee549b494fafe5b635ee54bb3f1"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "recurring_interval": "varchar(100)", "recurring_aggregate_usage": "varchar(100)", "recurring_usage_type": "varchar(100)", "recurring_interval_count": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "recurring_interval": "{{ 'varchar(100)' if target.type in ('redshift','postgres') else 'string'}}", "recurring_aggregate_usage": "{{ 'varchar(100)' if target.type in ('redshift','postgres') else 'string'}}", "recurring_usage_type": "{{ 'varchar(100)' if target.type in ('redshift','postgres') else 'string'}}", "recurring_interval_count": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}"}}, "created_at": 1781130900.0844223, "relation_name": "\"postgres\".\"public\".\"price_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.customer_data": {"database": "postgres", "schema": "public", "name": "customer_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "customer_data.csv", "original_file_path": "seeds/customer_data.csv", "unique_id": "seed.stripe_integration_tests.customer_data", "fqn": ["stripe_integration_tests", "customer_data"], "alias": "customer_data", "checksum": {"name": "sha256", "checksum": "f944962c589ed6f16de98f09c47beb950560b58f40c3d0e95b25914ebd6ed454"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "description": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "description": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1781130900.0875683, "relation_name": "\"postgres\".\"public\".\"customer_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "model.stripe.stripe__invoice_details": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__invoice_details", "resource_type": "model", "package_name": "stripe", "path": "stripe__invoice_details.sql", "original_file_path": "models/stripe__invoice_details.sql", "unique_id": "model.stripe.stripe__invoice_details", "fqn": ["stripe", "stripe__invoice_details"], "alias": "stripe__invoice_details", "checksum": {"name": "sha256", "checksum": "11527e6bffb7fda9a60aec96490c326ac64ec7fbda406ee65a4b8c2fe1265045"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Each record represents an invoice, enriched with details about the associated charge, customer, and subscription data.", "columns": {"invoice_id": {"name": "invoice_id", "description": "The unique Identifier of the invoice object. Note invoices can have many line items, so this value can appear multiple times.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_number": {"name": "invoice_number", "description": "A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer\u2019s unique invoice_prefix if it is specified.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_created_at": {"name": "invoice_created_at", "description": "Timestamp of when the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "period_start": {"name": "period_start", "description": "Timestamp of the start of the period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "period_end": {"name": "period_end", "description": "Timestamp of the end of the period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Current status of the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "due_date": {"name": "due_date", "description": "Date when payment for the invoice is due.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "The currency that the invoice is in. Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount_paid": {"name": "amount_paid", "description": "The amount, if any, that the customer has paid on the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "amount_due": {"name": "amount_due", "description": "Final amount due at this time for this invoice. If the invoice\u2019s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "subtotal": {"name": "subtotal", "description": "The amount of the invoice before discounts and taxes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "tax": {"name": "tax", "description": "The amount of tax being charged in the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total": {"name": "total", "description": "The Total after discounts and taxes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount_remaining": {"name": "amount_remaining", "description": "The amount of the invoice remaining to be paid. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "attempt_count": {"name": "attempt_count", "description": "Number of payment attempts made for this invoice, from the perspective of the payment retry schedule.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_memo": {"name": "invoice_memo", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "number_of_line_items": {"name": "number_of_line_items", "description": "Number of line item records for this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total_quantity": {"name": "total_quantity", "description": "The total quantity of items for this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "The ID of the balance transaction object representing payment", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_amount": {"name": "charge_amount", "description": "The amount charged to the customer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "charge_status": {"name": "charge_status", "description": "The status of the charge for the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_created_at": {"name": "charge_created_at", "description": "When the charge for the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_is_refunded": {"name": "charge_is_refunded", "description": "Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "The ID of the account connected to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The associated customer reference.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "Description of the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_account_balance": {"name": "customer_account_balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_currency": {"name": "customer_currency", "description": "Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_is_delinquent": {"name": "customer_is_delinquent", "description": "When the customer\u2019s latest invoice is billed by charging automatically, delinquent is true if the invoice\u2019s latest charge is failed. When the customer\u2019s latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "Email of the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "ID of the subscription this invoice relates to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_billing": {"name": "subscription_billing", "description": "How the subscription is billed", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_start_date": {"name": "subscription_start_date", "description": "The start date of the subscription", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_ended_at": {"name": "subscription_ended_at", "description": "The end date of the subscription", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.233752, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__invoice_details\"", "raw_code": "{{ config(enabled=var('stripe__using_invoices', True)) }}\n\nwith invoice as (\n\n select *\n from {{ ref('stg_stripe__invoice') }} \n\n), charge as (\n\n select *\n from {{ ref('stg_stripe__charge') }} \n\n), invoice_line_item as (\n\n select\n invoice_id,\n source_relation,\n coalesce(count(distinct unique_invoice_line_item_id),0) as number_of_line_items,\n coalesce(sum(quantity),0) as total_quantity\n\n from {{ ref('stg_stripe__invoice_line_item') }} \n group by 1,2\n\n), customer as (\n\n select *\n from {{ ref('stg_stripe__customer') }} \n\n{% if var('stripe__using_subscriptions', True) %}\n\n), subscription as (\n\n select *\n from {{ ref('stg_stripe__subscription') }} \n\n), price_plan as (\n\n select *\n from {{ ref('stg_stripe__price_plan') }} \n\n{% endif %}\n)\n\nselect \n invoice.invoice_id,\n invoice.number as invoice_number,\n invoice.created_at as invoice_created_at,\n invoice.period_start,\n invoice.period_end,\n invoice.status,\n invoice.due_date,\n invoice.currency,\n coalesce(invoice.amount_due,0) as amount_due,\n coalesce(invoice.amount_paid,0) as amount_paid,\n coalesce(invoice.subtotal,0) as subtotal,\n coalesce(invoice.tax,0) as tax,\n coalesce(invoice.total,0) as total,\n coalesce(invoice.amount_remaining,0) as amount_remaining,\n coalesce(invoice.attempt_count,0) as attempt_count,\n invoice.description as invoice_memo,\n {{ stripe.select_metadata_columns('invoice', 'stripe__invoice_metadata') }}\n invoice_line_item.number_of_line_items,\n invoice_line_item.total_quantity,\n charge.balance_transaction_id,\n charge.amount as charge_amount, \n charge.status as charge_status,\n charge.connected_account_id, \n charge.created_at as charge_created_at,\n charge.is_refunded as charge_is_refunded,\n {{ stripe.select_metadata_columns('charge', 'stripe__charge_metadata') }}\n customer.customer_id,\n customer.description as customer_description,\n customer.account_balance as customer_account_balance,\n customer.currency as customer_currency,\n customer.is_delinquent as customer_is_delinquent,\n customer.email as customer_email,\n {{ stripe.select_metadata_columns('customer', 'stripe__customer_metadata') }}\n\n {% if var('stripe__using_subscriptions', True) %}\n subscription.subscription_id,\n subscription.billing as subscription_billing,\n subscription.start_date_at as subscription_start_date,\n subscription.ended_at as subscription_ended_at,\n {{ stripe.select_metadata_columns('subscription', 'stripe__subscription_metadata') }}\n\n {% endif %}\n invoice.source_relation\n\nfrom invoice\n\nleft join invoice_line_item \n on invoice.invoice_id = invoice_line_item.invoice_id\n and invoice.source_relation = invoice_line_item.source_relation\n\nleft join charge \n on invoice.charge_id = charge.charge_id\n and invoice.invoice_id = charge.invoice_id\n and invoice.source_relation = charge.source_relation\n\n{% if var('stripe__using_subscriptions', True) %}\nleft join subscription\n on invoice.subscription_id = subscription.subscription_id\n and invoice.source_relation = subscription.source_relation\n\n{% endif %}\n\nleft join customer \n on invoice.customer_id = customer.customer_id\n and invoice.source_relation = customer.source_relation", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice", "package": null, "version": null}, {"name": "stg_stripe__charge", "package": null, "version": null}, {"name": "stg_stripe__invoice_line_item", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}, {"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "stg_stripe__price_plan", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.select_metadata_columns"], "nodes": ["model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__customer", "model.stripe.stg_stripe__subscription", "model.stripe.stg_stripe__price_plan"]}, "compiled_path": "target/compiled/stripe/models/stripe__invoice_details.sql", "compiled": true, "compiled_code": "\n\nwith invoice as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice\" \n\n), charge as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\" \n\n), invoice_line_item as (\n\n select\n invoice_id,\n source_relation,\n coalesce(count(distinct unique_invoice_line_item_id),0) as number_of_line_items,\n coalesce(sum(quantity),0) as total_quantity\n\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\" \n group by 1,2\n\n), customer as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\" \n\n\n\n), subscription as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\" \n\n), price_plan as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan\" \n\n\n)\n\nselect \n invoice.invoice_id,\n invoice.number as invoice_number,\n invoice.created_at as invoice_created_at,\n invoice.period_start,\n invoice.period_end,\n invoice.status,\n invoice.due_date,\n invoice.currency,\n coalesce(invoice.amount_due,0) as amount_due,\n coalesce(invoice.amount_paid,0) as amount_paid,\n coalesce(invoice.subtotal,0) as subtotal,\n coalesce(invoice.tax,0) as tax,\n coalesce(invoice.total,0) as total,\n coalesce(invoice.amount_remaining,0) as amount_remaining,\n coalesce(invoice.attempt_count,0) as attempt_count,\n invoice.description as invoice_memo,\n \n invoice_line_item.number_of_line_items,\n invoice_line_item.total_quantity,\n charge.balance_transaction_id,\n charge.amount as charge_amount, \n charge.status as charge_status,\n charge.connected_account_id, \n charge.created_at as charge_created_at,\n charge.is_refunded as charge_is_refunded,\n \n customer.customer_id,\n customer.description as customer_description,\n customer.account_balance as customer_account_balance,\n customer.currency as customer_currency,\n customer.is_delinquent as customer_is_delinquent,\n customer.email as customer_email,\n \n\n \n subscription.subscription_id,\n subscription.billing as subscription_billing,\n subscription.start_date_at as subscription_start_date,\n subscription.ended_at as subscription_ended_at,\n \n\n \n invoice.source_relation\n\nfrom invoice\n\nleft join invoice_line_item \n on invoice.invoice_id = invoice_line_item.invoice_id\n and invoice.source_relation = invoice_line_item.source_relation\n\nleft join charge \n on invoice.charge_id = charge.charge_id\n and invoice.invoice_id = charge.invoice_id\n and invoice.source_relation = charge.source_relation\n\n\nleft join subscription\n on invoice.subscription_id = subscription.subscription_id\n and invoice.source_relation = subscription.source_relation\n\n\n\nleft join customer \n on invoice.customer_id = customer.customer_id\n and invoice.source_relation = customer.source_relation", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__customer_overview": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__customer_overview", "resource_type": "model", "package_name": "stripe", "path": "stripe__customer_overview.sql", "original_file_path": "models/stripe__customer_overview.sql", "unique_id": "model.stripe.stripe__customer_overview", "fqn": ["stripe", "stripe__customer_overview"], "alias": "stripe__customer_overview", "checksum": {"name": "sha256", "checksum": "177a9ce1d73150887282980738babf8d9145366f69365bd779e1b445bb71e804"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Each record represents a customer, enriched with metrics about their associated transactions.", "columns": {"customer_id": {"name": "customer_id", "description": "Unique identifier for each record from the Stripe customer object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "email": {"name": "email", "description": "Email address associated with the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_created_at": {"name": "customer_created_at", "description": "Timestamp of when the customer entry was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_delinquent": {"name": "is_delinquent", "description": "When the customer\u2019s latest invoice is billed by charging automatically, delinquent is true if the invoice\u2019s latest charge is failed. When the customer\u2019s latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total_sales": {"name": "total_sales", "description": "Sum of all charges made to this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total_refunds": {"name": "total_refunds", "description": "Sum of all refunds made to this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total_gross_transaction_amount": {"name": "total_gross_transaction_amount", "description": "Gross amount of all transactions made with this customer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_fees": {"name": "total_fees", "description": "Total fees charged on all transactions made with this customer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_net_transaction_amount": {"name": "total_net_transaction_amount", "description": "Net amount of all transactions made with this customer. This is the gross amount excluding fees, refunds, and disputes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_sales_count": {"name": "total_sales_count", "description": "The total number of sales made to this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total_refund_count": {"name": "total_refund_count", "description": "The total number of refunds made to this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "sales_this_month": {"name": "sales_this_month", "description": "Sum of charges made to this customer this month.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "refunds_this_month": {"name": "refunds_this_month", "description": "Sum of refunds made to this customer this month.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "gross_transaction_amount_this_month": {"name": "gross_transaction_amount_this_month", "description": "Gross amount of transactions made with this customer this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "fees_this_month": {"name": "fees_this_month", "description": "Total fees charged on transactions made with this customer this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "net_transaction_amount_this_month": {"name": "net_transaction_amount_this_month", "description": "Net amount of transactions made with this customer this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "sales_count_this_month": {"name": "sales_count_this_month", "description": "The number of sales made to this customer this month.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "refund_count_this_month": {"name": "refund_count_this_month", "description": "The number of refunds made to this customer this month.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "first_sale_date": {"name": "first_sale_date", "description": "Date of the first time this customer was charged.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "most_recent_sale_date": {"name": "most_recent_sale_date", "description": "Date of the most recent time this customer was charged.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total_failed_charge_count": {"name": "total_failed_charge_count", "description": "The total number of incomplete charges this customer has had.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total_failed_charge_amount": {"name": "total_failed_charge_amount", "description": "The total amount from incomplete charges this customer has had. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "failed_charge_count_this_month": {"name": "failed_charge_count_this_month", "description": "The number of incomplete charges this customer has had this month.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "failed_charge_amount_this_month": {"name": "failed_charge_amount_this_month", "description": "The amount from incomplete charges this customer has had this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "customer_currency": {"name": "customer_currency", "description": "Currency used by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "default_card_id": {"name": "default_card_id", "description": "ID of the default card used by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_name": {"name": "shipping_name", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_phone": {"name": "shipping_phone", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}, "phone": {"name": "phone", "description": "Customer's phone number.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Boolean reflecting whether the customer has been deleted in Stripe.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "bank_account_id": {"name": "bank_account_id", "description": "ID of the bank account associated with this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_balance": {"name": "customer_balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_state": {"name": "customer_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.state"]}, "customer_address_postal_code": {"name": "customer_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.postal_code"]}, "customer_address_line_1": {"name": "customer_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.line_1"]}, "customer_address_line_2": {"name": "customer_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.line_2"]}, "customer_address_country": {"name": "customer_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.country"]}, "customer_address_city": {"name": "customer_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.city"]}, "account_balance": {"name": "account_balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.2249134, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__customer_overview\"", "raw_code": "with balance_transaction_joined as (\n\n select *\n from {{ ref('stripe__balance_transactions') }} \n\n), incomplete_charges as (\n\n select *\n from {{ ref('int_stripe__incomplete_charges') }} \n\n), customer as (\n\n select *\n from {{ ref('stg_stripe__customer') }} \n\n), transactions_grouped as (\n\n select\n customer_id,\n source_relation,\n sum(\n case \n when balance_transaction_type in ('charge', 'payment') \n then balance_transaction_amount\n else 0 \n end) \n as total_sales,\n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') \n then balance_transaction_amount\n else 0 \n end) \n as total_refunds, \n sum(balance_transaction_amount) as total_gross_transaction_amount,\n sum(balance_transaction_fee) as total_fees,\n sum(balance_transaction_net) as total_net_transaction_amount,\n sum(\n case \n when balance_transaction_type in ('charge', 'payment') \n then 1\n else 0 \n end) \n as total_sales_count, \n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') \n then 1\n else 0 \n end) \n as total_refund_count, \n sum(\n case \n when balance_transaction_type in ('charge', 'payment') and {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then balance_transaction_amount \n else 0 \n end) \n as sales_this_month,\n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') and {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then balance_transaction_amount \n else 0 \n end) \n as refunds_this_month,\n sum(\n case \n when {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then balance_transaction_amount \n else 0 \n end) \n as gross_transaction_amount_this_month,\n sum(\n case \n when {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then balance_transaction_fee \n else 0 \n end) \n as fees_this_month,\n sum(\n case \n when {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then balance_transaction_net \n else 0 \n end) \n as net_transaction_amount_this_month,\n sum(\n case \n when balance_transaction_type in ('charge', 'payment') and {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then 1 \n else 0 \n end) \n as sales_count_this_month,\n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') and {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then 1 \n else 0 \n end) \n as refund_count_this_month,\n min(\n case \n when balance_transaction_type in ('charge', 'payment') \n then {{ date_timezone('balance_transaction_created_at') }}\n else null \n end) \n as first_sale_date,\n max(\n case \n when balance_transaction_type in ('charge', 'payment') \n then {{ date_timezone('balance_transaction_created_at') }}\n else null \n end) \n as most_recent_sale_date\n from balance_transaction_joined\n where balance_transaction_type in ('payment', 'charge', 'payment_refund', 'refund')\n group by 1,2\n\n), failed_charges_by_customer as (\n\n select\n customer_id,\n source_relation,\n count(*) as total_failed_charge_count,\n sum(amount) as total_failed_charge_amount,\n sum(\n case \n when {{ dbt.date_trunc('month', date_timezone('created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then 1\n else 0 \n end) \n as failed_charge_count_this_month,\n sum(\n case \n when {{ dbt.date_trunc('month', date_timezone('created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then amount\n else 0 \n end) \n as failed_charge_amount_this_month\n from incomplete_charges\n group by 1,2\n\n), transactions_not_associated_with_customer as (\n\n select\n 'No Customer ID' as customer_id,\n 'No Associated Customer' as customer_description,\n customer.created_at as customer_created_at,\n customer.currency as customer_currency,\n {{ dbt_utils.star(from=ref('stg_stripe__customer'), relation_alias='customer', except=['customer_id','description','created_at','currency','metadata','source_relation']) }},\n coalesce(transactions_grouped.total_sales, 0) as total_sales,\n coalesce(transactions_grouped.total_refunds, 0) as total_refunds,\n coalesce(transactions_grouped.total_gross_transaction_amount, 0) as total_gross_transaction_amount,\n coalesce(transactions_grouped.total_fees, 0) as total_fees,\n coalesce(transactions_grouped.total_net_transaction_amount, 0) as total_net_transaction_amount,\n coalesce(transactions_grouped.total_sales_count, 0) as total_sales_count,\n coalesce(transactions_grouped.total_refund_count, 0) as total_refund_count, \n coalesce(transactions_grouped.sales_this_month, 0) as sales_this_month,\n coalesce(transactions_grouped.refunds_this_month, 0) as refunds_this_month,\n coalesce(transactions_grouped.gross_transaction_amount_this_month, 0) as gross_transaction_amount_this_month,\n coalesce(transactions_grouped.fees_this_month, 0) as fees_this_month,\n coalesce(transactions_grouped.net_transaction_amount_this_month, 0) as net_transaction_amount_this_month,\n coalesce(transactions_grouped.sales_count_this_month, 0) as sales_count_this_month,\n coalesce(transactions_grouped.refund_count_this_month, 0) as refund_count_this_month,\n transactions_grouped.first_sale_date,\n transactions_grouped.most_recent_sale_date,\n 0 as total_failed_charge_count,\n 0 as total_failed_charge_amount,\n 0 as failed_charge_count_this_month,\n 0 as failed_charge_amount_this_month,\n transactions_grouped.source_relation\n\n from transactions_grouped\n left join customer \n on transactions_grouped.customer_id = customer.customer_id\n and transactions_grouped.source_relation = customer.source_relation\n where customer.customer_id is null and customer.description is null\n\n\n), customer_transactions_overview as (\n\n select\n customer.customer_id,\n customer.description as customer_description,\n customer.created_at as customer_created_at,\n customer.currency as customer_currency,\n {{ dbt_utils.star(from=ref('stg_stripe__customer'), relation_alias='customer', except=['customer_id','description','created_at','currency','metadata','source_relation']) }},\n coalesce(transactions_grouped.total_sales, 0) as total_sales,\n coalesce(transactions_grouped.total_refunds, 0) as total_refunds,\n coalesce(transactions_grouped.total_gross_transaction_amount, 0) as total_gross_transaction_amount,\n coalesce(transactions_grouped.total_fees, 0) as total_fees,\n coalesce(transactions_grouped.total_net_transaction_amount, 0) as total_net_transaction_amount,\n coalesce(transactions_grouped.total_sales_count, 0) as total_sales_count,\n coalesce(transactions_grouped.total_refund_count, 0) as total_refund_count, \n coalesce(transactions_grouped.sales_this_month, 0) as sales_this_month,\n coalesce(transactions_grouped.refunds_this_month, 0) as refunds_this_month,\n coalesce(transactions_grouped.gross_transaction_amount_this_month, 0) as gross_transaction_amount_this_month,\n coalesce(transactions_grouped.fees_this_month, 0) as fees_this_month,\n coalesce(transactions_grouped.net_transaction_amount_this_month, 0) as net_transaction_amount_this_month,\n coalesce(transactions_grouped.sales_count_this_month, 0) as sales_count_this_month,\n coalesce(transactions_grouped.refund_count_this_month, 0) as refund_count_this_month,\n transactions_grouped.first_sale_date,\n transactions_grouped.most_recent_sale_date,\n coalesce(failed_charges_by_customer.total_failed_charge_count, 0) as total_failed_charge_count,\n coalesce(failed_charges_by_customer.total_failed_charge_amount, 0) as total_failed_charge_amount,\n coalesce(failed_charges_by_customer.failed_charge_count_this_month, 0) as failed_charge_count_this_month,\n coalesce(failed_charges_by_customer.failed_charge_amount_this_month, 0) as failed_charge_amount_this_month,\n customer.source_relation\n\n \n from customer\n left join transactions_grouped\n on customer.customer_id = transactions_grouped.customer_id\n and customer.source_relation = transactions_grouped.source_relation\n left join failed_charges_by_customer \n on customer.customer_id = failed_charges_by_customer.customer_id\n and customer.source_relation = failed_charges_by_customer.source_relation\n)\n\nselect *\nfrom transactions_not_associated_with_customer\nunion all \nselect *\nfrom customer_transactions_overview", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__balance_transactions", "package": null, "version": null}, {"name": "int_stripe__incomplete_charges", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.date_timezone", "macro.dbt.date_trunc", "macro.dbt.current_timestamp_backcompat", "macro.dbt_utils.star"], "nodes": ["model.stripe.stripe__balance_transactions", "model.stripe.int_stripe__incomplete_charges", "model.stripe.stg_stripe__customer"]}, "compiled_path": "target/compiled/stripe/models/stripe__customer_overview.sql", "compiled": true, "compiled_code": "with balance_transaction_joined as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\" \n\n), incomplete_charges as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"int_stripe__incomplete_charges\" \n\n), customer as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\" \n\n), transactions_grouped as (\n\n select\n customer_id,\n source_relation,\n sum(\n case \n when balance_transaction_type in ('charge', 'payment') \n then balance_transaction_amount\n else 0 \n end) \n as total_sales,\n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') \n then balance_transaction_amount\n else 0 \n end) \n as total_refunds, \n sum(balance_transaction_amount) as total_gross_transaction_amount,\n sum(balance_transaction_fee) as total_fees,\n sum(balance_transaction_net) as total_net_transaction_amount,\n sum(\n case \n when balance_transaction_type in ('charge', 'payment') \n then 1\n else 0 \n end) \n as total_sales_count, \n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') \n then 1\n else 0 \n end) \n as total_refund_count, \n sum(\n case \n when balance_transaction_type in ('charge', 'payment') and date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then balance_transaction_amount \n else 0 \n end) \n as sales_this_month,\n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') and date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then balance_transaction_amount \n else 0 \n end) \n as refunds_this_month,\n sum(\n case \n when date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then balance_transaction_amount \n else 0 \n end) \n as gross_transaction_amount_this_month,\n sum(\n case \n when date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then balance_transaction_fee \n else 0 \n end) \n as fees_this_month,\n sum(\n case \n when date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then balance_transaction_net \n else 0 \n end) \n as net_transaction_amount_this_month,\n sum(\n case \n when balance_transaction_type in ('charge', 'payment') and date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then 1 \n else 0 \n end) \n as sales_count_this_month,\n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') and date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then 1 \n else 0 \n end) \n as refund_count_this_month,\n min(\n case \n when balance_transaction_type in ('charge', 'payment') \n then \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)\n else null \n end) \n as first_sale_date,\n max(\n case \n when balance_transaction_type in ('charge', 'payment') \n then \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)\n else null \n end) \n as most_recent_sale_date\n from balance_transaction_joined\n where balance_transaction_type in ('payment', 'charge', 'payment_refund', 'refund')\n group by 1,2\n\n), failed_charges_by_customer as (\n\n select\n customer_id,\n source_relation,\n count(*) as total_failed_charge_count,\n sum(amount) as total_failed_charge_amount,\n sum(\n case \n when date_trunc('month', \n\ndate_trunc('day', \n\n\n created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then 1\n else 0 \n end) \n as failed_charge_count_this_month,\n sum(\n case \n when date_trunc('month', \n\ndate_trunc('day', \n\n\n created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then amount\n else 0 \n end) \n as failed_charge_amount_this_month\n from incomplete_charges\n group by 1,2\n\n), transactions_not_associated_with_customer as (\n\n select\n 'No Customer ID' as customer_id,\n 'No Associated Customer' as customer_description,\n customer.created_at as customer_created_at,\n customer.currency as customer_currency,\n customer.\"account_balance\",\n customer.\"customer_address_city\",\n customer.\"customer_address_country\",\n customer.\"customer_address_line_1\",\n customer.\"customer_address_line_2\",\n customer.\"customer_address_postal_code\",\n customer.\"customer_address_state\",\n customer.\"customer_balance\",\n customer.\"bank_account_id\",\n customer.\"default_card_id\",\n customer.\"is_delinquent\",\n customer.\"email\",\n customer.\"customer_name\",\n customer.\"phone\",\n customer.\"shipping_address_city\",\n customer.\"shipping_address_country\",\n customer.\"shipping_address_line_1\",\n customer.\"shipping_address_line_2\",\n customer.\"shipping_address_postal_code\",\n customer.\"shipping_address_state\",\n customer.\"shipping_name\",\n customer.\"shipping_phone\",\n customer.\"is_deleted\",\n coalesce(transactions_grouped.total_sales, 0) as total_sales,\n coalesce(transactions_grouped.total_refunds, 0) as total_refunds,\n coalesce(transactions_grouped.total_gross_transaction_amount, 0) as total_gross_transaction_amount,\n coalesce(transactions_grouped.total_fees, 0) as total_fees,\n coalesce(transactions_grouped.total_net_transaction_amount, 0) as total_net_transaction_amount,\n coalesce(transactions_grouped.total_sales_count, 0) as total_sales_count,\n coalesce(transactions_grouped.total_refund_count, 0) as total_refund_count, \n coalesce(transactions_grouped.sales_this_month, 0) as sales_this_month,\n coalesce(transactions_grouped.refunds_this_month, 0) as refunds_this_month,\n coalesce(transactions_grouped.gross_transaction_amount_this_month, 0) as gross_transaction_amount_this_month,\n coalesce(transactions_grouped.fees_this_month, 0) as fees_this_month,\n coalesce(transactions_grouped.net_transaction_amount_this_month, 0) as net_transaction_amount_this_month,\n coalesce(transactions_grouped.sales_count_this_month, 0) as sales_count_this_month,\n coalesce(transactions_grouped.refund_count_this_month, 0) as refund_count_this_month,\n transactions_grouped.first_sale_date,\n transactions_grouped.most_recent_sale_date,\n 0 as total_failed_charge_count,\n 0 as total_failed_charge_amount,\n 0 as failed_charge_count_this_month,\n 0 as failed_charge_amount_this_month,\n transactions_grouped.source_relation\n\n from transactions_grouped\n left join customer \n on transactions_grouped.customer_id = customer.customer_id\n and transactions_grouped.source_relation = customer.source_relation\n where customer.customer_id is null and customer.description is null\n\n\n), customer_transactions_overview as (\n\n select\n customer.customer_id,\n customer.description as customer_description,\n customer.created_at as customer_created_at,\n customer.currency as customer_currency,\n customer.\"account_balance\",\n customer.\"customer_address_city\",\n customer.\"customer_address_country\",\n customer.\"customer_address_line_1\",\n customer.\"customer_address_line_2\",\n customer.\"customer_address_postal_code\",\n customer.\"customer_address_state\",\n customer.\"customer_balance\",\n customer.\"bank_account_id\",\n customer.\"default_card_id\",\n customer.\"is_delinquent\",\n customer.\"email\",\n customer.\"customer_name\",\n customer.\"phone\",\n customer.\"shipping_address_city\",\n customer.\"shipping_address_country\",\n customer.\"shipping_address_line_1\",\n customer.\"shipping_address_line_2\",\n customer.\"shipping_address_postal_code\",\n customer.\"shipping_address_state\",\n customer.\"shipping_name\",\n customer.\"shipping_phone\",\n customer.\"is_deleted\",\n coalesce(transactions_grouped.total_sales, 0) as total_sales,\n coalesce(transactions_grouped.total_refunds, 0) as total_refunds,\n coalesce(transactions_grouped.total_gross_transaction_amount, 0) as total_gross_transaction_amount,\n coalesce(transactions_grouped.total_fees, 0) as total_fees,\n coalesce(transactions_grouped.total_net_transaction_amount, 0) as total_net_transaction_amount,\n coalesce(transactions_grouped.total_sales_count, 0) as total_sales_count,\n coalesce(transactions_grouped.total_refund_count, 0) as total_refund_count, \n coalesce(transactions_grouped.sales_this_month, 0) as sales_this_month,\n coalesce(transactions_grouped.refunds_this_month, 0) as refunds_this_month,\n coalesce(transactions_grouped.gross_transaction_amount_this_month, 0) as gross_transaction_amount_this_month,\n coalesce(transactions_grouped.fees_this_month, 0) as fees_this_month,\n coalesce(transactions_grouped.net_transaction_amount_this_month, 0) as net_transaction_amount_this_month,\n coalesce(transactions_grouped.sales_count_this_month, 0) as sales_count_this_month,\n coalesce(transactions_grouped.refund_count_this_month, 0) as refund_count_this_month,\n transactions_grouped.first_sale_date,\n transactions_grouped.most_recent_sale_date,\n coalesce(failed_charges_by_customer.total_failed_charge_count, 0) as total_failed_charge_count,\n coalesce(failed_charges_by_customer.total_failed_charge_amount, 0) as total_failed_charge_amount,\n coalesce(failed_charges_by_customer.failed_charge_count_this_month, 0) as failed_charge_count_this_month,\n coalesce(failed_charges_by_customer.failed_charge_amount_this_month, 0) as failed_charge_amount_this_month,\n customer.source_relation\n\n \n from customer\n left join transactions_grouped\n on customer.customer_id = transactions_grouped.customer_id\n and customer.source_relation = transactions_grouped.source_relation\n left join failed_charges_by_customer \n on customer.customer_id = failed_charges_by_customer.customer_id\n and customer.source_relation = failed_charges_by_customer.source_relation\n)\n\nselect *\nfrom transactions_not_associated_with_customer\nunion all \nselect *\nfrom customer_transactions_overview", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__invoice_line_item_details": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__invoice_line_item_details", "resource_type": "model", "package_name": "stripe", "path": "stripe__invoice_line_item_details.sql", "original_file_path": "models/stripe__invoice_line_item_details.sql", "unique_id": "model.stripe.stripe__invoice_line_item_details", "fqn": ["stripe", "stripe__invoice_line_item_details"], "alias": "stripe__invoice_line_item_details", "checksum": {"name": "sha256", "checksum": "3a5e24b580287404636cb4a546da6146c7119f96b522ac14e951f4fbf5022dea"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Each record represents an invoice line item, enriched with details about the associated invoice, charge, customer, subscription, and pricing data.", "columns": {"invoice_line_item_id": {"name": "invoice_line_item_id", "description": "The unique Identifier of the invoice line object. Note that the same line item can be shown across different invoices, so this value can appear multiple times.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The unique Identifier of the invoice object. Note invoices can have many line items, so this value can appear multiple times.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The ID of the invoice item this item is a part of", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_line_item_amount": {"name": "invoice_line_item_amount", "description": "Amount for this line item. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "currency": {"name": "currency", "description": "Currency of this line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_line_item_memo": {"name": "invoice_line_item_memo", "description": "Description for this line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_discountable": {"name": "is_discountable", "description": "Whether this line item is discountable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "plan_id": {"name": "plan_id", "description": "The ID that documents the plan record detailing the base price, currency, and billing information for each product. Valid if you are using the Plan API.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "price_id": {"name": "price_id", "description": "The ID that documents the price record detailing the base price, currency, and billing information for each product. Valid if you are using the new Prices API.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "proration": {"name": "proration", "description": "Whether this is a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The quantity of the subscription, if the line item is a subscription or a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription that the invoice item pertains to, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_item_id": {"name": "subscription_item_id", "description": "The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "A string identifying the type of the source of this line item, either an invoice item or a subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unique_invoice_line_item_id": {"name": "unique_invoice_line_item_id", "description": "A unique id generated for old invoice line item ID's from a past version of the API", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "period_start": {"name": "period_start", "description": "Start of the usage period during which invoice items were added to this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "period_end": {"name": "period_end", "description": "End of the usage period during which invoice items were added to this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_created_at": {"name": "invoice_created_at", "description": "Timestamp of when the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_status": {"name": "invoice_status", "description": "Current status of the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_due_date": {"name": "invoice_due_date", "description": "Date when payment for the invoice is due.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_amount_due": {"name": "invoice_amount_due", "description": "Final amount due at this time for this invoice. If the invoice\u2019s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "invoice_amount_paid": {"name": "invoice_amount_paid", "description": "The amount, if any, that the customer has paid on the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "invoice_subtotal": {"name": "invoice_subtotal", "description": "The amount of the invoice before discounts and taxes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "invoice_tax": {"name": "invoice_tax", "description": "The amount of tax being charged in the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "invoice_total": {"name": "invoice_total", "description": "The total of the invoice after discounts and taxes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "The ID of the account connected to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The associated customer reference.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_billing": {"name": "subscription_billing", "description": "How the subscription is billed", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_start_date": {"name": "subscription_start_date", "description": "The start date of the subscription", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_ended_at": {"name": "subscription_ended_at", "description": "The end date of the subscription", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "price_plan_is_active": {"name": "price_plan_is_active", "description": "Boolean indicating if the plan or price is active (true) or in-active (false).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "price_plan_amount": {"name": "price_plan_amount", "description": "The unit amount in currency units to be charged, represented as a whole integer if possible. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "price_plan_interval": {"name": "price_plan_interval", "description": "The frequency at which a subscription is billed. One of day, week, month or year.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "price_plan_interval_count": {"name": "price_plan_interval_count", "description": "The number of intervals between subscription billings. For example, interval_count=3 bills every 3 months.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "price_plan_nickname": {"name": "price_plan_nickname", "description": "A brief description of the plan or price, hidden from customers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "price_plan_product_id": {"name": "price_plan_product_id", "description": "Reference to the product this price or plan is about.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.2430394, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__invoice_line_item_details\"", "raw_code": "{{ config(enabled=var('stripe__using_invoices', True)) }}\n\nwith invoice_line_item as (\n\n select *\n from {{ ref('stg_stripe__invoice_line_item') }} \n\n), invoice_details as (\n\n select *\n from {{ ref('stripe__invoice_details') }}\n\n{% if var('stripe__using_subscriptions', True) %}\n), subscription as (\n\n select *\n from {{ ref('stg_stripe__subscription') }} \n\n), price_plan as (\n\n select *\n from {{ ref('stg_stripe__price_plan') }} \n\n{% endif %}\n)\n\nselect \n invoice_line_item.invoice_line_item_id,\n invoice_line_item.invoice_id,\n invoice_line_item.invoice_item_id,\n coalesce(invoice_line_item.amount,0) as invoice_line_item_amount,\n invoice_line_item.currency,\n invoice_line_item.description as invoice_line_item_memo,\n invoice_line_item.is_discountable,\n invoice_line_item.plan_id,\n invoice_line_item.price_id,\n invoice_line_item.proration,\n invoice_line_item.quantity,\n invoice_line_item.subscription_id,\n invoice_line_item.subscription_item_id,\n invoice_line_item.type,\n invoice_line_item.unique_invoice_line_item_id,\n invoice_line_item.period_start,\n invoice_line_item.period_end,\n invoice_details.invoice_created_at,\n invoice_details.status as invoice_status,\n invoice_details.due_date as invoice_due_date,\n coalesce(invoice_details.amount_due,0) as invoice_amount_due,\n coalesce(invoice_details.amount_paid,0) as invoice_amount_paid,\n coalesce(invoice_details.subtotal,0) as invoice_subtotal,\n coalesce(invoice_details.tax,0) as invoice_tax,\n coalesce(invoice_details.total,0) as invoice_total,\n invoice_details.connected_account_id as connected_account_id,\n invoice_details.customer_id as customer_id,\n\n {% if var('stripe__using_subscriptions', True) %}\n\n subscription.billing as subscription_billing,\n subscription.start_date_at as subscription_start_date,\n subscription.ended_at as subscription_ended_at,\n {{ stripe.select_metadata_columns('subscription', 'stripe__subscription_metadata') }}\n price_plan.is_active as price_plan_is_active,\n price_plan.unit_amount as price_plan_amount,\n price_plan.recurring_interval as price_plan_interval,\n price_plan.recurring_interval_count as price_plan_interval_count,\n price_plan.nickname as price_plan_nickname,\n price_plan.product_id as price_plan_product_id,\n {% endif %}\n\n invoice_line_item.source_relation\n \nfrom invoice_line_item\n\nleft join invoice_details \n on invoice_line_item.invoice_id = invoice_details.invoice_id\n and invoice_line_item.source_relation = invoice_details.source_relation\n\n{% if var('stripe__using_subscriptions', True) %}\n\nleft join subscription\n on invoice_line_item.subscription_id = subscription.subscription_id\n and invoice_line_item.source_relation = subscription.source_relation\n\nleft join price_plan\n\n{% if var('stripe__using_price', stripe.does_table_exist('price')=='exists') %}\n on invoice_line_item.price_id = price_plan.price_plan_id\n{% else %}\n on invoice_line_item.plan_id = price_plan.price_plan_id\n{% endif %}\n\n and invoice_line_item.source_relation = price_plan.source_relation\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice_line_item", "package": null, "version": null}, {"name": "stripe__invoice_details", "package": null, "version": null}, {"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "stg_stripe__price_plan", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.select_metadata_columns", "macro.stripe.does_table_exist"], "nodes": ["model.stripe.stg_stripe__invoice_line_item", "model.stripe.stripe__invoice_details", "model.stripe.stg_stripe__subscription", "model.stripe.stg_stripe__price_plan"]}, "compiled_path": "target/compiled/stripe/models/stripe__invoice_line_item_details.sql", "compiled": true, "compiled_code": "\n\nwith invoice_line_item as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\" \n\n), invoice_details as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__invoice_details\"\n\n\n), subscription as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\" \n\n), price_plan as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan\" \n\n\n)\n\nselect \n invoice_line_item.invoice_line_item_id,\n invoice_line_item.invoice_id,\n invoice_line_item.invoice_item_id,\n coalesce(invoice_line_item.amount,0) as invoice_line_item_amount,\n invoice_line_item.currency,\n invoice_line_item.description as invoice_line_item_memo,\n invoice_line_item.is_discountable,\n invoice_line_item.plan_id,\n invoice_line_item.price_id,\n invoice_line_item.proration,\n invoice_line_item.quantity,\n invoice_line_item.subscription_id,\n invoice_line_item.subscription_item_id,\n invoice_line_item.type,\n invoice_line_item.unique_invoice_line_item_id,\n invoice_line_item.period_start,\n invoice_line_item.period_end,\n invoice_details.invoice_created_at,\n invoice_details.status as invoice_status,\n invoice_details.due_date as invoice_due_date,\n coalesce(invoice_details.amount_due,0) as invoice_amount_due,\n coalesce(invoice_details.amount_paid,0) as invoice_amount_paid,\n coalesce(invoice_details.subtotal,0) as invoice_subtotal,\n coalesce(invoice_details.tax,0) as invoice_tax,\n coalesce(invoice_details.total,0) as invoice_total,\n invoice_details.connected_account_id as connected_account_id,\n invoice_details.customer_id as customer_id,\n\n \n\n subscription.billing as subscription_billing,\n subscription.start_date_at as subscription_start_date,\n subscription.ended_at as subscription_ended_at,\n \n price_plan.is_active as price_plan_is_active,\n price_plan.unit_amount as price_plan_amount,\n price_plan.recurring_interval as price_plan_interval,\n price_plan.recurring_interval_count as price_plan_interval_count,\n price_plan.nickname as price_plan_nickname,\n price_plan.product_id as price_plan_product_id,\n \n\n invoice_line_item.source_relation\n \nfrom invoice_line_item\n\nleft join invoice_details \n on invoice_line_item.invoice_id = invoice_details.invoice_id\n and invoice_line_item.source_relation = invoice_details.source_relation\n\n\n\nleft join subscription\n on invoice_line_item.subscription_id = subscription.subscription_id\n and invoice_line_item.source_relation = subscription.source_relation\n\nleft join price_plan\n\n\n on invoice_line_item.price_id = price_plan.price_plan_id\n\n\n and invoice_line_item.source_relation = price_plan.source_relation\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__daily_overview": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__daily_overview", "resource_type": "model", "package_name": "stripe", "path": "stripe__daily_overview.sql", "original_file_path": "models/stripe__daily_overview.sql", "unique_id": "model.stripe.stripe__daily_overview", "fqn": ["stripe", "stripe__daily_overview"], "alias": "stripe__daily_overview", "checksum": {"name": "sha256", "checksum": "5cfb5e901c62a39ebe8c355ad8872832ba1033adb3382e0078ab9642c0e3325d"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Each record represents, per account per day, a summary of daily totals and rolling totals by transaction type (balances, payments, refunds, payouts, and other transactions).", "columns": {"account_id": {"name": "account_id", "description": "The ID of the account tied to the balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "account_daily_id": {"name": "account_daily_id", "description": "A surrogate key made up of account_id and date_day.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "date_day": {"name": "date_day", "description": "Day of record, taken from the date of each balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "date_week": {"name": "date_week", "description": "Week of record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "date_month": {"name": "date_month", "description": "Month of record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "date_year": {"name": "date_year", "description": "Year of record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "date_index": {"name": "date_index", "description": "Index indicating the relative position of the date to all other dates available in this model.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}, "total_daily_sales_amount": {"name": "total_daily_sales_amount", "description": "Total amount for when transaction type is a charge or payment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_refunds_amount": {"name": "total_daily_refunds_amount", "description": "Total amount for when transaction type is payment_refund or refund. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_adjustments_amount": {"name": "total_daily_adjustments_amount", "description": "Total amount for when transaction type is adjustment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_other_transactions_amount": {"name": "total_daily_other_transactions_amount", "description": "Total amount for when transaction type is not of the prior types. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_gross_transaction_amount": {"name": "total_daily_gross_transaction_amount", "description": "Total amount for when transaction type is not payout or transfer \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_net_transactions_amount": {"name": "total_daily_net_transactions_amount", "description": "Total net for when transaction type is not payout or transfer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_payout_fee_amount": {"name": "total_daily_payout_fee_amount", "description": "Total fee for when transaction type is payout or transfer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_gross_payout_amount": {"name": "total_daily_gross_payout_amount", "description": "Total amount for when transaction type is payout or transfer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "daily_net_activity_amount": {"name": "daily_net_activity_amount", "description": "Net amount minus fees from payouts and transfers. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "daily_end_balance_amount": {"name": "daily_end_balance_amount", "description": "daily_net_activity_amount + total_daily_gross_payout_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_sales_count": {"name": "total_daily_sales_count", "description": "Count of total balance transactions where type is payment or charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total_daily_payouts_count": {"name": "total_daily_payouts_count", "description": "Count of total balance transactions where type is payout.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total_daily_adjustments_count": {"name": "total_daily_adjustments_count", "description": "Count of total balance transactions where type is adjustment.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total_daily_failed_charge_count": {"name": "total_daily_failed_charge_count", "description": "Count of incomplete charges.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total_daily_failed_charge_amount": {"name": "total_daily_failed_charge_amount", "description": "Total amount of incomplete charges. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_sales_amount": {"name": "rolling_total_daily_sales_amount", "description": "Rolling total of total_daily_sales_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_refunds_amount": {"name": "rolling_total_daily_refunds_amount", "description": "Rolling total of total_daily_refunds_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_adjustments_amount": {"name": "rolling_total_daily_adjustments_amount", "description": "Rolling total of total_daily_adjustments_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_other_transactions_amount": {"name": "rolling_total_daily_other_transactions_amount", "description": "Rolling total of total_daily_other_transactions_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_gross_transaction_amount": {"name": "rolling_total_daily_gross_transaction_amount", "description": "Rolling total of total_daily_gross_transaction_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_net_transactions_amount": {"name": "rolling_total_daily_net_transactions_amount", "description": "Rolling total of total_daily_net_transactions_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_payout_fee_amount": {"name": "rolling_total_daily_payout_fee_amount", "description": "Rolling total of total_daily_payout_fee_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_gross_payout_amount": {"name": "rolling_total_daily_gross_payout_amount", "description": "Rolling total of total_daily_gross_payout_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_daily_net_activity_amount": {"name": "rolling_daily_net_activity_amount", "description": "Rolling total of daily_net_activity_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_daily_end_balance_amount": {"name": "rolling_daily_end_balance_amount", "description": "Rolling total of daily_end_balance_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_sales_count": {"name": "rolling_total_daily_sales_count", "description": "Rolling total of total_daily_sales_count", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "rolling_total_daily_payouts_count": {"name": "rolling_total_daily_payouts_count", "description": "Rolling total of total_daily_payouts_count", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "rolling_total_daily_adjustments_count": {"name": "rolling_total_daily_adjustments_count", "description": "Rolling total of total_daily_adjustments_count", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "rolling_total_daily_failed_charge_count": {"name": "rolling_total_daily_failed_charge_count", "description": "Rolling total of total_daily_failed_charge_count", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "rolling_total_daily_failed_charge_amount": {"name": "rolling_total_daily_failed_charge_amount", "description": "Rolling total of total_daily_failed_charge_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.2630703, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__daily_overview\"", "raw_code": "{% set rolling_fields = ['rolling_total_daily_sales_amount', 'rolling_total_daily_refunds_amount', 'rolling_total_daily_adjustments_amount', 'rolling_total_daily_other_transactions_amount', 'rolling_total_daily_gross_transaction_amount', 'rolling_total_daily_net_transactions_amount', 'rolling_total_daily_payout_fee_amount', 'rolling_total_daily_gross_payout_amount', 'rolling_daily_net_activity_amount', 'rolling_daily_end_balance_amount', 'rolling_total_daily_sales_count', 'rolling_total_daily_payouts_count', 'rolling_total_daily_adjustments_count', 'rolling_total_daily_failed_charge_count', 'rolling_total_daily_failed_charge_amount'] %}\n\nwith account_partitions as (\n\n select * \n from {{ ref('int_stripe__account_partitions') }}\n),\n\nfinal as (\n\n select\n account_id,\n {{ dbt_utils.generate_surrogate_key(['account_id','date_day']) }} as account_daily_id,\n\n date_day, \n date_week,\n date_month, \n date_year, \n date_index,\n source_relation,\n coalesce(total_daily_sales_amount,0) as total_daily_sales_amount,\n coalesce(total_daily_refunds_amount,0) as total_daily_refunds_amount,\n coalesce(total_daily_adjustments_amount,0) as total_daily_adjustments_amount,\n coalesce(total_daily_other_transactions_amount,0) as total_daily_other_transactions_amount,\n coalesce(total_daily_gross_transaction_amount,0) as total_daily_gross_transaction_amount,\n coalesce(total_daily_net_transactions_amount,0) as total_daily_net_transactions_amount,\n coalesce(total_daily_payout_fee_amount,0) as total_daily_payout_fee_amount,\n coalesce(total_daily_gross_payout_amount,0) as total_daily_gross_payout_amount,\n coalesce(daily_net_activity_amount,0) as daily_net_activity_amount,\n coalesce(daily_end_balance_amount,0) as daily_end_balance_amount,\n coalesce(total_daily_sales_count,0) as total_daily_sales_count,\n coalesce(total_daily_payouts_count,0) as total_daily_payouts_count,\n coalesce(total_daily_adjustments_count,0) as total_daily_adjustments_count,\n coalesce(total_daily_failed_charge_count,0) as total_daily_failed_charge_count,\n coalesce(total_daily_failed_charge_amount,0) as total_daily_failed_charge_amount,\n {% for f in rolling_fields %}\n coalesce({{ f }}, \n first_value({{ f }}) over (partition by {{ f }}_partition order by date_day rows unbounded preceding)) as {{ f }}\n {%- if not loop.last -%},{%- endif -%}\n {% endfor %}\n\n from account_partitions\n) \n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_stripe__account_partitions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.stripe.int_stripe__account_partitions"]}, "compiled_path": "target/compiled/stripe/models/stripe__daily_overview.sql", "compiled": true, "compiled_code": "\n\nwith account_partitions as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"int_stripe__account_partitions\"\n),\n\nfinal as (\n\n select\n account_id,\n md5(cast(coalesce(cast(account_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(date_day as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as account_daily_id,\n\n date_day, \n date_week,\n date_month, \n date_year, \n date_index,\n source_relation,\n coalesce(total_daily_sales_amount,0) as total_daily_sales_amount,\n coalesce(total_daily_refunds_amount,0) as total_daily_refunds_amount,\n coalesce(total_daily_adjustments_amount,0) as total_daily_adjustments_amount,\n coalesce(total_daily_other_transactions_amount,0) as total_daily_other_transactions_amount,\n coalesce(total_daily_gross_transaction_amount,0) as total_daily_gross_transaction_amount,\n coalesce(total_daily_net_transactions_amount,0) as total_daily_net_transactions_amount,\n coalesce(total_daily_payout_fee_amount,0) as total_daily_payout_fee_amount,\n coalesce(total_daily_gross_payout_amount,0) as total_daily_gross_payout_amount,\n coalesce(daily_net_activity_amount,0) as daily_net_activity_amount,\n coalesce(daily_end_balance_amount,0) as daily_end_balance_amount,\n coalesce(total_daily_sales_count,0) as total_daily_sales_count,\n coalesce(total_daily_payouts_count,0) as total_daily_payouts_count,\n coalesce(total_daily_adjustments_count,0) as total_daily_adjustments_count,\n coalesce(total_daily_failed_charge_count,0) as total_daily_failed_charge_count,\n coalesce(total_daily_failed_charge_amount,0) as total_daily_failed_charge_amount,\n \n coalesce(rolling_total_daily_sales_amount, \n first_value(rolling_total_daily_sales_amount) over (partition by rolling_total_daily_sales_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_sales_amount,\n coalesce(rolling_total_daily_refunds_amount, \n first_value(rolling_total_daily_refunds_amount) over (partition by rolling_total_daily_refunds_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_refunds_amount,\n coalesce(rolling_total_daily_adjustments_amount, \n first_value(rolling_total_daily_adjustments_amount) over (partition by rolling_total_daily_adjustments_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_adjustments_amount,\n coalesce(rolling_total_daily_other_transactions_amount, \n first_value(rolling_total_daily_other_transactions_amount) over (partition by rolling_total_daily_other_transactions_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_other_transactions_amount,\n coalesce(rolling_total_daily_gross_transaction_amount, \n first_value(rolling_total_daily_gross_transaction_amount) over (partition by rolling_total_daily_gross_transaction_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_gross_transaction_amount,\n coalesce(rolling_total_daily_net_transactions_amount, \n first_value(rolling_total_daily_net_transactions_amount) over (partition by rolling_total_daily_net_transactions_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_net_transactions_amount,\n coalesce(rolling_total_daily_payout_fee_amount, \n first_value(rolling_total_daily_payout_fee_amount) over (partition by rolling_total_daily_payout_fee_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_payout_fee_amount,\n coalesce(rolling_total_daily_gross_payout_amount, \n first_value(rolling_total_daily_gross_payout_amount) over (partition by rolling_total_daily_gross_payout_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_gross_payout_amount,\n coalesce(rolling_daily_net_activity_amount, \n first_value(rolling_daily_net_activity_amount) over (partition by rolling_daily_net_activity_amount_partition order by date_day rows unbounded preceding)) as rolling_daily_net_activity_amount,\n coalesce(rolling_daily_end_balance_amount, \n first_value(rolling_daily_end_balance_amount) over (partition by rolling_daily_end_balance_amount_partition order by date_day rows unbounded preceding)) as rolling_daily_end_balance_amount,\n coalesce(rolling_total_daily_sales_count, \n first_value(rolling_total_daily_sales_count) over (partition by rolling_total_daily_sales_count_partition order by date_day rows unbounded preceding)) as rolling_total_daily_sales_count,\n coalesce(rolling_total_daily_payouts_count, \n first_value(rolling_total_daily_payouts_count) over (partition by rolling_total_daily_payouts_count_partition order by date_day rows unbounded preceding)) as rolling_total_daily_payouts_count,\n coalesce(rolling_total_daily_adjustments_count, \n first_value(rolling_total_daily_adjustments_count) over (partition by rolling_total_daily_adjustments_count_partition order by date_day rows unbounded preceding)) as rolling_total_daily_adjustments_count,\n coalesce(rolling_total_daily_failed_charge_count, \n first_value(rolling_total_daily_failed_charge_count) over (partition by rolling_total_daily_failed_charge_count_partition order by date_day rows unbounded preceding)) as rolling_total_daily_failed_charge_count,\n coalesce(rolling_total_daily_failed_charge_amount, \n first_value(rolling_total_daily_failed_charge_amount) over (partition by rolling_total_daily_failed_charge_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_failed_charge_amount\n\n from account_partitions\n) \n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__subscription_item_mrr_report": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__subscription_item_mrr_report", "resource_type": "model", "package_name": "stripe", "path": "stripe__subscription_item_mrr_report.sql", "original_file_path": "models/stripe__subscription_item_mrr_report.sql", "unique_id": "model.stripe.stripe__subscription_item_mrr_report", "fqn": ["stripe", "stripe__subscription_item_mrr_report"], "alias": "stripe__subscription_item_mrr_report", "checksum": {"name": "sha256", "checksum": "fae984be29ad0add6d57b072638fbbc13653baf5bf76d00469c034e0fae5f3ad"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Each record represents a subscription item for a given month with monthly recurring revenue (MRR) metrics and movement classification. Tracks MRR changes over time, classifying each month as new, expansion, contraction, churned, reactivation, or unchanged.", "columns": {"source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}, "subscription_item_id": {"name": "subscription_item_id", "description": "Unique identifier for the subscription item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "Unique identifier for the subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the customer who owns the subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "ID of the product associated with this subscription item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "price_plan_id": {"name": "price_plan_id", "description": "ID of the price plan associated with this subscription item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_status": {"name": "subscription_status", "description": "Current status of the subscription. Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_month": {"name": "subscription_month", "description": "Month of the subscription period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_year": {"name": "subscription_year", "description": "Year of the subscription period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "month_contract_mrr": {"name": "month_contract_mrr", "description": "Contracted monthly recurring revenue for this subscription item for this subscription month before discounts are applied. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "month_discount_applied": {"name": "month_discount_applied", "description": "Discount amount applied to this subscription item for this month, allocated proportionally based on the item's share of the subscription's total contracted MRR. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "month_billed_mrr": {"name": "month_billed_mrr", "description": "Net monthly recurring revenue for this subscription item for this subscription month after discounts are applied (month_contract_mrr minus month_discount_applied). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "prior_month_contract_mrr": {"name": "prior_month_contract_mrr", "description": "Contracted monthly recurring revenue for this subscription item for the previous subscription month before discounts are applied. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "item_month_number": {"name": "item_month_number", "description": "Sequential month number for this subscription item, starting from 1 for the first month.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "contract_mrr_type": {"name": "contract_mrr_type", "description": "Classification of the contracted MRR change for this month based on month_contract_mrr. Possible values are new (first month with MRR), expansion (MRR increased), contraction (MRR decreased but still positive), churned (MRR went to zero), reactivation (MRR returned after being zero for at least 3 months), unchanged (MRR stayed the same), or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.2822518, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__subscription_item_mrr_report\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n\n{% if execute and flags.WHICH in ('run', 'build') %}\n\n {%- set first_month_query -%}\n select coalesce(\n min(\n cast(\n {{ dbt.date_trunc(\n 'month',\n \"coalesce(subscription_item.current_period_start, subscription.current_period_start)\" \n ) }} as date\n )\n ),\n cast({{ dbt.dateadd('month', -1, 'current_date') }} as date)\n ) as min_month\n from {{ ref('stg_stripe__subscription_item') }} as subscription_item\n left join {{ ref('stg_stripe__subscription') }} as subscription\n on subscription_item.subscription_id = subscription.subscription_id\n and subscription_item.source_relation = subscription.source_relation\n {%- endset -%}\n\n {# dbt_utils.get_single_value returns a string, so cast it back to date #}\n {% set first_month_pre = dbt_utils.get_single_value(first_month_query) %}\n\n {% set first_month = \"cast('\" ~ first_month_pre ~ \"' as date)\" %}\n {% set last_month = dbt.date_trunc('month', 'current_date') %}\n\n{% else %}\n\n {# Fallback for compile / docs / parsing #}\n {% set first_month = dbt.dateadd('month', -1, 'current_date') %}\n {% set last_month = dbt.date_trunc('month', 'current_date') %}\n\n{% endif %}\n\nwith subscription_item as (\n\n select *\n from {{ ref('stg_stripe__subscription_item') }}\n\n),\n\nsubscription as (\n\n select *,\n row_number() over (partition by subscription_id {{ fivetran_utils.partition_by_source_relation(package_name='stripe') }}\n order by created_at desc) as rn\n from {{ ref('stg_stripe__subscription') }}\n),\n\nsubscription_deduped as (\n\n select *\n from subscription\n where rn = 1\n),\n\n--deduping is necessary in cases where subscription_history table is used, multiple records can exist for the same subscription\n\nprice_plan as (\n\n select *\n from {{ ref('stg_stripe__price_plan') }}\n\n),\n\n{% if var('stripe__using_coupons', True) and var('stripe__using_subscription_discounts', True) %}\nsubscription_discount as (\n\n select *\n from {{ ref('int_stripe__subscription_discount') }}\n\n),\n{% endif %}\n\n\ndate_spine as (\n\n {{ dbt_utils.date_spine(\n datepart = \"month\",\n start_date = first_month,\n end_date = dbt.dateadd(\"month\", 1, last_month)\n ) }}\n\n),\n\n-- Only keep month and year\ndate_dimensions as (\n\n select\n cast(date_month as date) as subscription_month,\n cast({{ dbt.date_trunc('year', 'date_month') }} as date) as subscription_year\n from date_spine\n\n),\n\nbase as (\n\n select\n subscription_item.source_relation,\n subscription_item.subscription_item_id,\n subscription_item.subscription_id,\n subscription.customer_id,\n subscription.status as subscription_status,\n coalesce(subscription_item.current_period_start, subscription.current_period_start) as current_period_start,\n coalesce(subscription_item.current_period_end, subscription.current_period_end) as current_period_end,\n subscription_item.quantity,\n price_plan.product_id,\n price_plan.price_plan_id,\n price_plan.recurring_interval,\n price_plan.recurring_interval_count,\n price_plan.currency,\n price_plan.unit_amount * coalesce(subscription_item.quantity, 1) as amount\n from subscription_item\n left join subscription_deduped as subscription\n on subscription_item.subscription_id = subscription.subscription_id\n and subscription_item.source_relation = subscription.source_relation\n left join price_plan\n on subscription_item.plan_id = price_plan.price_plan_id\n and subscription_item.source_relation = price_plan.source_relation\n\n),\n\nnormalized as (\n select\n source_relation,\n subscription_item_id,\n subscription_id,\n customer_id,\n subscription_status,\n current_period_start,\n current_period_end,\n product_id,\n price_plan_id,\n recurring_interval,\n recurring_interval_count,\n currency,\n amount,\n case\n when lower(recurring_interval) = 'week' then\n {{ dbt_utils.safe_divide(\n \"amount * \" ~ dbt_utils.safe_divide('52', '12'),\n \"coalesce(recurring_interval_count, 1)\"\n ) }}\n\n when lower(recurring_interval) = 'month' then\n {{ dbt_utils.safe_divide(\n \"amount\",\n \"coalesce(recurring_interval_count, 1)\"\n ) }}\n\n when lower(recurring_interval) = 'year' then\n {{ dbt_utils.safe_divide(\n \"amount\",\n \"12 * coalesce(recurring_interval_count, 1)\"\n ) }}\n\n else null\n end as mrr\n from base\n\n),\n\n-- Get distinct subscription items with their earliest and latest periods\n-- Extend the timeline 3 months past the last active period to track churn\nsubscription_item_periods as (\n\n select\n source_relation,\n subscription_item_id,\n subscription_id,\n customer_id,\n product_id,\n price_plan_id,\n subscription_status,\n currency,\n min(cast({{ dbt.date_trunc('month', 'current_period_start') }} as date)) as first_active_month,\n cast({{ dbt.dateadd('month', 3, 'max(cast(' ~ dbt.date_trunc('month', 'current_period_end') ~ ' as date))') }} as date) as last_month_to_track\n from normalized\n {{ dbt_utils.group_by(8) }}\n\n),\n\n-- Create all possible month combinations for each subscription item\nall_item_months as (\n\n select\n subscription_item_periods.source_relation,\n subscription_item_periods.subscription_item_id,\n subscription_item_periods.subscription_id,\n subscription_item_periods.customer_id,\n subscription_item_periods.product_id,\n subscription_item_periods.price_plan_id,\n subscription_item_periods.subscription_status,\n subscription_item_periods.currency,\n date_dimensions.subscription_year,\n date_dimensions.subscription_month\n from subscription_item_periods\n cross join date_dimensions\n where date_dimensions.subscription_month >= subscription_item_periods.first_active_month\n and date_dimensions.subscription_month < subscription_item_periods.last_month_to_track\n\n),\n\n-- Join back to normalized to determine if subscription was active in each month\nitem_months as (\n\n select\n all_item_months.source_relation,\n all_item_months.subscription_item_id,\n all_item_months.subscription_id,\n all_item_months.customer_id,\n all_item_months.product_id,\n all_item_months.price_plan_id,\n all_item_months.subscription_status,\n all_item_months.currency,\n all_item_months.subscription_year,\n all_item_months.subscription_month,\n coalesce(normalized.mrr, 0) as mrr\n from all_item_months\n left join normalized\n on all_item_months.source_relation = normalized.source_relation\n and all_item_months.subscription_item_id = normalized.subscription_item_id\n and all_item_months.price_plan_id = normalized.price_plan_id\n and all_item_months.subscription_month >= cast({{ dbt.date_trunc('month', 'normalized.current_period_start') }} as date)\n and all_item_months.subscription_month < cast({{ dbt.date_trunc('month', 'normalized.current_period_end') }} as date)\n\n),\n\nitem_mrr_by_month as (\n\n select\n source_relation,\n subscription_item_id,\n subscription_id,\n customer_id,\n product_id,\n price_plan_id,\n subscription_status,\n currency,\n subscription_year,\n subscription_month,\n sum(mrr) as month_mrr\n from item_months\n {{ dbt_utils.group_by(10) }}\n\n),\n\nsubscription_billing_cycle as (\n\n select\n normalized.source_relation,\n normalized.subscription_id,\n max(\n case\n when normalized.recurring_interval = 'week' then\n coalesce(normalized.recurring_interval_count, 1) * {{ dbt_utils.safe_divide('52', '12') }}\n when normalized.recurring_interval = 'month' then\n coalesce(normalized.recurring_interval_count, 1)\n when normalized.recurring_interval = 'year' then\n 12 * coalesce(normalized.recurring_interval_count, 1)\n else null\n end\n ) as subscription_cycle_months\n from normalized\n {{ dbt_utils.group_by(2) }}\n\n),\n\nsubscription_month_contracted as (\n\n select\n item_mrr_by_month.source_relation,\n item_mrr_by_month.subscription_id,\n item_mrr_by_month.currency,\n item_mrr_by_month.subscription_month,\n sum(item_mrr_by_month.month_mrr) as subscription_month_contracted_mrr\n from item_mrr_by_month\n {{ dbt_utils.group_by(4) }}\n\n),\n\n{% if var('stripe__using_coupons', True) and var('stripe__using_subscription_discounts', True) %}\nsubscription_month_discount_amount as (\n\n select\n subscription_month_contracted.source_relation,\n subscription_month_contracted.subscription_id,\n subscription_month_contracted.subscription_month,\n subscription_month_contracted.currency,\n subscription_month_contracted.subscription_month_contracted_mrr,\n sum(coalesce(cast(subscription_discount.amount_off as {{ dbt.type_numeric() }}), 0)) as amount_off,\n max(coalesce(cast(subscription_discount.percent_off as {{ dbt.type_numeric() }}), 0)) as percent_off\n from subscription_month_contracted\n left join subscription_discount\n on subscription_month_contracted.source_relation = subscription_discount.source_relation\n and subscription_month_contracted.subscription_id = subscription_discount.subscription_id\n and subscription_month_contracted.subscription_month >= subscription_discount.start_month\n and (\n subscription_discount.end_month is null\n or subscription_month_contracted.subscription_month < subscription_discount.end_month\n )\n {{ dbt_utils.group_by(5) }}\n),\n\nsubscription_month_discount_mrr as (\n\n select\n subscription_month_discount_amount.source_relation,\n subscription_month_discount_amount.subscription_id,\n subscription_month_discount_amount.subscription_month,\n subscription_month_discount_amount.amount_off,\n subscription_month_discount_amount.percent_off,\n\n -- Monthly discount from amount_off (spread across billing cycle)\n {{ dbt_utils.safe_divide(\n \"subscription_month_discount_amount.amount_off\",\n \"coalesce(subscription_billing_cycle.subscription_cycle_months, 1)\"\n ) }} as amount_off_monthly_discount,\n\n -- Monthly discount from percent_off (applies directly to monthly contracted MRR)\n (subscription_month_discount_amount.subscription_month_contracted_mrr\n * {{ dbt_utils.safe_divide(\"subscription_month_discount_amount.percent_off\", \"100\") }}\n ) as percent_off_monthly_discount,\n\n -- Total monthly discount to allocate to items\n (coalesce({{ dbt_utils.safe_divide(\"subscription_month_discount_amount.amount_off\",\n \"coalesce(subscription_billing_cycle.subscription_cycle_months, 1)\") }}, 0)\n + coalesce((subscription_month_discount_amount.subscription_month_contracted_mrr\n * {{ dbt_utils.safe_divide(\"subscription_month_discount_amount.percent_off\", \"100\") }}), 0)\n ) as subscription_month_discount_mrr\n\n from subscription_month_discount_amount\n left join subscription_billing_cycle\n on subscription_month_discount_amount.source_relation = subscription_billing_cycle.source_relation\n and subscription_month_discount_amount.subscription_id = subscription_billing_cycle.subscription_id\n\n),\n{% endif %}\n\nitem_mrr_with_discounts as (\n\n select\n item_mrr_by_month.source_relation,\n item_mrr_by_month.subscription_item_id,\n item_mrr_by_month.subscription_id,\n item_mrr_by_month.customer_id,\n item_mrr_by_month.product_id,\n item_mrr_by_month.price_plan_id,\n item_mrr_by_month.subscription_status,\n item_mrr_by_month.currency,\n item_mrr_by_month.subscription_year,\n item_mrr_by_month.subscription_month,\n item_mrr_by_month.month_mrr as month_contract_mrr,\n\n -- applied discount at item grain (monthly)\n {% if var('stripe__using_coupons', True) and var('stripe__using_subscription_discounts', True) %}\n (\n coalesce(subscription_month_discount_mrr.subscription_month_discount_mrr, 0)\n * {{ dbt_utils.safe_divide(\n \"item_mrr_by_month.month_mrr\",\n \"subscription_month_contracted.subscription_month_contracted_mrr\"\n ) }}\n ) as month_discount_applied,\n {% else %}\n 0 as month_discount_applied,\n {% endif %}\n\n -- net / invoiced monthly MRR at item grain\n {% if var('stripe__using_coupons', True) and var('stripe__using_subscription_discounts', True) %}\n (\n item_mrr_by_month.month_mrr\n - (\n coalesce(subscription_month_discount_mrr.subscription_month_discount_mrr, 0)\n * {{ dbt_utils.safe_divide(\n \"item_mrr_by_month.month_mrr\",\n \"subscription_month_contracted.subscription_month_contracted_mrr\"\n ) }}\n )\n ) as month_billed_mrr\n {% else %}\n item_mrr_by_month.month_mrr as month_billed_mrr\n {% endif %}\n\n from item_mrr_by_month\n left join subscription_month_contracted\n on item_mrr_by_month.source_relation = subscription_month_contracted.source_relation\n and item_mrr_by_month.subscription_id = subscription_month_contracted.subscription_id\n and item_mrr_by_month.currency = subscription_month_contracted.currency\n and item_mrr_by_month.subscription_month = subscription_month_contracted.subscription_month\n {% if var('stripe__using_coupons', True) and var('stripe__using_subscription_discounts', True) %}\n left join subscription_month_discount_mrr\n on item_mrr_by_month.source_relation = subscription_month_discount_mrr.source_relation\n and item_mrr_by_month.subscription_id = subscription_month_discount_mrr.subscription_id\n and item_mrr_by_month.subscription_month = subscription_month_discount_mrr.subscription_month\n {% endif %}\n\n),\n\nlagged as (\n\n select\n item_mrr_with_discounts.source_relation,\n item_mrr_with_discounts.subscription_item_id,\n item_mrr_with_discounts.subscription_id,\n item_mrr_with_discounts.customer_id,\n item_mrr_with_discounts.product_id,\n item_mrr_with_discounts.price_plan_id,\n item_mrr_with_discounts.subscription_status,\n item_mrr_with_discounts.currency,\n item_mrr_with_discounts.subscription_month,\n item_mrr_with_discounts.subscription_year,\n item_mrr_with_discounts.month_contract_mrr,\n item_mrr_with_discounts.month_discount_applied,\n item_mrr_with_discounts.month_billed_mrr,\n lag(item_mrr_with_discounts.month_contract_mrr) over (\n partition by\n item_mrr_with_discounts.source_relation,\n item_mrr_with_discounts.subscription_item_id,\n item_mrr_with_discounts.price_plan_id\n order by\n item_mrr_with_discounts.subscription_year,\n item_mrr_with_discounts.subscription_month\n ) as prior_month_contract_mrr,\n row_number() over (\n partition by\n item_mrr_with_discounts.source_relation,\n item_mrr_with_discounts.subscription_item_id,\n item_mrr_with_discounts.price_plan_id\n order by\n item_mrr_with_discounts.subscription_year,\n item_mrr_with_discounts.subscription_month\n ) as item_month_number\n from item_mrr_with_discounts\n\n),\n\nclassified as (\n\n select\n *,\n case\n when prior_month_contract_mrr is null \n and month_contract_mrr > 0\n then 'new'\n\n when month_contract_mrr > prior_month_contract_mrr\n then 'expansion'\n\n when prior_month_contract_mrr > month_contract_mrr\n and month_contract_mrr > 0\n then 'contraction'\n\n when (month_contract_mrr = 0 or month_contract_mrr is null)\n and prior_month_contract_mrr > 0\n then 'churned'\n\n when prior_month_contract_mrr = 0\n and month_contract_mrr > 0\n and item_month_number >= 3\n then 'reactivation'\n\n when month_contract_mrr = prior_month_contract_mrr\n then 'unchanged'\n\n else 'unknown'\n end as contract_mrr_type\n from lagged\n)\n\nselect *\nfrom classified", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_item", "package": null, "version": null}, {"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "stg_stripe__price_plan", "package": null, "version": null}, {"name": "int_stripe__subscription_discount", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc", "macro.fivetran_utils.partition_by_source_relation", "macro.dbt_utils.date_spine", "macro.dbt_utils.safe_divide", "macro.dbt_utils.group_by", "macro.dbt.type_numeric"], "nodes": ["model.stripe.stg_stripe__subscription_item", "model.stripe.stg_stripe__subscription", "model.stripe.stg_stripe__price_plan", "model.stripe.int_stripe__subscription_discount"]}, "compiled_path": "target/compiled/stripe/models/stripe__subscription_item_mrr_report.sql", "compiled": true, "compiled_code": "\n\n\n\n \n \n \n\n\n\nwith __dbt__cte__int_stripe__subscription_discount as (\n\n\nwith subscription_discount as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_discount\"\n\n),\n\ncoupon as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__coupon\"\n\n),\n\nsubscription_discount_schedule as (\n\n select\n subscription_discount.source_relation,\n subscription_discount.subscription_id,\n subscription_discount.customer_id,\n subscription_discount.coupon_id,\n subscription_discount.start_at,\n subscription_discount.end_at,\n cast(date_trunc('month', subscription_discount.start_at) as date) as start_month,\n coupon.percent_off,\n coupon.amount_off,\n coupon.duration,\n coupon.duration_in_months,\n coupon.currency as coupon_currency\n from subscription_discount\n left join coupon\n on subscription_discount.source_relation = coupon.source_relation\n and subscription_discount.coupon_id = coupon.coupon_id\n where subscription_discount.coupon_id is not null\n and subscription_discount.start_at is not null\n\n),\n\nsubscription_discount_bounds as (\n\n select\n subscription_discount_schedule.*,\n\n case\n when duration = 'forever' then null\n\n when duration = 'once' then\n cast(\n\n date_trunc('month', subscription_discount_schedule.start_at) + ((interval '1 month') * (1))\n\n as date)\n\n when duration = 'repeating' then\n cast(\n\n date_trunc('month', subscription_discount_schedule.start_at) + ((interval '1 month') * (coalesce(subscription_discount_schedule.duration_in_months, 1)))\n\n as date)\n\n else null\n end as end_month\n\n from subscription_discount_schedule\n\n)\n\nselect *\nfrom subscription_discount_bounds\n), subscription_item as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\n\n),\n\nsubscription as (\n\n select *,\n row_number() over (partition by subscription_id \n order by created_at desc) as rn\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\"\n),\n\nsubscription_deduped as (\n\n select *\n from subscription\n where rn = 1\n),\n\n--deduping is necessary in cases where subscription_history table is used, multiple records can exist for the same subscription\n\nprice_plan as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan\"\n\n),\n\n\nsubscription_discount as (\n\n select *\n from __dbt__cte__int_stripe__subscription_discount\n\n),\n\n\n\ndate_spine as (\n\n \n\n\n\n\n\nwith rawdata as (\n\n \n\n \n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n \n p0.generated_number * power(2, 0)\n \n \n + 1\n as generated_number\n\n from\n\n \n p as p0\n \n \n\n )\n\n select *\n from unioned\n where generated_number <= 2.0\n order by generated_number\n\n\n\n),\n\nall_periods as (\n\n select (\n \n\n \n\n current_date + ((interval '1 month') * (-1))\n\n + ((interval '1 month') * (row_number() over (order by generated_number) - 1))\n\n\n ) as date_month\n from rawdata\n\n),\n\nfiltered as (\n\n select *\n from all_periods\n where date_month <= \n\n date_trunc('month', current_date) + ((interval '1 month') * (1))\n\n\n\n)\n\nselect * from filtered\n\n\n\n),\n\n-- Only keep month and year\ndate_dimensions as (\n\n select\n cast(date_month as date) as subscription_month,\n cast(date_trunc('year', date_month) as date) as subscription_year\n from date_spine\n\n),\n\nbase as (\n\n select\n subscription_item.source_relation,\n subscription_item.subscription_item_id,\n subscription_item.subscription_id,\n subscription.customer_id,\n subscription.status as subscription_status,\n coalesce(subscription_item.current_period_start, subscription.current_period_start) as current_period_start,\n coalesce(subscription_item.current_period_end, subscription.current_period_end) as current_period_end,\n subscription_item.quantity,\n price_plan.product_id,\n price_plan.price_plan_id,\n price_plan.recurring_interval,\n price_plan.recurring_interval_count,\n price_plan.currency,\n price_plan.unit_amount * coalesce(subscription_item.quantity, 1) as amount\n from subscription_item\n left join subscription_deduped as subscription\n on subscription_item.subscription_id = subscription.subscription_id\n and subscription_item.source_relation = subscription.source_relation\n left join price_plan\n on subscription_item.plan_id = price_plan.price_plan_id\n and subscription_item.source_relation = price_plan.source_relation\n\n),\n\nnormalized as (\n select\n source_relation,\n subscription_item_id,\n subscription_id,\n customer_id,\n subscription_status,\n current_period_start,\n current_period_end,\n product_id,\n price_plan_id,\n recurring_interval,\n recurring_interval_count,\n currency,\n amount,\n case\n when lower(recurring_interval) = 'week' then\n \n ( amount * \n ( 52 ) / nullif( ( 12 ), 0)\n ) / nullif( ( coalesce(recurring_interval_count, 1) ), 0)\n\n\n when lower(recurring_interval) = 'month' then\n \n ( amount ) / nullif( ( coalesce(recurring_interval_count, 1) ), 0)\n\n\n when lower(recurring_interval) = 'year' then\n \n ( amount ) / nullif( ( 12 * coalesce(recurring_interval_count, 1) ), 0)\n\n\n else null\n end as mrr\n from base\n\n),\n\n-- Get distinct subscription items with their earliest and latest periods\n-- Extend the timeline 3 months past the last active period to track churn\nsubscription_item_periods as (\n\n select\n source_relation,\n subscription_item_id,\n subscription_id,\n customer_id,\n product_id,\n price_plan_id,\n subscription_status,\n currency,\n min(cast(date_trunc('month', current_period_start) as date)) as first_active_month,\n cast(\n\n max(cast(date_trunc('month', current_period_end) as date)) + ((interval '1 month') * (3))\n\n as date) as last_month_to_track\n from normalized\n group by 1,2,3,4,5,6,7,8\n\n),\n\n-- Create all possible month combinations for each subscription item\nall_item_months as (\n\n select\n subscription_item_periods.source_relation,\n subscription_item_periods.subscription_item_id,\n subscription_item_periods.subscription_id,\n subscription_item_periods.customer_id,\n subscription_item_periods.product_id,\n subscription_item_periods.price_plan_id,\n subscription_item_periods.subscription_status,\n subscription_item_periods.currency,\n date_dimensions.subscription_year,\n date_dimensions.subscription_month\n from subscription_item_periods\n cross join date_dimensions\n where date_dimensions.subscription_month >= subscription_item_periods.first_active_month\n and date_dimensions.subscription_month < subscription_item_periods.last_month_to_track\n\n),\n\n-- Join back to normalized to determine if subscription was active in each month\nitem_months as (\n\n select\n all_item_months.source_relation,\n all_item_months.subscription_item_id,\n all_item_months.subscription_id,\n all_item_months.customer_id,\n all_item_months.product_id,\n all_item_months.price_plan_id,\n all_item_months.subscription_status,\n all_item_months.currency,\n all_item_months.subscription_year,\n all_item_months.subscription_month,\n coalesce(normalized.mrr, 0) as mrr\n from all_item_months\n left join normalized\n on all_item_months.source_relation = normalized.source_relation\n and all_item_months.subscription_item_id = normalized.subscription_item_id\n and all_item_months.price_plan_id = normalized.price_plan_id\n and all_item_months.subscription_month >= cast(date_trunc('month', normalized.current_period_start) as date)\n and all_item_months.subscription_month < cast(date_trunc('month', normalized.current_period_end) as date)\n\n),\n\nitem_mrr_by_month as (\n\n select\n source_relation,\n subscription_item_id,\n subscription_id,\n customer_id,\n product_id,\n price_plan_id,\n subscription_status,\n currency,\n subscription_year,\n subscription_month,\n sum(mrr) as month_mrr\n from item_months\n group by 1,2,3,4,5,6,7,8,9,10\n\n),\n\nsubscription_billing_cycle as (\n\n select\n normalized.source_relation,\n normalized.subscription_id,\n max(\n case\n when normalized.recurring_interval = 'week' then\n coalesce(normalized.recurring_interval_count, 1) * \n ( 52 ) / nullif( ( 12 ), 0)\n\n when normalized.recurring_interval = 'month' then\n coalesce(normalized.recurring_interval_count, 1)\n when normalized.recurring_interval = 'year' then\n 12 * coalesce(normalized.recurring_interval_count, 1)\n else null\n end\n ) as subscription_cycle_months\n from normalized\n group by 1,2\n\n),\n\nsubscription_month_contracted as (\n\n select\n item_mrr_by_month.source_relation,\n item_mrr_by_month.subscription_id,\n item_mrr_by_month.currency,\n item_mrr_by_month.subscription_month,\n sum(item_mrr_by_month.month_mrr) as subscription_month_contracted_mrr\n from item_mrr_by_month\n group by 1,2,3,4\n\n),\n\n\nsubscription_month_discount_amount as (\n\n select\n subscription_month_contracted.source_relation,\n subscription_month_contracted.subscription_id,\n subscription_month_contracted.subscription_month,\n subscription_month_contracted.currency,\n subscription_month_contracted.subscription_month_contracted_mrr,\n sum(coalesce(cast(subscription_discount.amount_off as numeric(28,6)), 0)) as amount_off,\n max(coalesce(cast(subscription_discount.percent_off as numeric(28,6)), 0)) as percent_off\n from subscription_month_contracted\n left join subscription_discount\n on subscription_month_contracted.source_relation = subscription_discount.source_relation\n and subscription_month_contracted.subscription_id = subscription_discount.subscription_id\n and subscription_month_contracted.subscription_month >= subscription_discount.start_month\n and (\n subscription_discount.end_month is null\n or subscription_month_contracted.subscription_month < subscription_discount.end_month\n )\n group by 1,2,3,4,5\n),\n\nsubscription_month_discount_mrr as (\n\n select\n subscription_month_discount_amount.source_relation,\n subscription_month_discount_amount.subscription_id,\n subscription_month_discount_amount.subscription_month,\n subscription_month_discount_amount.amount_off,\n subscription_month_discount_amount.percent_off,\n\n -- Monthly discount from amount_off (spread across billing cycle)\n \n ( subscription_month_discount_amount.amount_off ) / nullif( ( coalesce(subscription_billing_cycle.subscription_cycle_months, 1) ), 0)\n as amount_off_monthly_discount,\n\n -- Monthly discount from percent_off (applies directly to monthly contracted MRR)\n (subscription_month_discount_amount.subscription_month_contracted_mrr\n * \n ( subscription_month_discount_amount.percent_off ) / nullif( ( 100 ), 0)\n\n ) as percent_off_monthly_discount,\n\n -- Total monthly discount to allocate to items\n (coalesce(\n ( subscription_month_discount_amount.amount_off ) / nullif( ( coalesce(subscription_billing_cycle.subscription_cycle_months, 1) ), 0)\n, 0)\n + coalesce((subscription_month_discount_amount.subscription_month_contracted_mrr\n * \n ( subscription_month_discount_amount.percent_off ) / nullif( ( 100 ), 0)\n), 0)\n ) as subscription_month_discount_mrr\n\n from subscription_month_discount_amount\n left join subscription_billing_cycle\n on subscription_month_discount_amount.source_relation = subscription_billing_cycle.source_relation\n and subscription_month_discount_amount.subscription_id = subscription_billing_cycle.subscription_id\n\n),\n\n\nitem_mrr_with_discounts as (\n\n select\n item_mrr_by_month.source_relation,\n item_mrr_by_month.subscription_item_id,\n item_mrr_by_month.subscription_id,\n item_mrr_by_month.customer_id,\n item_mrr_by_month.product_id,\n item_mrr_by_month.price_plan_id,\n item_mrr_by_month.subscription_status,\n item_mrr_by_month.currency,\n item_mrr_by_month.subscription_year,\n item_mrr_by_month.subscription_month,\n item_mrr_by_month.month_mrr as month_contract_mrr,\n\n -- applied discount at item grain (monthly)\n \n (\n coalesce(subscription_month_discount_mrr.subscription_month_discount_mrr, 0)\n * \n ( item_mrr_by_month.month_mrr ) / nullif( ( subscription_month_contracted.subscription_month_contracted_mrr ), 0)\n\n ) as month_discount_applied,\n \n\n -- net / invoiced monthly MRR at item grain\n \n (\n item_mrr_by_month.month_mrr\n - (\n coalesce(subscription_month_discount_mrr.subscription_month_discount_mrr, 0)\n * \n ( item_mrr_by_month.month_mrr ) / nullif( ( subscription_month_contracted.subscription_month_contracted_mrr ), 0)\n\n )\n ) as month_billed_mrr\n \n\n from item_mrr_by_month\n left join subscription_month_contracted\n on item_mrr_by_month.source_relation = subscription_month_contracted.source_relation\n and item_mrr_by_month.subscription_id = subscription_month_contracted.subscription_id\n and item_mrr_by_month.currency = subscription_month_contracted.currency\n and item_mrr_by_month.subscription_month = subscription_month_contracted.subscription_month\n \n left join subscription_month_discount_mrr\n on item_mrr_by_month.source_relation = subscription_month_discount_mrr.source_relation\n and item_mrr_by_month.subscription_id = subscription_month_discount_mrr.subscription_id\n and item_mrr_by_month.subscription_month = subscription_month_discount_mrr.subscription_month\n \n\n),\n\nlagged as (\n\n select\n item_mrr_with_discounts.source_relation,\n item_mrr_with_discounts.subscription_item_id,\n item_mrr_with_discounts.subscription_id,\n item_mrr_with_discounts.customer_id,\n item_mrr_with_discounts.product_id,\n item_mrr_with_discounts.price_plan_id,\n item_mrr_with_discounts.subscription_status,\n item_mrr_with_discounts.currency,\n item_mrr_with_discounts.subscription_month,\n item_mrr_with_discounts.subscription_year,\n item_mrr_with_discounts.month_contract_mrr,\n item_mrr_with_discounts.month_discount_applied,\n item_mrr_with_discounts.month_billed_mrr,\n lag(item_mrr_with_discounts.month_contract_mrr) over (\n partition by\n item_mrr_with_discounts.source_relation,\n item_mrr_with_discounts.subscription_item_id,\n item_mrr_with_discounts.price_plan_id\n order by\n item_mrr_with_discounts.subscription_year,\n item_mrr_with_discounts.subscription_month\n ) as prior_month_contract_mrr,\n row_number() over (\n partition by\n item_mrr_with_discounts.source_relation,\n item_mrr_with_discounts.subscription_item_id,\n item_mrr_with_discounts.price_plan_id\n order by\n item_mrr_with_discounts.subscription_year,\n item_mrr_with_discounts.subscription_month\n ) as item_month_number\n from item_mrr_with_discounts\n\n),\n\nclassified as (\n\n select\n *,\n case\n when prior_month_contract_mrr is null \n and month_contract_mrr > 0\n then 'new'\n\n when month_contract_mrr > prior_month_contract_mrr\n then 'expansion'\n\n when prior_month_contract_mrr > month_contract_mrr\n and month_contract_mrr > 0\n then 'contraction'\n\n when (month_contract_mrr = 0 or month_contract_mrr is null)\n and prior_month_contract_mrr > 0\n then 'churned'\n\n when prior_month_contract_mrr = 0\n and month_contract_mrr > 0\n and item_month_number >= 3\n then 'reactivation'\n\n when month_contract_mrr = prior_month_contract_mrr\n then 'unchanged'\n\n else 'unknown'\n end as contract_mrr_type\n from lagged\n)\n\nselect *\nfrom classified", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.stripe.int_stripe__subscription_discount", "sql": " __dbt__cte__int_stripe__subscription_discount as (\n\n\nwith subscription_discount as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_discount\"\n\n),\n\ncoupon as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__coupon\"\n\n),\n\nsubscription_discount_schedule as (\n\n select\n subscription_discount.source_relation,\n subscription_discount.subscription_id,\n subscription_discount.customer_id,\n subscription_discount.coupon_id,\n subscription_discount.start_at,\n subscription_discount.end_at,\n cast(date_trunc('month', subscription_discount.start_at) as date) as start_month,\n coupon.percent_off,\n coupon.amount_off,\n coupon.duration,\n coupon.duration_in_months,\n coupon.currency as coupon_currency\n from subscription_discount\n left join coupon\n on subscription_discount.source_relation = coupon.source_relation\n and subscription_discount.coupon_id = coupon.coupon_id\n where subscription_discount.coupon_id is not null\n and subscription_discount.start_at is not null\n\n),\n\nsubscription_discount_bounds as (\n\n select\n subscription_discount_schedule.*,\n\n case\n when duration = 'forever' then null\n\n when duration = 'once' then\n cast(\n\n date_trunc('month', subscription_discount_schedule.start_at) + ((interval '1 month') * (1))\n\n as date)\n\n when duration = 'repeating' then\n cast(\n\n date_trunc('month', subscription_discount_schedule.start_at) + ((interval '1 month') * (coalesce(subscription_discount_schedule.duration_in_months, 1)))\n\n as date)\n\n else null\n end as end_month\n\n from subscription_discount_schedule\n\n)\n\nselect *\nfrom subscription_discount_bounds\n)"}], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__subscription_details": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__subscription_details", "resource_type": "model", "package_name": "stripe", "path": "stripe__subscription_details.sql", "original_file_path": "models/stripe__subscription_details.sql", "unique_id": "model.stripe.stripe__subscription_details", "fqn": ["stripe", "stripe__subscription_details"], "alias": "stripe__subscription_details", "checksum": {"name": "sha256", "checksum": "636a591f0e63e0a24c585fcff55520c8f5d48c76aa66a3b0e4874da5af97aa3f"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Each record represents a subscription, enriched with customer details and payment aggregations.", "columns": {"subscription_id": {"name": "subscription_id", "description": "Unique identifier for the subscription object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the customer who owns the subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "Description of the customer who owns the subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "Email of the customer who owns the subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "start_date_at": {"name": "start_date_at", "description": "Date when the subscription was first created. The date might differ from the created date due to backdating.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "ended_at": {"name": "ended_at", "description": "If the subscription has ended, the date the subscription ended.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing": {"name": "billing", "description": "How the description is billed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_cycle_anchor": {"name": "billing_cycle_anchor", "description": "Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "canceled_at": {"name": "canceled_at", "description": "If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with cancel_at_period_end, canceled_at will still reflect the date of the initial cancellation request, not the end of the subscription period when the subscription is automatically moved to a canceled state.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the subscription object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "current_period_start": {"name": "current_period_start", "description": "Start of the current period that the subscription has been invoiced for.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "current_period_end": {"name": "current_period_end", "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "days_until_due": {"name": "days_until_due", "description": "Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_cancel_at_period_end": {"name": "is_cancel_at_period_end", "description": "If the subscription has been canceled with the at_period_end flag set to true, cancel_at_period_end on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "cancel_at": {"name": "cancel_at", "description": "A date in the future at which the subscription will automatically get canceled", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "number_invoices_generated": {"name": "number_invoices_generated", "description": "Number of invoices that have been generated for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total_amount_billed": {"name": "total_amount_billed", "description": "The total amount that has been billed to the customer for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_amount_paid": {"name": "total_amount_paid", "description": "The total amount paid by the customer for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_amount_remaining": {"name": "total_amount_remaining", "description": "Any outstanding balance for invoices related to this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "most_recent_invoice_created_at": {"name": "most_recent_invoice_created_at", "description": "The timestamp of the most recent invoice for this subscription created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "average_invoice_amount": {"name": "average_invoice_amount", "description": "The average amount of invoices generated for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "average_line_item_amount": {"name": "average_line_item_amount", "description": "The average sum of the line items for invoices generated for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "avg_num_line_items": {"name": "avg_num_line_items", "description": "The average number of line items for invoices generated for this subscription", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.2500968, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__subscription_details\"", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['stripe__using_invoices','stripe__using_subscriptions'])) }}\n\nwith invoice as (\n\n select *\n from {{ ref('stg_stripe__invoice') }} \n\n), charge as (\n\n select *\n from {{ ref('stg_stripe__charge') }} \n\n), invoice_line_item as (\n\n select *\n from {{ ref('stg_stripe__invoice_line_item') }} \n\n), subscription as (\n\n select *\n from {{ ref('stg_stripe__subscription') }} \n\n), subscription_item as (\n\n select *\n from {{ ref('int_stripe__deduped_subscription_item') }} \n\n), customer as (\n\n select *\n from {{ ref('stg_stripe__customer') }} \n\n), line_items_groups as (\n\n select\n invoice.invoice_id,\n invoice.amount_due,\n invoice.amount_paid,\n invoice.amount_remaining,\n invoice.created_at,\n invoice.source_relation,\n max(invoice_line_item.subscription_id) as subscription_id,\n coalesce(sum(invoice_line_item.amount),0) as total_line_item_amount,\n coalesce(count(distinct invoice_line_item.unique_invoice_line_item_id),0) as number_of_line_items\n from invoice_line_item\n join invoice \n on invoice.invoice_id = invoice_line_item.invoice_id\n group by 1, 2, 3, 4, 5, 6\n\n), grouped_by_subscription as (\n\n select\n subscription_id,\n source_relation,\n count(distinct invoice_id) as number_invoices_generated,\n sum(amount_due) as total_amount_billed,\n sum(amount_paid) as total_amount_paid,\n sum(amount_remaining) total_amount_remaining,\n max(created_at) as most_recent_invoice_created_at,\n avg(amount_due) as average_invoice_amount,\n avg(total_line_item_amount) as average_line_item_amount,\n avg(number_of_line_items) as avg_num_line_items\n from line_items_groups\n group by 1, 2\n\n)\n\n\nselect\n subscription.subscription_id,\n subscription.customer_id,\n customer.description as customer_description,\n customer.email as customer_email,\n {{ stripe.select_metadata_columns('customer', 'stripe__customer_metadata') }}\n subscription.status,\n subscription.start_date_at,\n subscription.ended_at,\n subscription.billing,\n subscription.billing_cycle_anchor,\n subscription.canceled_at,\n subscription.created_at,\n --Newer Stripe connections will store current_period_start/end fields in SUBSCRIPTION_ITEM while older ones house these fields in SUBSCRIPTION_HISTORY -> grab both and coalesce\n coalesce(subscription.current_period_start, subscription_item.current_period_start) as current_period_start,\n coalesce(subscription.current_period_end, subscription_item.current_period_end) as current_period_end,\n subscription.days_until_due,\n subscription.is_cancel_at_period_end,\n subscription.cancel_at,\n {{ stripe.select_metadata_columns('subscription', 'stripe__subscription_metadata') }}\n number_invoices_generated,\n total_amount_billed,\n total_amount_paid,\n total_amount_remaining,\n most_recent_invoice_created_at,\n average_invoice_amount,\n average_line_item_amount,\n avg_num_line_items,\n subscription.source_relation\nfrom subscription\nleft join subscription_item\n on subscription.subscription_id = subscription_item.subscription_id\n and subscription.source_relation = subscription_item.source_relation\nleft join grouped_by_subscription \n on subscription.subscription_id = grouped_by_subscription.subscription_id\n and subscription.source_relation = grouped_by_subscription.source_relation\nleft join customer\n on subscription.customer_id = customer.customer_id\n and subscription.source_relation = customer.source_relation", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice", "package": null, "version": null}, {"name": "stg_stripe__charge", "package": null, "version": null}, {"name": "stg_stripe__invoice_line_item", "package": null, "version": null}, {"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "int_stripe__deduped_subscription_item", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars", "macro.stripe.select_metadata_columns"], "nodes": ["model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__subscription", "model.stripe.int_stripe__deduped_subscription_item", "model.stripe.stg_stripe__customer"]}, "compiled_path": "target/compiled/stripe/models/stripe__subscription_details.sql", "compiled": true, "compiled_code": "\n\nwith __dbt__cte__int_stripe__deduped_subscription_item as (\nwith subscription_item as ( \n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\n\n)\n\n/*\nSUBSCRIPTION_ITEM allows for one-to-many relationships between subscriptions and plans, so we need to dedupe to the subscription_id level\n*/\n\nselect\n subscription_id,\n source_relation,\n min(current_period_start) as current_period_start,\n max(current_period_end) as current_period_end\n \nfrom subscription_item\ngroup by 1, 2\n), invoice as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice\" \n\n), charge as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\" \n\n), invoice_line_item as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\" \n\n), subscription as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\" \n\n), subscription_item as (\n\n select *\n from __dbt__cte__int_stripe__deduped_subscription_item \n\n), customer as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\" \n\n), line_items_groups as (\n\n select\n invoice.invoice_id,\n invoice.amount_due,\n invoice.amount_paid,\n invoice.amount_remaining,\n invoice.created_at,\n invoice.source_relation,\n max(invoice_line_item.subscription_id) as subscription_id,\n coalesce(sum(invoice_line_item.amount),0) as total_line_item_amount,\n coalesce(count(distinct invoice_line_item.unique_invoice_line_item_id),0) as number_of_line_items\n from invoice_line_item\n join invoice \n on invoice.invoice_id = invoice_line_item.invoice_id\n group by 1, 2, 3, 4, 5, 6\n\n), grouped_by_subscription as (\n\n select\n subscription_id,\n source_relation,\n count(distinct invoice_id) as number_invoices_generated,\n sum(amount_due) as total_amount_billed,\n sum(amount_paid) as total_amount_paid,\n sum(amount_remaining) total_amount_remaining,\n max(created_at) as most_recent_invoice_created_at,\n avg(amount_due) as average_invoice_amount,\n avg(total_line_item_amount) as average_line_item_amount,\n avg(number_of_line_items) as avg_num_line_items\n from line_items_groups\n group by 1, 2\n\n)\n\n\nselect\n subscription.subscription_id,\n subscription.customer_id,\n customer.description as customer_description,\n customer.email as customer_email,\n \n subscription.status,\n subscription.start_date_at,\n subscription.ended_at,\n subscription.billing,\n subscription.billing_cycle_anchor,\n subscription.canceled_at,\n subscription.created_at,\n --Newer Stripe connections will store current_period_start/end fields in SUBSCRIPTION_ITEM while older ones house these fields in SUBSCRIPTION_HISTORY -> grab both and coalesce\n coalesce(subscription.current_period_start, subscription_item.current_period_start) as current_period_start,\n coalesce(subscription.current_period_end, subscription_item.current_period_end) as current_period_end,\n subscription.days_until_due,\n subscription.is_cancel_at_period_end,\n subscription.cancel_at,\n \n number_invoices_generated,\n total_amount_billed,\n total_amount_paid,\n total_amount_remaining,\n most_recent_invoice_created_at,\n average_invoice_amount,\n average_line_item_amount,\n avg_num_line_items,\n subscription.source_relation\nfrom subscription\nleft join subscription_item\n on subscription.subscription_id = subscription_item.subscription_id\n and subscription.source_relation = subscription_item.source_relation\nleft join grouped_by_subscription \n on subscription.subscription_id = grouped_by_subscription.subscription_id\n and subscription.source_relation = grouped_by_subscription.source_relation\nleft join customer\n on subscription.customer_id = customer.customer_id\n and subscription.source_relation = customer.source_relation", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.stripe.int_stripe__deduped_subscription_item", "sql": " __dbt__cte__int_stripe__deduped_subscription_item as (\nwith subscription_item as ( \n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\n\n)\n\n/*\nSUBSCRIPTION_ITEM allows for one-to-many relationships between subscriptions and plans, so we need to dedupe to the subscription_id level\n*/\n\nselect\n subscription_id,\n source_relation,\n min(current_period_start) as current_period_start,\n max(current_period_end) as current_period_end\n \nfrom subscription_item\ngroup by 1, 2\n)"}], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__balance_transactions": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__balance_transactions", "resource_type": "model", "package_name": "stripe", "path": "stripe__balance_transactions.sql", "original_file_path": "models/stripe__balance_transactions.sql", "unique_id": "model.stripe.stripe__balance_transactions", "fqn": ["stripe", "stripe__balance_transactions"], "alias": "stripe__balance_transactions", "checksum": {"name": "sha256", "checksum": "476039b377fe7f896625f1956bc48f519456051e4ea3ce5115524afca15bab41"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Each record represents a change to your account balance, enriched with data about the transaction.", "columns": {"balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_created_at": {"name": "balance_transaction_created_at", "description": "When the transaction took place", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_available_on": {"name": "balance_transaction_available_on", "description": "The date the transaction\u2019s net funds will become available in the Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_currency": {"name": "balance_transaction_currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_amount": {"name": "balance_transaction_amount", "description": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "balance_transaction_fee": {"name": "balance_transaction_fee", "description": "Fees (in currency units) paid for this transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_net": {"name": "balance_transaction_net", "description": "Net amount of the transaction. Gross amount minus fees, refunds, and disputes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "balance_transaction_type": {"name": "balance_transaction_type", "description": "The type of transaction. Possible values are adjustment, advance, advance_funding, application_fee, application_fee_refund, charge, connect_collection_transfer, issuing_authorization_hold, issuing_authorization_release, issuing_dispute, issuing_transaction, payment, payment_failure_refund, payment_refund, payout, payout_cancel, payout_failure, refund, refund_failure, reserve_transaction, reserved_funds, stripe_fee, stripe_fx_fee, tax_fee, topup, topup_reversal, transfer, transfer_cancel, transfer_failure, or transfer_refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_reporting_category": {"name": "balance_transaction_reporting_category", "description": "Groupings of transactions types based on how they show in Stripe's reporting", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_source_id": {"name": "balance_transaction_source_id", "description": "The Stripe object to which this transaction is related.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_description": {"name": "balance_transaction_description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_facing_amount": {"name": "customer_facing_amount", "description": "The transaction amount that the customer sees. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "customer_facing_currency": {"name": "customer_facing_currency", "description": "Three-letter ISO currency code that the customer sees.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "effective_at": {"name": "effective_at", "description": "calendar day after available_at", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "automatic_payout_id": {"name": "automatic_payout_id", "description": "(Applies only to accounts on automatic payouts.) The unique ID for the associated payout.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_currency": {"name": "payout_currency", "description": "Three-letter ISO currency code of the payout, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_created_at": {"name": "payout_created_at", "description": "Time at which the payout record was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_is_automatic": {"name": "payout_is_automatic", "description": "True if the payout was created by an automated payout schedule, and false if it was requested manually.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_arrival_date_at": {"name": "payout_arrival_date_at", "description": "Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "automatic_payout_effective_at": {"name": "automatic_payout_effective_at", "description": "The date we expect this automatic payout to arrive in your bank account, in UTC. This is also when the paid-out funds are deducted from your Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "destination_bank_account_id": {"name": "destination_bank_account_id", "description": "ID of the bank account the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "destination_card_id": {"name": "destination_card_id", "description": "ID of the card the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The customer associated with the balance transaction (based on charge or refund details)", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "The customer\u2019s email address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "receipt_email": {"name": "receipt_email", "description": "The email the receipt was emailed to for this transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "The description field associated with the customer", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_city": {"name": "customer_shipping_address_city", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_country": {"name": "customer_shipping_address_country", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_line_1": {"name": "customer_shipping_address_line_1", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_line_2": {"name": "customer_shipping_address_line_2", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_postal_code": {"name": "customer_shipping_address_postal_code", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_state": {"name": "customer_shipping_address_state", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_city": {"name": "customer_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.city"]}, "customer_address_country": {"name": "customer_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.country"]}, "customer_address_line_1": {"name": "customer_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.line_1"]}, "customer_address_line_2": {"name": "customer_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.line_2"]}, "customer_address_postal_code": {"name": "customer_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.postal_code"]}, "customer_address_state": {"name": "customer_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.state"]}, "charge_id": {"name": "charge_id", "description": "The id of the charge associated with the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_shipping_address_city": {"name": "charge_shipping_address_city", "description": "City, district, suburb, town, or village belonging to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_shipping_address_country": {"name": "charge_shipping_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2) belonging to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_shipping_address_line_1": {"name": "charge_shipping_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name) belonging to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_shipping_address_line_2": {"name": "charge_shipping_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building) belonging to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_shipping_address_postal_code": {"name": "charge_shipping_address_postal_code", "description": "ZIP or postal code belonging to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_shipping_address_state": {"name": "charge_shipping_address_state", "description": "State, county, province, or region belonging to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "The id of the payment intent associated with the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_created_at": {"name": "charge_created_at", "description": "Timestamp of the charge object associated with the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_method_type": {"name": "payment_method_type", "description": "The id of the payment method type associated with the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_method_brand": {"name": "payment_method_brand", "description": "Card brand used for the payment method. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_method_funding": {"name": "payment_method_funding", "description": "Card funding type for the payment method. Can be credit, debit, prepaid, or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_city": {"name": "card_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.city"]}, "card_address_country": {"name": "card_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.country"]}, "card_address_line_1": {"name": "card_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.line_1"]}, "card_address_line_2": {"name": "card_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.line_2"]}, "card_address_state": {"name": "card_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.state"]}, "card_address_postal_code": {"name": "card_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.postal_code"]}, "card_brand": {"name": "card_brand", "description": "The brand of the card associated with the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_funding": {"name": "card_funding", "description": "Card funding type. Can be credit, debit, prepaid, or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_country": {"name": "card_country", "description": "The country the card was issued in.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_id": {"name": "payout_id", "description": "ID for the payout associated with this balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_status": {"name": "payout_status", "description": "Current status of the payout. Can be paid, pending, in_transit, canceled or failed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_type": {"name": "payout_type", "description": "Whether the payout was to a bank_account or card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_description": {"name": "payout_description", "description": "An arbitrary string attached to the payout. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "refund_reason": {"name": "refund_reason", "description": "Reason for the refund, either user-provided (duplicate, fraudulent, or requested_by_customer) or generated by Stripe internally (expired_uncaptured_charge).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The ID of the invoice this record is a part of.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_number": {"name": "invoice_number", "description": "The number of the invoice associated with this record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription is associated with this record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_statement_descriptor": {"name": "charge_statement_descriptor", "description": "Extra information about a source. This will appear on your customer\u2019s statement every time you charge the source.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "dispute_ids": {"name": "dispute_ids", "description": "Unique identifiers for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "dispute_reasons": {"name": "dispute_reasons", "description": "Reasons given by cardholder for dispute. Possible values are bank_cannot_process, check_returned, credit_not_processed, customer_initiated, debit_not_authorized, duplicate, fraudulent, general, incorrect_account_details, insufficient_funds, product_not_received, product_unacceptable, subscription_canceled, or unrecognized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "refund_id": {"name": "refund_id", "description": "ID of the refund associated with this record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transfer_id": {"name": "transfer_id", "description": "ID of the transfer associated with this record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "The ID of the account connected to the transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_country": {"name": "connected_account_country", "description": "The country of the account connected to the transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_direct_charge_id": {"name": "connected_account_direct_charge_id", "description": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}, "latest_dispute_amount_won": {"name": "latest_dispute_amount_won", "description": "Latest disputed amount that was won in favor of the merchant. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "latest_dispute_amount_lost": {"name": "latest_dispute_amount_lost", "description": "Latest disputed amount that was lost and returned to the customer. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "latest_dispute_amount_under_review": {"name": "latest_dispute_amount_under_review", "description": "Latest disputed amount that is currently under review by the bank. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "latest_dispute_amount_needs_response": {"name": "latest_dispute_amount_needs_response", "description": "Latest disputed amount that currently needs a response (the dispute has been filed but the merchant has not yet responded with evidence). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "latest_dispute_amount_warning_closed": {"name": "latest_dispute_amount_warning_closed", "description": "Latest disputed amount that is currently of status `warning_under_closed` (early fraud warning being closed due to no formal dispute). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "latest_dispute_amount_warning_under_review": {"name": "latest_dispute_amount_warning_under_review", "description": "Latest disputed amount that is currently of status `warning_under_review` (card issuer suspects possible fraud but hasn't yet escalated the situation to a full dispute). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "latest_dispute_amount_warning_needs_response": {"name": "latest_dispute_amount_warning_needs_response", "description": "Latest disputed amount that is currently of status `warning_needs_response` (early fraud warning has been escalated into formal dispute or card issuer has requested more information). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "dispute_count": {"name": "dispute_count", "description": "Count of disputes raised against this transaction. If > 1, join in `dispute` data for additional information on each dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_balance_transaction_is_current": {"name": "payout_balance_transaction_is_current", "description": "Boolean if the current record matches the most recent balance_transaction_id recorded in the corresponding PAYOUT.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.2100923, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"", "raw_code": "with balance_transaction as (\n\n select *\n from {{ ref('stg_stripe__balance_transaction') }}\n\n), account as (\n\n select *\n from {{ ref('stg_stripe__account') }}\n\n), cards as (\n\n select *\n from {{ ref('stg_stripe__card') }}\n\n), charge as (\n\n select *\n from {{ ref('stg_stripe__charge') }}\n\n), customer as (\n\n select *\n from {{ ref('stg_stripe__customer') }}\n\n), dispute as (\n\n select *\n from {{ ref('stg_stripe__dispute') }}\n\n{% if var('stripe__using_invoices', True) %}\n), invoice as (\n\n select *\n from {{ ref('stg_stripe__invoice') }}\n\n{% endif %}\n\n), payment_intent as (\n \n select *\n from {{ ref('stg_stripe__payment_intent') }}\n\n{% if var('stripe__using_payment_method', True) %}\n), payment_method as (\n \n select *\n from {{ ref('stg_stripe__payment_method') }}\n\n), payment_method_card as (\n\n select *\n from {{ ref('stg_stripe__payment_method_card') }}\n\n{% endif %}\n\n{% if var('stripe__using_payouts', True) %}\n), payout as (\n\n select *\n from {{ ref('stg_stripe__payout') }}\n\n), payout_balance_transaction as (\n\n select *\n from {{ ref('stg_stripe__payout_balance_transaction') }}\n\n), payout_balance_transaction_unified as (\n -- Create a unified mapping table to bridge records without mapping.\n select\n balance_transaction.source_relation,\n balance_transaction.balance_transaction_id,\n coalesce(payout_balance_transaction.payout_id, payout.payout_id) as payout_id\n from balance_transaction\n\n left join payout_balance_transaction\n on payout_balance_transaction.balance_transaction_id = balance_transaction.balance_transaction_id\n and payout_balance_transaction.source_relation = balance_transaction.source_relation\n left join payout\n on payout.balance_transaction_id = balance_transaction.balance_transaction_id\n and payout.source_relation = balance_transaction.source_relation\n\n{% endif %}\n\n), refund as (\n \n select *\n from {{ ref('stg_stripe__refund') }}\n\n{% if var('stripe__using_subscriptions', True) %}\n), subscription as (\n\n select *\n from {{ ref('stg_stripe__subscription') }}\n\n{% endif %}\n\n{% if var('stripe__using_transfers', True) %}\n), transfers as (\n\n select *\n from {{ ref('stg_stripe__transfer') }}\n\n{% endif %}\n\n), dispute_summary as (\n /* Although rare, payments can be disputed multiple times. \n Hence, we need to aggregate the disputes to get the total disputed amount.\n */\n select\n charge_id,\n source_relation,\n {{ fivetran_utils.string_agg('dispute_id', \"','\")}} as dispute_ids,\n {{ fivetran_utils.string_agg('distinct dispute_reason', \"','\")}} as dispute_reasons,\n count(dispute_id) as dispute_count\n from dispute\n group by 1,2\n\n), order_disputes as (\n\n select \n charge_id,\n source_relation,\n dispute_id,\n dispute_status,\n dispute_amount,\n row_number() over (partition by charge_id, dispute_status {{ fivetran_utils.partition_by_source_relation(package_name='stripe') }} order by dispute_created_at desc) = 1 as is_latest_status_dispute,\n row_number() over (partition by charge_id {{ fivetran_utils.partition_by_source_relation(package_name='stripe') }} order by dispute_created_at desc, dispute_amount desc) = 1 as is_absolute_latest_dispute -- include dispute_amount desc in off chance of identical dispute_created_ats \n from dispute \n\n), latest_disputes as (\n\n select \n charge_id,\n source_relation,\n -- Iterate over each type of possible status (according https://docs.stripe.com/api/disputes/object) and pull out the dispute_amount from the latest dispute\n {% for status in ['won', 'lost', 'under_review', 'needs_response', 'warning_closed', 'warning_under_review', 'warning_needs_response'] %}\n sum(case when lower(dispute_status) = '{{ status }}' then dispute_amount else 0 end) as latest_dispute_amount_{{ status }},\n {% endfor %}\n -- For the customer_facing_amount fields, pull out the generally latest dispute_amount\n sum(case when is_absolute_latest_dispute then dispute_amount else 0 end) as latest_dispute_amount\n\n from order_disputes \n where is_latest_status_dispute\n group by 1,2\n)\n\nselect\n balance_transaction.balance_transaction_id,\n balance_transaction.created_at as balance_transaction_created_at,\n balance_transaction.available_on as balance_transaction_available_on,\n balance_transaction.currency as balance_transaction_currency,\n balance_transaction.amount as balance_transaction_amount,\n balance_transaction.fee as balance_transaction_fee,\n balance_transaction.net as balance_transaction_net,\n balance_transaction.source as balance_transaction_source_id,\n balance_transaction.description as balance_transaction_description,\n balance_transaction.type as balance_transaction_type,\n coalesce(balance_transaction.reporting_category,\n case\n when balance_transaction.type in ('charge', 'payment') then 'charge'\n when balance_transaction.type in ('refund', 'payment_refund') then 'refund'\n when balance_transaction.type in ('payout_cancel', 'payout_failure') then 'payout_reversal'\n when balance_transaction.type in ('transfer', 'recipient_transfer') then 'transfer'\n when balance_transaction.type in ('transfer_cancel', 'transfer_failure', 'recipient_transfer_cancel', 'recipient_transfer_failure') then 'transfer_reversal'\n else balance_transaction.type end)\n as balance_transaction_reporting_category,\n case\n when balance_transaction.type in ('charge', 'payment') then charge.amount \n when balance_transaction.type in ('refund', 'payment_refund') then refund.amount\n when dispute_ids is not null then latest_disputes.latest_dispute_amount\n else null\n end as customer_facing_amount,\n case \n when balance_transaction.type = 'charge' then charge.currency \n end as customer_facing_currency,\n latest_disputes.latest_dispute_amount_won,\n latest_disputes.latest_dispute_amount_lost,\n latest_disputes.latest_dispute_amount_under_review,\n latest_disputes.latest_dispute_amount_needs_response,\n latest_disputes.latest_dispute_amount_warning_closed,\n latest_disputes.latest_dispute_amount_warning_under_review,\n latest_disputes.latest_dispute_amount_warning_needs_response,\n {{ dbt.dateadd('day', 1, 'balance_transaction.available_on') }} as effective_at,\n {% if var('stripe__using_payouts', True) %}\n case\n when payout.is_automatic = true then payout.payout_id\n else null\n end as automatic_payout_id,\n payout.payout_id,\n payout.created_at as payout_created_at,\n payout.currency as payout_currency,\n payout.is_automatic as payout_is_automatic,\n payout.arrival_date_at as payout_arrival_date_at,\n case\n when payout.is_automatic = true then payout.arrival_date_at\n else null\n end as automatic_payout_effective_at,\n payout.type as payout_type,\n payout.status as payout_status,\n payout.description as payout_description,\n payout.destination_bank_account_id,\n payout.destination_card_id,\n -- Checks if this balance transaction matches the most recent balance_transaction_id recorded in PAYOUT.\n payout_balance_transaction_unified.balance_transaction_id = payout.balance_transaction_id as payout_balance_transaction_is_current,\n {% endif %}\n coalesce(charge.customer_id, refund_charge.customer_id) as customer_id,\n charge.receipt_email,\n customer.email as customer_email,\n customer.customer_name,\n customer.description as customer_description,\n customer.shipping_address_line_1 as customer_shipping_address_line_1,\n customer.shipping_address_line_2 as customer_shipping_address_line_2,\n customer.shipping_address_city as customer_shipping_address_city,\n customer.shipping_address_state as customer_shipping_address_state,\n customer.shipping_address_postal_code as customer_shipping_address_postal_code,\n customer.shipping_address_country as customer_shipping_address_country,\n customer.customer_address_line_1,\n customer.customer_address_line_2,\n customer.customer_address_city,\n customer.customer_address_state,\n customer.customer_address_postal_code,\n customer.customer_address_country,\n {{ stripe.select_metadata_columns('customer', 'stripe__customer_metadata') }}\n charge.shipping_address_line_1 as charge_shipping_address_line_1,\n charge.shipping_address_line_2 as charge_shipping_address_line_2,\n charge.shipping_address_city as charge_shipping_address_city,\n charge.shipping_address_state as charge_shipping_address_state,\n charge.shipping_address_postal_code as charge_shipping_address_postal_code,\n charge.shipping_address_country as charge_shipping_address_country,\n cards.card_address_line_1,\n cards.card_address_line_2,\n cards.card_address_city,\n cards.card_address_state,\n cards.card_address_postal_code,\n cards.card_address_country,\n coalesce(charge.charge_id, refund.charge_id, dispute_summary.charge_id) as charge_id,\n charge.created_at as charge_created_at,\n {{ stripe.select_metadata_columns('charge', 'stripe__charge_metadata') }}\n payment_intent.payment_intent_id,\n\n {% if var('stripe__using_invoices', True) %}\n invoice.invoice_id,\n invoice.number as invoice_number,\n {{ stripe.select_metadata_columns('invoice', 'stripe__invoice_metadata') }}\n {% endif %}\n\n {% if var('stripe__using_subscriptions', True) %}\n subscription.subscription_id,\n {{ stripe.select_metadata_columns('subscription', 'stripe__subscription_metadata') }}\n {% endif %}\n\n {% if var('stripe__using_payment_method', True) %}\n payment_method.type as payment_method_type,\n payment_method_card.brand as payment_method_brand,\n payment_method_card.funding as payment_method_funding,\n {% endif %}\n\n cards.brand as card_brand,\n cards.funding as card_funding,\n cards.country as card_country,\n charge.statement_descriptor as charge_statement_descriptor,\n dispute_summary.dispute_ids,\n dispute_summary.dispute_reasons,\n dispute_summary.dispute_count,\n refund.refund_id,\n refund.reason as refund_reason,\n\n {% if var('stripe__using_transfers', True) %}\n transfers.transfer_id,\n {% endif %}\n \n coalesce(balance_transaction.connected_account_id, charge.connected_account_id) as connected_account_id,\n connected_account.country as connected_account_country,\n case \n when charge.connected_account_id is not null then charge.charge_id\n else null\n end as connected_account_direct_charge_id,\n balance_transaction.source_relation\n\nfrom balance_transaction\n\n{% if var('stripe__using_payouts', True) %}\nleft join payout_balance_transaction_unified\n on payout_balance_transaction_unified.balance_transaction_id = balance_transaction.balance_transaction_id\n and payout_balance_transaction_unified.source_relation = balance_transaction.source_relation\nleft join payout\n on payout.payout_id = payout_balance_transaction_unified.payout_id\n and payout.source_relation = payout_balance_transaction_unified.source_relation\n{% endif %}\n\nleft join account connected_account\n on balance_transaction.connected_account_id = connected_account.account_id\n and balance_transaction.source_relation = connected_account.source_relation\nleft join charge\n on charge.balance_transaction_id = balance_transaction.balance_transaction_id\n and charge.source_relation = balance_transaction.source_relation\nleft join customer \n on charge.customer_id = customer.customer_id\n and charge.source_relation = customer.source_relation\nleft join cards\n on charge.card_id = cards.card_id\n and charge.source_relation = cards.source_relation\nleft join payment_intent\n on charge.payment_intent_id = payment_intent.payment_intent_id\n and charge.source_relation = payment_intent.source_relation\n\n{% if var('stripe__using_payment_method', True) %}\nleft join payment_method\n on charge.payment_method_id = payment_method.payment_method_id\n and charge.source_relation = payment_method.source_relation\nleft join payment_method_card \n on payment_method_card.payment_method_id = payment_method.payment_method_id\n and charge.source_relation = balance_transaction.source_relation\n{% endif %}\n\n{% if var('stripe__using_invoices', True) %}\nleft join invoice \n on charge.invoice_id = invoice.invoice_id\n and charge.source_relation = invoice.source_relation\n{% endif %}\n\n{% if var('stripe__using_subscriptions', True) %}\nleft join subscription\n on subscription.latest_invoice_id = charge.invoice_id\n and subscription.source_relation = charge.source_relation\n{% endif %}\n\nleft join refund\n on refund.balance_transaction_id = balance_transaction.balance_transaction_id\n and refund.source_relation = balance_transaction.source_relation\n\n{% if var('stripe__using_transfers', True) %}\nleft join transfers\n on transfers.balance_transaction_id = balance_transaction.balance_transaction_id\n and transfers.source_relation = balance_transaction.source_relation\n{% endif %}\n\nleft join charge as refund_charge \n on refund.charge_id = refund_charge.charge_id\n and refund.source_relation = refund_charge.source_relation\nleft join dispute_summary\n on charge.charge_id = dispute_summary.charge_id\n and charge.source_relation = dispute_summary.source_relation\nleft join latest_disputes\n on charge.charge_id = latest_disputes.charge_id\n and charge.source_relation = latest_disputes.source_relation", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__balance_transaction", "package": null, "version": null}, {"name": "stg_stripe__account", "package": null, "version": null}, {"name": "stg_stripe__card", "package": null, "version": null}, {"name": "stg_stripe__charge", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}, {"name": "stg_stripe__dispute", "package": null, "version": null}, {"name": "stg_stripe__invoice", "package": null, "version": null}, {"name": "stg_stripe__payment_intent", "package": null, "version": null}, {"name": "stg_stripe__payment_method", "package": null, "version": null}, {"name": "stg_stripe__payment_method_card", "package": null, "version": null}, {"name": "stg_stripe__payout", "package": null, "version": null}, {"name": "stg_stripe__payout_balance_transaction", "package": null, "version": null}, {"name": "stg_stripe__refund", "package": null, "version": null}, {"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "stg_stripe__transfer", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.string_agg", "macro.fivetran_utils.partition_by_source_relation", "macro.dbt.dateadd", "macro.stripe.select_metadata_columns"], "nodes": ["model.stripe.stg_stripe__balance_transaction", "model.stripe.stg_stripe__account", "model.stripe.stg_stripe__card", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__customer", "model.stripe.stg_stripe__dispute", "model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__payment_intent", "model.stripe.stg_stripe__payment_method", "model.stripe.stg_stripe__payment_method_card", "model.stripe.stg_stripe__payout", "model.stripe.stg_stripe__payout_balance_transaction", "model.stripe.stg_stripe__refund", "model.stripe.stg_stripe__subscription", "model.stripe.stg_stripe__transfer"]}, "compiled_path": "target/compiled/stripe/models/stripe__balance_transactions.sql", "compiled": true, "compiled_code": "with balance_transaction as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__balance_transaction\"\n\n), account as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__account\"\n\n), cards as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__card\"\n\n), charge as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\"\n\n), customer as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\"\n\n), dispute as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__dispute\"\n\n\n), invoice as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice\"\n\n\n\n), payment_intent as (\n \n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_intent\"\n\n\n), payment_method as (\n \n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method\"\n\n), payment_method_card as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_card\"\n\n\n\n\n), payout as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payout\"\n\n), payout_balance_transaction as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payout_balance_transaction\"\n\n), payout_balance_transaction_unified as (\n -- Create a unified mapping table to bridge records without mapping.\n select\n balance_transaction.source_relation,\n balance_transaction.balance_transaction_id,\n coalesce(payout_balance_transaction.payout_id, payout.payout_id) as payout_id\n from balance_transaction\n\n left join payout_balance_transaction\n on payout_balance_transaction.balance_transaction_id = balance_transaction.balance_transaction_id\n and payout_balance_transaction.source_relation = balance_transaction.source_relation\n left join payout\n on payout.balance_transaction_id = balance_transaction.balance_transaction_id\n and payout.source_relation = balance_transaction.source_relation\n\n\n\n), refund as (\n \n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__refund\"\n\n\n), subscription as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\"\n\n\n\n\n), transfers as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__transfer\"\n\n\n\n), dispute_summary as (\n /* Although rare, payments can be disputed multiple times. \n Hence, we need to aggregate the disputes to get the total disputed amount.\n */\n select\n charge_id,\n source_relation,\n \n string_agg(dispute_id, ',')\n\n as dispute_ids,\n \n string_agg(distinct dispute_reason, ',')\n\n as dispute_reasons,\n count(dispute_id) as dispute_count\n from dispute\n group by 1,2\n\n), order_disputes as (\n\n select \n charge_id,\n source_relation,\n dispute_id,\n dispute_status,\n dispute_amount,\n row_number() over (partition by charge_id, dispute_status order by dispute_created_at desc) = 1 as is_latest_status_dispute,\n row_number() over (partition by charge_id order by dispute_created_at desc, dispute_amount desc) = 1 as is_absolute_latest_dispute -- include dispute_amount desc in off chance of identical dispute_created_ats \n from dispute \n\n), latest_disputes as (\n\n select \n charge_id,\n source_relation,\n -- Iterate over each type of possible status (according https://docs.stripe.com/api/disputes/object) and pull out the dispute_amount from the latest dispute\n \n sum(case when lower(dispute_status) = 'won' then dispute_amount else 0 end) as latest_dispute_amount_won,\n \n sum(case when lower(dispute_status) = 'lost' then dispute_amount else 0 end) as latest_dispute_amount_lost,\n \n sum(case when lower(dispute_status) = 'under_review' then dispute_amount else 0 end) as latest_dispute_amount_under_review,\n \n sum(case when lower(dispute_status) = 'needs_response' then dispute_amount else 0 end) as latest_dispute_amount_needs_response,\n \n sum(case when lower(dispute_status) = 'warning_closed' then dispute_amount else 0 end) as latest_dispute_amount_warning_closed,\n \n sum(case when lower(dispute_status) = 'warning_under_review' then dispute_amount else 0 end) as latest_dispute_amount_warning_under_review,\n \n sum(case when lower(dispute_status) = 'warning_needs_response' then dispute_amount else 0 end) as latest_dispute_amount_warning_needs_response,\n \n -- For the customer_facing_amount fields, pull out the generally latest dispute_amount\n sum(case when is_absolute_latest_dispute then dispute_amount else 0 end) as latest_dispute_amount\n\n from order_disputes \n where is_latest_status_dispute\n group by 1,2\n)\n\nselect\n balance_transaction.balance_transaction_id,\n balance_transaction.created_at as balance_transaction_created_at,\n balance_transaction.available_on as balance_transaction_available_on,\n balance_transaction.currency as balance_transaction_currency,\n balance_transaction.amount as balance_transaction_amount,\n balance_transaction.fee as balance_transaction_fee,\n balance_transaction.net as balance_transaction_net,\n balance_transaction.source as balance_transaction_source_id,\n balance_transaction.description as balance_transaction_description,\n balance_transaction.type as balance_transaction_type,\n coalesce(balance_transaction.reporting_category,\n case\n when balance_transaction.type in ('charge', 'payment') then 'charge'\n when balance_transaction.type in ('refund', 'payment_refund') then 'refund'\n when balance_transaction.type in ('payout_cancel', 'payout_failure') then 'payout_reversal'\n when balance_transaction.type in ('transfer', 'recipient_transfer') then 'transfer'\n when balance_transaction.type in ('transfer_cancel', 'transfer_failure', 'recipient_transfer_cancel', 'recipient_transfer_failure') then 'transfer_reversal'\n else balance_transaction.type end)\n as balance_transaction_reporting_category,\n case\n when balance_transaction.type in ('charge', 'payment') then charge.amount \n when balance_transaction.type in ('refund', 'payment_refund') then refund.amount\n when dispute_ids is not null then latest_disputes.latest_dispute_amount\n else null\n end as customer_facing_amount,\n case \n when balance_transaction.type = 'charge' then charge.currency \n end as customer_facing_currency,\n latest_disputes.latest_dispute_amount_won,\n latest_disputes.latest_dispute_amount_lost,\n latest_disputes.latest_dispute_amount_under_review,\n latest_disputes.latest_dispute_amount_needs_response,\n latest_disputes.latest_dispute_amount_warning_closed,\n latest_disputes.latest_dispute_amount_warning_under_review,\n latest_disputes.latest_dispute_amount_warning_needs_response,\n \n\n balance_transaction.available_on + ((interval '1 day') * (1))\n\n as effective_at,\n \n case\n when payout.is_automatic = true then payout.payout_id\n else null\n end as automatic_payout_id,\n payout.payout_id,\n payout.created_at as payout_created_at,\n payout.currency as payout_currency,\n payout.is_automatic as payout_is_automatic,\n payout.arrival_date_at as payout_arrival_date_at,\n case\n when payout.is_automatic = true then payout.arrival_date_at\n else null\n end as automatic_payout_effective_at,\n payout.type as payout_type,\n payout.status as payout_status,\n payout.description as payout_description,\n payout.destination_bank_account_id,\n payout.destination_card_id,\n -- Checks if this balance transaction matches the most recent balance_transaction_id recorded in PAYOUT.\n payout_balance_transaction_unified.balance_transaction_id = payout.balance_transaction_id as payout_balance_transaction_is_current,\n \n coalesce(charge.customer_id, refund_charge.customer_id) as customer_id,\n charge.receipt_email,\n customer.email as customer_email,\n customer.customer_name,\n customer.description as customer_description,\n customer.shipping_address_line_1 as customer_shipping_address_line_1,\n customer.shipping_address_line_2 as customer_shipping_address_line_2,\n customer.shipping_address_city as customer_shipping_address_city,\n customer.shipping_address_state as customer_shipping_address_state,\n customer.shipping_address_postal_code as customer_shipping_address_postal_code,\n customer.shipping_address_country as customer_shipping_address_country,\n customer.customer_address_line_1,\n customer.customer_address_line_2,\n customer.customer_address_city,\n customer.customer_address_state,\n customer.customer_address_postal_code,\n customer.customer_address_country,\n \n charge.shipping_address_line_1 as charge_shipping_address_line_1,\n charge.shipping_address_line_2 as charge_shipping_address_line_2,\n charge.shipping_address_city as charge_shipping_address_city,\n charge.shipping_address_state as charge_shipping_address_state,\n charge.shipping_address_postal_code as charge_shipping_address_postal_code,\n charge.shipping_address_country as charge_shipping_address_country,\n cards.card_address_line_1,\n cards.card_address_line_2,\n cards.card_address_city,\n cards.card_address_state,\n cards.card_address_postal_code,\n cards.card_address_country,\n coalesce(charge.charge_id, refund.charge_id, dispute_summary.charge_id) as charge_id,\n charge.created_at as charge_created_at,\n \n payment_intent.payment_intent_id,\n\n \n invoice.invoice_id,\n invoice.number as invoice_number,\n \n \n\n \n subscription.subscription_id,\n \n \n\n \n payment_method.type as payment_method_type,\n payment_method_card.brand as payment_method_brand,\n payment_method_card.funding as payment_method_funding,\n \n\n cards.brand as card_brand,\n cards.funding as card_funding,\n cards.country as card_country,\n charge.statement_descriptor as charge_statement_descriptor,\n dispute_summary.dispute_ids,\n dispute_summary.dispute_reasons,\n dispute_summary.dispute_count,\n refund.refund_id,\n refund.reason as refund_reason,\n\n \n transfers.transfer_id,\n \n \n coalesce(balance_transaction.connected_account_id, charge.connected_account_id) as connected_account_id,\n connected_account.country as connected_account_country,\n case \n when charge.connected_account_id is not null then charge.charge_id\n else null\n end as connected_account_direct_charge_id,\n balance_transaction.source_relation\n\nfrom balance_transaction\n\n\nleft join payout_balance_transaction_unified\n on payout_balance_transaction_unified.balance_transaction_id = balance_transaction.balance_transaction_id\n and payout_balance_transaction_unified.source_relation = balance_transaction.source_relation\nleft join payout\n on payout.payout_id = payout_balance_transaction_unified.payout_id\n and payout.source_relation = payout_balance_transaction_unified.source_relation\n\n\nleft join account connected_account\n on balance_transaction.connected_account_id = connected_account.account_id\n and balance_transaction.source_relation = connected_account.source_relation\nleft join charge\n on charge.balance_transaction_id = balance_transaction.balance_transaction_id\n and charge.source_relation = balance_transaction.source_relation\nleft join customer \n on charge.customer_id = customer.customer_id\n and charge.source_relation = customer.source_relation\nleft join cards\n on charge.card_id = cards.card_id\n and charge.source_relation = cards.source_relation\nleft join payment_intent\n on charge.payment_intent_id = payment_intent.payment_intent_id\n and charge.source_relation = payment_intent.source_relation\n\n\nleft join payment_method\n on charge.payment_method_id = payment_method.payment_method_id\n and charge.source_relation = payment_method.source_relation\nleft join payment_method_card \n on payment_method_card.payment_method_id = payment_method.payment_method_id\n and charge.source_relation = balance_transaction.source_relation\n\n\n\nleft join invoice \n on charge.invoice_id = invoice.invoice_id\n and charge.source_relation = invoice.source_relation\n\n\n\nleft join subscription\n on subscription.latest_invoice_id = charge.invoice_id\n and subscription.source_relation = charge.source_relation\n\n\nleft join refund\n on refund.balance_transaction_id = balance_transaction.balance_transaction_id\n and refund.source_relation = balance_transaction.source_relation\n\n\nleft join transfers\n on transfers.balance_transaction_id = balance_transaction.balance_transaction_id\n and transfers.source_relation = balance_transaction.source_relation\n\n\nleft join charge as refund_charge \n on refund.charge_id = refund_charge.charge_id\n and refund.source_relation = refund_charge.source_relation\nleft join dispute_summary\n on charge.charge_id = dispute_summary.charge_id\n and charge.source_relation = dispute_summary.source_relation\nleft join latest_disputes\n on charge.charge_id = latest_disputes.charge_id\n and charge.source_relation = latest_disputes.source_relation", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__line_item_enhanced": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__line_item_enhanced", "resource_type": "model", "package_name": "stripe", "path": "standardized_models/stripe__line_item_enhanced.sql", "original_file_path": "models/standardized_models/stripe__line_item_enhanced.sql", "unique_id": "model.stripe.stripe__line_item_enhanced", "fqn": ["stripe", "standardized_models", "stripe__line_item_enhanced"], "alias": "stripe__line_item_enhanced", "checksum": {"name": "sha256", "checksum": "83889cd882649cc2bb2448854faf54e171f7d982b77e56acf2efa11ae1d423c8"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "This model constructs a comprehensive, denormalized analytical table that enables reporting on key revenue, subscription, customer, and product metrics from your billing platform. It\u2019s designed to align with the schema of the `*__line_item_enhanced` model found in Stripe, Recharge, Recurly, Shopify, and Zuora, offering standardized reporting across various billing platforms. To see the kinds of insights this model can generate, explore example visualizations in the [Fivetran Billing Model Streamlit App](https://fivetran-billing-model.streamlit.app/). Visit the app for more details.", "columns": {"header_id": {"name": "header_id", "description": "Id of corresponding invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "line_item_id": {"name": "line_item_id", "description": "Invoice line item id.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "line_item_index": {"name": "line_item_index", "description": "Unique index of each line item id for each invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "record_type": {"name": "record_type", "description": "header or line_item", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "When the invoice was created", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "header_status": {"name": "header_status", "description": "Status of the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_type": {"name": "billing_type", "description": "Type of invoice line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Currency used in the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "Product ID", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_name": {"name": "product_name", "description": "Product name", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_type": {"name": "product_type", "description": "Product type", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transaction_type": {"name": "transaction_type", "description": "Balance transaction type. If refunds and charges are tied to one invoice, it's designated as 'charge + refund'. If a charge isn't tied to a refund, it's designated as 'payment intent + refund'. Otherwise, it's just 'charge'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The number of units of this line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unit_amount": {"name": "unit_amount", "description": "Amount per unit.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "discount_amount": {"name": "discount_amount", "description": "The discount amount associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "tax_amount": {"name": "tax_amount", "description": "The tax amount associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total_amount": {"name": "total_amount", "description": "Invoice total", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_id": {"name": "payment_id", "description": "Payment intent ID", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_method": {"name": "payment_method", "description": "Payment method type", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_method_id": {"name": "payment_method_id", "description": "Payment method ID", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_at": {"name": "payment_at", "description": "Charge created date", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "fee_amount": {"name": "fee_amount", "description": "Balance transaction fee from charges and refunds.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "refund_amount": {"name": "refund_amount", "description": "Refund amount associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "Subscription associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_plan": {"name": "subscription_plan", "description": "The product associated with the subscription item. In Stripe a subscription plan would best be attributed to the product which the price/plan is of the subscription is linked.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_period_started_at": {"name": "subscription_period_started_at", "description": "Subscription's current period start", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_period_ended_at": {"name": "subscription_period_ended_at", "description": "Subscription's current period end", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_status": {"name": "subscription_status", "description": "Subscription status", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "Customer associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_created_at": {"name": "customer_created_at", "description": "Date which the customer was created in Stripe.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_level": {"name": "customer_level", "description": "Whether 'account' or 'customer'. For Stripe, the level is 'customer'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Customer name", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_company": {"name": "customer_company", "description": "Associated account's company if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "Customer email", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_city": {"name": "customer_city", "description": "Customer city", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_country": {"name": "customer_country", "description": "Customer country", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/standardized_models/stripe__standardized_models.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.2925828, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__line_item_enhanced\"", "raw_code": "{{ config(\n enabled=(\n var('stripe__standardized_billing_model_enabled', True) and (var('stripe__using_invoices', True))\n )\n) }}\n\n\nwith invoice_line_item as (\n\n select *\n from {{ ref('stg_stripe__invoice_line_item') }} \n\n), invoice as (\n\n select *\n from {{ ref('stg_stripe__invoice') }}\n\n{% if var('stripe__using_subscriptions', True) %}\n), subscription as (\n\n select *\n from {{ ref('stg_stripe__subscription') }} \n\n), subscription_item as (\n\n select *\n from {{ ref('int_stripe__deduped_subscription_item') }} \n\n--Newer Stripe connections will store current_period_start/end fields in SUBSCRIPTION_ITEM while older ones house these fields in SUBSCRIPTION_HISTORY -> grab both and coalesce\n), subscription_item_merge as (\n select \n coalesce(subscription.subscription_id, subscription_item.subscription_id) as subscription_id,\n subscription.status,\n coalesce(subscription.source_relation, subscription_item.source_relation) as source_relation,\n coalesce(subscription.current_period_start, subscription_item.current_period_start) as current_period_start,\n coalesce(subscription.current_period_end, subscription_item.current_period_end) as current_period_end\n from subscription\n left join subscription_item\n on subscription.subscription_id = subscription_item.subscription_id\n and subscription.source_relation = subscription_item.source_relation\n\n), price_plan as (\n\n select *\n from {{ ref('stg_stripe__price_plan') }} \n\n), product as (\n\n select *\n from {{ ref('stg_stripe__product') }}\n\n{% endif %}\n\n), payment_intent as (\n\n select *\n from {{ ref('stg_stripe__payment_intent') }} \n\n{% if var('stripe__using_payment_method', True) %}\n), payment_method as (\n\n select *\n from {{ ref('stg_stripe__payment_method') }}\n\n{% endif %}\n\n), fee as (\n\n select *\n from {{ ref('stg_stripe__fee') }} \n\n), account as (\n\n select *\n from {{ ref('stg_stripe__account') }}\n\n), balance_transaction as (\n\n select *\n from {{ ref('stg_stripe__balance_transaction') }} \n\n), charge as (\n\n select *\n from {{ ref('stg_stripe__charge') }} \n\n), discount as (\n\n select\n invoice_id,\n source_relation,\n sum(amount) as total_discount_amount\n from {{ ref('stg_stripe__discount') }}\n group by 1, 2\n\n), line_item_aggregate as (\n\n select\n invoice_id,\n source_relation,\n sum(amount) as total_line_item_amount\n from {{ ref('stg_stripe__invoice_line_item') }}\n group by 1, 2\n\n), refund as (\n\n select *\n from {{ ref('stg_stripe__refund') }} \n\n), customer as (\n\n select *\n from {{ ref('stg_stripe__customer') }} \n\n), enhanced as (\n\n select\n invoice_line_item.invoice_id as header_id,\n cast(invoice_line_item.invoice_line_item_id as {{ dbt.type_string() }}) as line_item_id,\n row_number() over (partition by invoice_line_item.invoice_id{{ fivetran_utils.partition_by_source_relation(package_name='stripe', alias='invoice_line_item') }} order by invoice_line_item.amount desc) as line_item_index,\n invoice.created_at as created_at,\n cast(invoice_line_item.currency as {{ dbt.type_string() }}) as currency,\n cast(invoice.status as {{ dbt.type_string() }}) as header_status,\n\n cast({{ \"price_plan.product_id\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_string() }}) as product_id, -- The ID of the product this price is associated with. https://docs.stripe.com/api/invoices/line_item#invoice_line_item_object-price-product\n cast({{ \"product.name\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_string() }}) as product_name,\n cast({{ \"product.type\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_string() }}) as product_type,\n\n case \n when bt_refund.balance_transaction_id is not null and bt_charge.balance_transaction_id is not null then 'charge + refund'\n when bt_charge.balance_transaction_id is not null then 'charge'\n when bt_refund.balance_transaction_id is not null then 'payment intent + refund'\n else coalesce(bt_charge.type, bt_refund.type)\n end as transaction_type,\n \n cast(invoice_line_item.type as {{ dbt.type_string() }}) as billing_type,\n cast(invoice_line_item.quantity as {{ dbt.type_numeric() }}) as quantity,\n\n cast(case \n when invoice_line_item.quantity = 0 then 0\n else (invoice_line_item.amount / invoice_line_item.quantity) \n end as {{ dbt.type_numeric() }}) as unit_amount,\n\n cast(discount.total_discount_amount as {{ dbt.type_numeric() }}) as discount_amount,\n cast(invoice.tax as {{ dbt.type_numeric() }}) as tax_amount,\n cast(line_item_aggregate.total_line_item_amount as {{ dbt.type_numeric() }}) as total_line_item_amount,\n cast(invoice.total as {{ dbt.type_numeric() }}) as total_invoice_amount,\n cast(invoice_line_item.amount as {{ dbt.type_numeric() }}) as total_amount,\n cast(payment_intent.payment_intent_id as {{ dbt.type_string() }}) as payment_id,\n cast({{ \"payment_method.payment_method_id\" if var('stripe__using_payment_method', True) else 'null' }} as {{ dbt.type_string() }}) as payment_method_id,\n cast({{ \"payment_method.type\" if var('stripe__using_payment_method', True) else 'null' }} as {{ dbt.type_string() }}) as payment_method,\n cast(charge.created_at as {{ dbt.type_timestamp() }}) as payment_at,\n cast(coalesce(bt_charge.fee, 0) as {{ dbt.type_numeric() }}) + cast(coalesce(bt_refund.fee, 0) as {{ dbt.type_numeric() }}) as fee_amount,\n cast(refund.amount as {{ dbt.type_numeric() }}) as refund_amount,\n cast(invoice.subscription_id as {{ dbt.type_string() }}) as subscription_id,\n\n cast({{ \"product.name\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_string() }}) as subscription_plan,\n cast({{ \"subscription_item_merge.current_period_start\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_timestamp() }}) as subscription_period_started_at,\n cast({{ \"subscription_item_merge.current_period_end\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_timestamp() }}) as subscription_period_ended_at,\n cast({{ \"subscription_item_merge.status\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_string() }}) as subscription_status,\n\n cast(invoice.customer_id as {{ dbt.type_string() }}) as customer_id,\n cast(customer.created_at as {{ dbt.type_timestamp() }}) as customer_created_at,\n 'customer' as customer_level,\n cast(customer.customer_name as {{ dbt.type_string() }}) as customer_name, \n cast(connected_account.company_name as {{ dbt.type_string() }}) as customer_company, \n cast(customer.email as {{ dbt.type_string() }}) as customer_email,\n cast(customer.customer_address_city as {{ dbt.type_string() }}) as customer_city,\n cast(customer.customer_address_country as {{ dbt.type_string() }}) as customer_country,\n invoice_line_item.source_relation\n\n from invoice_line_item\n\n left join invoice\n on invoice.invoice_id = invoice_line_item.invoice_id\n and invoice.source_relation = invoice_line_item.source_relation\n\n left join line_item_aggregate\n on invoice.invoice_id = line_item_aggregate.invoice_id\n and invoice.source_relation = line_item_aggregate.source_relation\n\n left join charge \n on invoice.charge_id = charge.charge_id\n and invoice.invoice_id = charge.invoice_id\n and invoice.source_relation = charge.source_relation\n\n left join refund\n on charge.charge_id = refund.charge_id\n and charge.source_relation = refund.source_relation\n\n left join balance_transaction bt_charge\n on charge.balance_transaction_id = bt_charge.balance_transaction_id\n and charge.source_relation = bt_charge.source_relation\n\n left join balance_transaction bt_refund\n on refund.balance_transaction_id = bt_refund.balance_transaction_id\n and refund.source_relation = bt_refund.source_relation\n\n left join discount \n on invoice.invoice_id = discount.invoice_id\n and invoice.source_relation = discount.source_relation\n\n left join account connected_account\n on coalesce(bt_charge.connected_account_id, bt_refund.connected_account_id) = connected_account.account_id\n and coalesce(bt_charge.source_relation, bt_refund.source_relation) = connected_account.source_relation\n\n left join payment_intent\n on charge.payment_intent_id = payment_intent.payment_intent_id\n and charge.source_relation = payment_intent.source_relation\n\n {% if var('stripe__using_payment_method', True) %}\n left join payment_method\n on charge.payment_method_id = payment_method.payment_method_id\n and charge.source_relation = payment_method.source_relation\n {% endif %}\n\n left join customer \n on invoice.customer_id = customer.customer_id\n and invoice.source_relation = customer.source_relation\n\n {% if var('stripe__using_subscriptions', True) %}\n\n left join subscription_item_merge\n on invoice.subscription_id = subscription_item_merge.subscription_id\n and invoice.source_relation = subscription_item_merge.source_relation\n\n left join price_plan\n\n {% if var('stripe__using_price', stripe.does_table_exist('price')=='exists') %}\n on invoice_line_item.price_id = price_plan.price_plan_id\n {% else %}\n on invoice_line_item.plan_id = price_plan.price_plan_id\n {% endif %}\n and invoice_line_item.source_relation = price_plan.source_relation\n\n left join product\n on price_plan.product_id = product.product_id\n and price_plan.source_relation = product.source_relation\n {% endif %}\n\n), final as (\n\n-- invoice_line_item_level\n select\n header_id,\n line_item_id,\n line_item_index,\n 'line_item' as record_type,\n created_at,\n currency,\n header_status,\n product_id,\n product_name,\n transaction_type,\n billing_type,\n product_type,\n quantity,\n unit_amount,\n cast(null as {{ dbt.type_numeric() }}) as discount_amount,\n cast(null as {{ dbt.type_numeric() }}) as tax_amount,\n total_amount,\n payment_id,\n payment_method_id,\n payment_method,\n payment_at,\n cast(null as {{ dbt.type_numeric() }}) as fee_amount,\n cast(null as {{ dbt.type_numeric() }}) as refund_amount,\n subscription_id,\n subscription_plan,\n subscription_period_started_at,\n subscription_period_ended_at,\n subscription_status,\n customer_id,\n customer_created_at,\n customer_level,\n customer_name,\n customer_company,\n customer_email,\n customer_city,\n customer_country,\n source_relation\n from enhanced\n\n union all\n\n -- create records for fields only pertinent at the invoice level\n select\n header_id,\n cast(null as {{ dbt.type_string() }}) as line_item_id,\n cast(0 as {{ dbt.type_int() }}) as line_item_index,\n 'header' as record_type,\n created_at,\n currency,\n header_status,\n cast(null as {{ dbt.type_string() }}) as product_id,\n cast(null as {{ dbt.type_string() }}) as product_name,\n transaction_type,\n billing_type,\n cast(null as {{ dbt.type_string() }}) as product_type,\n cast(null as {{ dbt.type_float() }}) as quantity,\n cast(null as {{ dbt.type_float() }}) as unit_amount,\n discount_amount,\n tax_amount,\n cast((total_invoice_amount - total_line_item_amount) as {{ dbt.type_float() }}) as total_amount,\n payment_id,\n payment_method_id,\n payment_method,\n payment_at,\n fee_amount,\n refund_amount,\n subscription_id,\n subscription_plan,\n subscription_period_started_at,\n subscription_period_ended_at,\n subscription_status,\n customer_id,\n customer_created_at,\n customer_level,\n customer_name,\n customer_company,\n customer_email,\n customer_city,\n customer_country,\n source_relation\n from enhanced\n where line_item_index = 1\n and (discount_amount is not null or tax_amount is not null or fee_amount != 0 or refund_amount is not null)\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice_line_item", "package": null, "version": null}, {"name": "stg_stripe__invoice", "package": null, "version": null}, {"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "int_stripe__deduped_subscription_item", "package": null, "version": null}, {"name": "stg_stripe__price_plan", "package": null, "version": null}, {"name": "stg_stripe__product", "package": null, "version": null}, {"name": "stg_stripe__payment_intent", "package": null, "version": null}, {"name": "stg_stripe__payment_method", "package": null, "version": null}, {"name": "stg_stripe__fee", "package": null, "version": null}, {"name": "stg_stripe__account", "package": null, "version": null}, {"name": "stg_stripe__balance_transaction", "package": null, "version": null}, {"name": "stg_stripe__charge", "package": null, "version": null}, {"name": "stg_stripe__discount", "package": null, "version": null}, {"name": "stg_stripe__invoice_line_item", "package": null, "version": null}, {"name": "stg_stripe__refund", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.type_string", "macro.fivetran_utils.partition_by_source_relation", "macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.stripe.does_table_exist", "macro.dbt.type_int", "macro.dbt.type_float"], "nodes": ["model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__subscription", "model.stripe.int_stripe__deduped_subscription_item", "model.stripe.stg_stripe__price_plan", "model.stripe.stg_stripe__product", "model.stripe.stg_stripe__payment_intent", "model.stripe.stg_stripe__payment_method", "model.stripe.stg_stripe__fee", "model.stripe.stg_stripe__account", "model.stripe.stg_stripe__balance_transaction", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__discount", "model.stripe.stg_stripe__refund", "model.stripe.stg_stripe__customer"]}, "compiled_path": "target/compiled/stripe/models/standardized_models/stripe__line_item_enhanced.sql", "compiled": true, "compiled_code": "\n\n\nwith __dbt__cte__int_stripe__deduped_subscription_item as (\nwith subscription_item as ( \n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\n\n)\n\n/*\nSUBSCRIPTION_ITEM allows for one-to-many relationships between subscriptions and plans, so we need to dedupe to the subscription_id level\n*/\n\nselect\n subscription_id,\n source_relation,\n min(current_period_start) as current_period_start,\n max(current_period_end) as current_period_end\n \nfrom subscription_item\ngroup by 1, 2\n), invoice_line_item as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\" \n\n), invoice as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice\"\n\n\n), subscription as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\" \n\n), subscription_item as (\n\n select *\n from __dbt__cte__int_stripe__deduped_subscription_item \n\n--Newer Stripe connections will store current_period_start/end fields in SUBSCRIPTION_ITEM while older ones house these fields in SUBSCRIPTION_HISTORY -> grab both and coalesce\n), subscription_item_merge as (\n select \n coalesce(subscription.subscription_id, subscription_item.subscription_id) as subscription_id,\n subscription.status,\n coalesce(subscription.source_relation, subscription_item.source_relation) as source_relation,\n coalesce(subscription.current_period_start, subscription_item.current_period_start) as current_period_start,\n coalesce(subscription.current_period_end, subscription_item.current_period_end) as current_period_end\n from subscription\n left join subscription_item\n on subscription.subscription_id = subscription_item.subscription_id\n and subscription.source_relation = subscription_item.source_relation\n\n), price_plan as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan\" \n\n), product as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__product\"\n\n\n\n), payment_intent as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_intent\" \n\n\n), payment_method as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method\"\n\n\n\n), fee as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__fee\" \n\n), account as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__account\"\n\n), balance_transaction as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__balance_transaction\" \n\n), charge as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\" \n\n), discount as (\n\n select\n invoice_id,\n source_relation,\n sum(amount) as total_discount_amount\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__discount\"\n group by 1, 2\n\n), line_item_aggregate as (\n\n select\n invoice_id,\n source_relation,\n sum(amount) as total_line_item_amount\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\"\n group by 1, 2\n\n), refund as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__refund\" \n\n), customer as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\" \n\n), enhanced as (\n\n select\n invoice_line_item.invoice_id as header_id,\n cast(invoice_line_item.invoice_line_item_id as TEXT) as line_item_id,\n row_number() over (partition by invoice_line_item.invoice_id order by invoice_line_item.amount desc) as line_item_index,\n invoice.created_at as created_at,\n cast(invoice_line_item.currency as TEXT) as currency,\n cast(invoice.status as TEXT) as header_status,\n\n cast(price_plan.product_id as TEXT) as product_id, -- The ID of the product this price is associated with. https://docs.stripe.com/api/invoices/line_item#invoice_line_item_object-price-product\n cast(product.name as TEXT) as product_name,\n cast(product.type as TEXT) as product_type,\n\n case \n when bt_refund.balance_transaction_id is not null and bt_charge.balance_transaction_id is not null then 'charge + refund'\n when bt_charge.balance_transaction_id is not null then 'charge'\n when bt_refund.balance_transaction_id is not null then 'payment intent + refund'\n else coalesce(bt_charge.type, bt_refund.type)\n end as transaction_type,\n \n cast(invoice_line_item.type as TEXT) as billing_type,\n cast(invoice_line_item.quantity as numeric(28,6)) as quantity,\n\n cast(case \n when invoice_line_item.quantity = 0 then 0\n else (invoice_line_item.amount / invoice_line_item.quantity) \n end as numeric(28,6)) as unit_amount,\n\n cast(discount.total_discount_amount as numeric(28,6)) as discount_amount,\n cast(invoice.tax as numeric(28,6)) as tax_amount,\n cast(line_item_aggregate.total_line_item_amount as numeric(28,6)) as total_line_item_amount,\n cast(invoice.total as numeric(28,6)) as total_invoice_amount,\n cast(invoice_line_item.amount as numeric(28,6)) as total_amount,\n cast(payment_intent.payment_intent_id as TEXT) as payment_id,\n cast(payment_method.payment_method_id as TEXT) as payment_method_id,\n cast(payment_method.type as TEXT) as payment_method,\n cast(charge.created_at as timestamp) as payment_at,\n cast(coalesce(bt_charge.fee, 0) as numeric(28,6)) + cast(coalesce(bt_refund.fee, 0) as numeric(28,6)) as fee_amount,\n cast(refund.amount as numeric(28,6)) as refund_amount,\n cast(invoice.subscription_id as TEXT) as subscription_id,\n\n cast(product.name as TEXT) as subscription_plan,\n cast(subscription_item_merge.current_period_start as timestamp) as subscription_period_started_at,\n cast(subscription_item_merge.current_period_end as timestamp) as subscription_period_ended_at,\n cast(subscription_item_merge.status as TEXT) as subscription_status,\n\n cast(invoice.customer_id as TEXT) as customer_id,\n cast(customer.created_at as timestamp) as customer_created_at,\n 'customer' as customer_level,\n cast(customer.customer_name as TEXT) as customer_name, \n cast(connected_account.company_name as TEXT) as customer_company, \n cast(customer.email as TEXT) as customer_email,\n cast(customer.customer_address_city as TEXT) as customer_city,\n cast(customer.customer_address_country as TEXT) as customer_country,\n invoice_line_item.source_relation\n\n from invoice_line_item\n\n left join invoice\n on invoice.invoice_id = invoice_line_item.invoice_id\n and invoice.source_relation = invoice_line_item.source_relation\n\n left join line_item_aggregate\n on invoice.invoice_id = line_item_aggregate.invoice_id\n and invoice.source_relation = line_item_aggregate.source_relation\n\n left join charge \n on invoice.charge_id = charge.charge_id\n and invoice.invoice_id = charge.invoice_id\n and invoice.source_relation = charge.source_relation\n\n left join refund\n on charge.charge_id = refund.charge_id\n and charge.source_relation = refund.source_relation\n\n left join balance_transaction bt_charge\n on charge.balance_transaction_id = bt_charge.balance_transaction_id\n and charge.source_relation = bt_charge.source_relation\n\n left join balance_transaction bt_refund\n on refund.balance_transaction_id = bt_refund.balance_transaction_id\n and refund.source_relation = bt_refund.source_relation\n\n left join discount \n on invoice.invoice_id = discount.invoice_id\n and invoice.source_relation = discount.source_relation\n\n left join account connected_account\n on coalesce(bt_charge.connected_account_id, bt_refund.connected_account_id) = connected_account.account_id\n and coalesce(bt_charge.source_relation, bt_refund.source_relation) = connected_account.source_relation\n\n left join payment_intent\n on charge.payment_intent_id = payment_intent.payment_intent_id\n and charge.source_relation = payment_intent.source_relation\n\n \n left join payment_method\n on charge.payment_method_id = payment_method.payment_method_id\n and charge.source_relation = payment_method.source_relation\n \n\n left join customer \n on invoice.customer_id = customer.customer_id\n and invoice.source_relation = customer.source_relation\n\n \n\n left join subscription_item_merge\n on invoice.subscription_id = subscription_item_merge.subscription_id\n and invoice.source_relation = subscription_item_merge.source_relation\n\n left join price_plan\n\n \n on invoice_line_item.price_id = price_plan.price_plan_id\n \n and invoice_line_item.source_relation = price_plan.source_relation\n\n left join product\n on price_plan.product_id = product.product_id\n and price_plan.source_relation = product.source_relation\n \n\n), final as (\n\n-- invoice_line_item_level\n select\n header_id,\n line_item_id,\n line_item_index,\n 'line_item' as record_type,\n created_at,\n currency,\n header_status,\n product_id,\n product_name,\n transaction_type,\n billing_type,\n product_type,\n quantity,\n unit_amount,\n cast(null as numeric(28,6)) as discount_amount,\n cast(null as numeric(28,6)) as tax_amount,\n total_amount,\n payment_id,\n payment_method_id,\n payment_method,\n payment_at,\n cast(null as numeric(28,6)) as fee_amount,\n cast(null as numeric(28,6)) as refund_amount,\n subscription_id,\n subscription_plan,\n subscription_period_started_at,\n subscription_period_ended_at,\n subscription_status,\n customer_id,\n customer_created_at,\n customer_level,\n customer_name,\n customer_company,\n customer_email,\n customer_city,\n customer_country,\n source_relation\n from enhanced\n\n union all\n\n -- create records for fields only pertinent at the invoice level\n select\n header_id,\n cast(null as TEXT) as line_item_id,\n cast(0 as integer) as line_item_index,\n 'header' as record_type,\n created_at,\n currency,\n header_status,\n cast(null as TEXT) as product_id,\n cast(null as TEXT) as product_name,\n transaction_type,\n billing_type,\n cast(null as TEXT) as product_type,\n cast(null as float) as quantity,\n cast(null as float) as unit_amount,\n discount_amount,\n tax_amount,\n cast((total_invoice_amount - total_line_item_amount) as float) as total_amount,\n payment_id,\n payment_method_id,\n payment_method,\n payment_at,\n fee_amount,\n refund_amount,\n subscription_id,\n subscription_plan,\n subscription_period_started_at,\n subscription_period_ended_at,\n subscription_status,\n customer_id,\n customer_created_at,\n customer_level,\n customer_name,\n customer_company,\n customer_email,\n customer_city,\n customer_country,\n source_relation\n from enhanced\n where line_item_index = 1\n and (discount_amount is not null or tax_amount is not null or fee_amount != 0 or refund_amount is not null)\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.stripe.int_stripe__deduped_subscription_item", "sql": " __dbt__cte__int_stripe__deduped_subscription_item as (\nwith subscription_item as ( \n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\n\n)\n\n/*\nSUBSCRIPTION_ITEM allows for one-to-many relationships between subscriptions and plans, so we need to dedupe to the subscription_id level\n*/\n\nselect\n subscription_id,\n source_relation,\n min(current_period_start) as current_period_start,\n max(current_period_end) as current_period_end\n \nfrom subscription_item\ngroup by 1, 2\n)"}], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__deduped_subscription_item": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__deduped_subscription_item", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__deduped_subscription_item.sql", "original_file_path": "models/intermediate/int_stripe__deduped_subscription_item.sql", "unique_id": "model.stripe.int_stripe__deduped_subscription_item", "fqn": ["stripe", "intermediate", "int_stripe__deduped_subscription_item"], "alias": "int_stripe__deduped_subscription_item", "checksum": {"name": "sha256", "checksum": "09bd2f94e09df28de038da4d029648fec3dc7a9468265c49a54906f8e1974326"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "ephemeral", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "ephemeral", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130900.572378, "relation_name": null, "raw_code": "with subscription_item as ( \n\n select * \n from {{ ref('stg_stripe__subscription_item') }}\n\n)\n\n/*\nSUBSCRIPTION_ITEM allows for one-to-many relationships between subscriptions and plans, so we need to dedupe to the subscription_id level\n*/\n\nselect\n subscription_id,\n source_relation,\n min(current_period_start) as current_period_start,\n max(current_period_end) as current_period_end\n \nfrom subscription_item\ngroup by 1, 2", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_item", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.stg_stripe__subscription_item"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__deduped_subscription_item.sql", "compiled": true, "compiled_code": "with subscription_item as ( \n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\n\n)\n\n/*\nSUBSCRIPTION_ITEM allows for one-to-many relationships between subscriptions and plans, so we need to dedupe to the subscription_id level\n*/\n\nselect\n subscription_id,\n source_relation,\n min(current_period_start) as current_period_start,\n max(current_period_end) as current_period_end\n \nfrom subscription_item\ngroup by 1, 2", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__account_rolling_totals": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__account_rolling_totals", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__account_rolling_totals.sql", "original_file_path": "models/intermediate/int_stripe__account_rolling_totals.sql", "unique_id": "model.stripe.int_stripe__account_rolling_totals", "fqn": ["stripe", "intermediate", "int_stripe__account_rolling_totals"], "alias": "int_stripe__account_rolling_totals", "checksum": {"name": "sha256", "checksum": "f2dccdc5f089fcb14aa4578668da16394bbb7197903538a90ec4587deb4357a1"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Each record represents each day's ending balances per account, in addition to changes over time.", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.1746855, "relation_name": "\"postgres\".\"public_stripe_dev\".\"int_stripe__account_rolling_totals\"", "raw_code": "{% set total_fields = ['total_daily_sales_amount', 'total_daily_refunds_amount', 'total_daily_adjustments_amount', 'total_daily_other_transactions_amount', 'total_daily_gross_transaction_amount', 'total_daily_net_transactions_amount', 'total_daily_payout_fee_amount', 'total_daily_gross_payout_amount', 'daily_net_activity_amount', 'daily_end_balance_amount', 'total_daily_sales_count', 'total_daily_payouts_count', 'total_daily_adjustments_count', 'total_daily_failed_charge_count', 'total_daily_failed_charge_amount'] %}\n{% set rolling_fields = ['rolling_total_daily_sales_amount', 'rolling_total_daily_refunds_amount', 'rolling_total_daily_adjustments_amount', 'rolling_total_daily_other_transactions_amount', 'rolling_total_daily_gross_transaction_amount', 'rolling_total_daily_net_transactions_amount', 'rolling_total_daily_payout_fee_amount', 'rolling_total_daily_gross_payout_amount', 'rolling_daily_net_activity_amount', 'rolling_daily_end_balance_amount', 'rolling_total_daily_sales_count', 'rolling_total_daily_payouts_count', 'rolling_total_daily_adjustments_count', 'rolling_total_daily_failed_charge_count', 'rolling_total_daily_failed_charge_amount'] %}\n\nwith date_spine as (\n\n select * \n from {{ ref('int_stripe__date_spine') }}\n\n), account_daily_balances_by_type as (\n\n select * \n from {{ ref('int_stripe__account_daily')}}\n\n), account_rolling_totals as (\n\n select\n *\n\n {% for t in total_fields %}\n , sum({{ t }}) over (order by date_day rows unbounded preceding) as rolling_{{ t }}\n {% endfor %}\n\n from account_daily_balances_by_type\n\n), final as (\n\n select\n date_spine.account_id,\n date_spine.date_day,\n date_spine.date_week,\n date_spine.date_month,\n date_spine.date_year,\n {% for t in total_fields %}\n coalesce(round(account_rolling_totals.{{ t }},2),0) as {{ t }},\n {% endfor %}\n\n {% for f in rolling_fields %}\n case when account_rolling_totals.{{ f }} is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.{{ f }},2),0)\n end as {{ f }},\n {% endfor %}\n\n date_spine.date_index,\n account_rolling_totals.source_relation\n\n from date_spine\n left join account_rolling_totals\n on account_rolling_totals.date_day = date_spine.date_day\n and account_rolling_totals.account_id = date_spine.account_id\n and account_rolling_totals.source_relation = date_spine.source_relation\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_stripe__date_spine", "package": null, "version": null}, {"name": "int_stripe__account_daily", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.int_stripe__date_spine", "model.stripe.int_stripe__account_daily"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__account_rolling_totals.sql", "compiled": true, "compiled_code": "\n\n\nwith date_spine as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"int_stripe__date_spine\"\n\n), account_daily_balances_by_type as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"int_stripe__account_daily\"\n\n), account_rolling_totals as (\n\n select\n *\n\n \n , sum(total_daily_sales_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_sales_amount\n \n , sum(total_daily_refunds_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_refunds_amount\n \n , sum(total_daily_adjustments_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_adjustments_amount\n \n , sum(total_daily_other_transactions_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_other_transactions_amount\n \n , sum(total_daily_gross_transaction_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_gross_transaction_amount\n \n , sum(total_daily_net_transactions_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_net_transactions_amount\n \n , sum(total_daily_payout_fee_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_payout_fee_amount\n \n , sum(total_daily_gross_payout_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_gross_payout_amount\n \n , sum(daily_net_activity_amount) over (order by date_day rows unbounded preceding) as rolling_daily_net_activity_amount\n \n , sum(daily_end_balance_amount) over (order by date_day rows unbounded preceding) as rolling_daily_end_balance_amount\n \n , sum(total_daily_sales_count) over (order by date_day rows unbounded preceding) as rolling_total_daily_sales_count\n \n , sum(total_daily_payouts_count) over (order by date_day rows unbounded preceding) as rolling_total_daily_payouts_count\n \n , sum(total_daily_adjustments_count) over (order by date_day rows unbounded preceding) as rolling_total_daily_adjustments_count\n \n , sum(total_daily_failed_charge_count) over (order by date_day rows unbounded preceding) as rolling_total_daily_failed_charge_count\n \n , sum(total_daily_failed_charge_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_failed_charge_amount\n \n\n from account_daily_balances_by_type\n\n), final as (\n\n select\n date_spine.account_id,\n date_spine.date_day,\n date_spine.date_week,\n date_spine.date_month,\n date_spine.date_year,\n \n coalesce(round(account_rolling_totals.total_daily_sales_amount,2),0) as total_daily_sales_amount,\n \n coalesce(round(account_rolling_totals.total_daily_refunds_amount,2),0) as total_daily_refunds_amount,\n \n coalesce(round(account_rolling_totals.total_daily_adjustments_amount,2),0) as total_daily_adjustments_amount,\n \n coalesce(round(account_rolling_totals.total_daily_other_transactions_amount,2),0) as total_daily_other_transactions_amount,\n \n coalesce(round(account_rolling_totals.total_daily_gross_transaction_amount,2),0) as total_daily_gross_transaction_amount,\n \n coalesce(round(account_rolling_totals.total_daily_net_transactions_amount,2),0) as total_daily_net_transactions_amount,\n \n coalesce(round(account_rolling_totals.total_daily_payout_fee_amount,2),0) as total_daily_payout_fee_amount,\n \n coalesce(round(account_rolling_totals.total_daily_gross_payout_amount,2),0) as total_daily_gross_payout_amount,\n \n coalesce(round(account_rolling_totals.daily_net_activity_amount,2),0) as daily_net_activity_amount,\n \n coalesce(round(account_rolling_totals.daily_end_balance_amount,2),0) as daily_end_balance_amount,\n \n coalesce(round(account_rolling_totals.total_daily_sales_count,2),0) as total_daily_sales_count,\n \n coalesce(round(account_rolling_totals.total_daily_payouts_count,2),0) as total_daily_payouts_count,\n \n coalesce(round(account_rolling_totals.total_daily_adjustments_count,2),0) as total_daily_adjustments_count,\n \n coalesce(round(account_rolling_totals.total_daily_failed_charge_count,2),0) as total_daily_failed_charge_count,\n \n coalesce(round(account_rolling_totals.total_daily_failed_charge_amount,2),0) as total_daily_failed_charge_amount,\n \n\n \n case when account_rolling_totals.rolling_total_daily_sales_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_sales_amount,2),0)\n end as rolling_total_daily_sales_amount,\n \n case when account_rolling_totals.rolling_total_daily_refunds_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_refunds_amount,2),0)\n end as rolling_total_daily_refunds_amount,\n \n case when account_rolling_totals.rolling_total_daily_adjustments_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_adjustments_amount,2),0)\n end as rolling_total_daily_adjustments_amount,\n \n case when account_rolling_totals.rolling_total_daily_other_transactions_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_other_transactions_amount,2),0)\n end as rolling_total_daily_other_transactions_amount,\n \n case when account_rolling_totals.rolling_total_daily_gross_transaction_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_gross_transaction_amount,2),0)\n end as rolling_total_daily_gross_transaction_amount,\n \n case when account_rolling_totals.rolling_total_daily_net_transactions_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_net_transactions_amount,2),0)\n end as rolling_total_daily_net_transactions_amount,\n \n case when account_rolling_totals.rolling_total_daily_payout_fee_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_payout_fee_amount,2),0)\n end as rolling_total_daily_payout_fee_amount,\n \n case when account_rolling_totals.rolling_total_daily_gross_payout_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_gross_payout_amount,2),0)\n end as rolling_total_daily_gross_payout_amount,\n \n case when account_rolling_totals.rolling_daily_net_activity_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_daily_net_activity_amount,2),0)\n end as rolling_daily_net_activity_amount,\n \n case when account_rolling_totals.rolling_daily_end_balance_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_daily_end_balance_amount,2),0)\n end as rolling_daily_end_balance_amount,\n \n case when account_rolling_totals.rolling_total_daily_sales_count is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_sales_count,2),0)\n end as rolling_total_daily_sales_count,\n \n case when account_rolling_totals.rolling_total_daily_payouts_count is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_payouts_count,2),0)\n end as rolling_total_daily_payouts_count,\n \n case when account_rolling_totals.rolling_total_daily_adjustments_count is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_adjustments_count,2),0)\n end as rolling_total_daily_adjustments_count,\n \n case when account_rolling_totals.rolling_total_daily_failed_charge_count is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_failed_charge_count,2),0)\n end as rolling_total_daily_failed_charge_count,\n \n case when account_rolling_totals.rolling_total_daily_failed_charge_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_failed_charge_amount,2),0)\n end as rolling_total_daily_failed_charge_amount,\n \n\n date_spine.date_index,\n account_rolling_totals.source_relation\n\n from date_spine\n left join account_rolling_totals\n on account_rolling_totals.date_day = date_spine.date_day\n and account_rolling_totals.account_id = date_spine.account_id\n and account_rolling_totals.source_relation = date_spine.source_relation\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__date_spine": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__date_spine", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__date_spine.sql", "original_file_path": "models/intermediate/int_stripe__date_spine.sql", "unique_id": "model.stripe.int_stripe__date_spine", "fqn": ["stripe", "intermediate", "int_stripe__date_spine"], "alias": "int_stripe__date_spine", "checksum": {"name": "sha256", "checksum": "be80d4bd4fa626473f09202514acd85ce2d0e5899d965da63b4523a464d5810f"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Each record represents a day of each calendar year.", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.1751506, "relation_name": "\"postgres\".\"public_stripe_dev\".\"int_stripe__date_spine\"", "raw_code": "-- depends_on: {{ ref('stripe__balance_transactions') }}\nwith spine as (\n\n {% if execute and flags.WHICH in ('run', 'build') %}\n\n {%- set first_date_query %}\n select coalesce(\n min(cast(balance_transaction_created_at as date)), \n cast({{ dbt.dateadd(\"month\", -1, \"current_date\") }} as date)\n ) as min_date\n from {{ ref('stripe__balance_transactions') }}\n {% endset -%}\n\n {%- set first_date_pre = dbt_utils.get_single_value(first_date_query) %}\n {% set first_date = \"cast('\" ~ first_date_pre ~ \"' as date)\" %}\n\n {% set last_date_query %}\n select coalesce(\n greatest(max(cast(balance_transaction_created_at as date)), cast(current_date as date)),\n cast(current_date as date)\n ) as max_date\n from {{ ref('stripe__balance_transactions') }}\n {% endset %}\n\n {% set last_date_pre = dbt_utils.get_single_value(last_date_query) %}\n {% set last_date = \"cast('\" ~ last_date_pre ~ \"' as date)\" %}\n\n {% else %}\n\n {% set first_date = dbt.dateadd(\"month\", -1, \"current_date\") %}\n {% set last_date = dbt.current_timestamp() %}\n\n {% endif %}\n\n {{ dbt_utils.date_spine(\n datepart=\"day\",\n start_date=first_date,\n end_date=dbt.dateadd(\"day\", 1, last_date)\n ) }}\n\n),\n\naccount as (\n select *\n from {{ ref('stg_stripe__account') }}\n),\n\ndate_spine as (\n select\n cast({{ dbt.date_trunc(\"day\", \"date_day\") }} as date) as date_day, \n cast({{ dbt.date_trunc(\"week\", \"date_day\") }} as date) as date_week, \n cast({{ dbt.date_trunc(\"month\", \"date_day\") }} as date) as date_month,\n cast({{ dbt.date_trunc(\"year\", \"date_day\") }} as date) as date_year, \n row_number() over (order by cast({{ dbt.date_trunc(\"day\", \"date_day\") }} as date)) as date_index\n from spine\n),\n\nfinal as (\n select distinct\n account.account_id,\n account.source_relation,\n date_spine.date_day,\n date_spine.date_week,\n date_spine.date_month,\n date_spine.date_year,\n date_spine.date_index\n from account \n cross join date_spine\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__balance_transactions", "package": null, "version": null}, {"name": "stg_stripe__account", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.current_timestamp", "macro.dbt_utils.date_spine", "macro.dbt.date_trunc"], "nodes": ["model.stripe.stripe__balance_transactions", "model.stripe.stg_stripe__account"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__date_spine.sql", "compiled": true, "compiled_code": "-- depends_on: \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"\nwith spine as (\n\n \n\n \n \n\n \n\n \n\n\n\n\n\nwith rawdata as (\n\n \n\n \n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n \n p0.generated_number * power(2, 0)\n + \n \n p1.generated_number * power(2, 1)\n + \n \n p2.generated_number * power(2, 2)\n + \n \n p3.generated_number * power(2, 3)\n + \n \n p4.generated_number * power(2, 4)\n \n \n + 1\n as generated_number\n\n from\n\n \n p as p0\n cross join \n \n p as p1\n cross join \n \n p as p2\n cross join \n \n p as p3\n cross join \n \n p as p4\n \n \n\n )\n\n select *\n from unioned\n where generated_number <= 32\n order by generated_number\n\n\n\n),\n\nall_periods as (\n\n select (\n \n\n \n\n current_date + ((interval '1 month') * (-1))\n\n + ((interval '1 day') * (row_number() over (order by generated_number) - 1))\n\n\n ) as date_day\n from rawdata\n\n),\n\nfiltered as (\n\n select *\n from all_periods\n where date_day <= \n\n now() + ((interval '1 day') * (1))\n\n\n\n)\n\nselect * from filtered\n\n\n\n),\n\naccount as (\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__account\"\n),\n\ndate_spine as (\n select\n cast(date_trunc('day', date_day) as date) as date_day, \n cast(date_trunc('week', date_day) as date) as date_week, \n cast(date_trunc('month', date_day) as date) as date_month,\n cast(date_trunc('year', date_day) as date) as date_year, \n row_number() over (order by cast(date_trunc('day', date_day) as date)) as date_index\n from spine\n),\n\nfinal as (\n select distinct\n account.account_id,\n account.source_relation,\n date_spine.date_day,\n date_spine.date_week,\n date_spine.date_month,\n date_spine.date_year,\n date_spine.date_index\n from account \n cross join date_spine\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__account_daily": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__account_daily", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__account_daily.sql", "original_file_path": "models/intermediate/int_stripe__account_daily.sql", "unique_id": "model.stripe.int_stripe__account_daily", "fqn": ["stripe", "intermediate", "int_stripe__account_daily"], "alias": "int_stripe__account_daily", "checksum": {"name": "sha256", "checksum": "7f8b7bbf1c08ceb1861e26527cec63ce3e634a4f8fe05dbfa63d4139a9791751"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Each record represents each day's ending balances per account.", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.173393, "relation_name": "\"postgres\".\"public_stripe_dev\".\"int_stripe__account_daily\"", "raw_code": "with date_spine as (\n\n select * \n from {{ ref('int_stripe__date_spine') }}\n\n), balance_transaction as (\n\n select *,\n case \n when balance_transaction_type = 'payout' \n then {{ date_timezone('balance_transaction_available_on') }} \n else {{ date_timezone('balance_transaction_created_at') }}\n end as date\n from {{ ref('stripe__balance_transactions') }}\n\n), incomplete_charges as (\n\n select *\n from {{ ref('int_stripe__incomplete_charges') }} \n\n), daily_account_balance_transactions as (\n\n select\n date_spine.date_day,\n date_spine.account_id,\n date_spine.source_relation,\n sum(case when balance_transaction.balance_transaction_type in ('charge', 'payment') \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_sales_amount,\n sum(case when balance_transaction.balance_transaction_type in ('payment_refund', 'refund') \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_refunds_amount,\n sum(case when balance_transaction.balance_transaction_type = 'adjustment' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_adjustments_amount,\n sum(case when balance_transaction.balance_transaction_type not in ('charge', 'payment', 'payment_refund', 'refund', 'adjustment', 'payout') and balance_transaction.balance_transaction_type not like '%transfer%' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_other_transactions_amount,\n sum(case when balance_transaction.balance_transaction_type <> 'payout' and balance_transaction.balance_transaction_type not like '%transfer%' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_gross_transaction_amount,\n sum(case when balance_transaction.balance_transaction_type <> 'payout' and balance_transaction.balance_transaction_type not like '%transfer%' \n then balance_transaction_net \n else 0 end) as total_daily_net_transactions_amount,\n sum(case when balance_transaction.balance_transaction_type = 'payout' or balance_transaction.balance_transaction_type like '%transfer%' \n then balance_transaction_fee * -1.0\n else 0 end) as total_daily_payout_fee_amount,\n sum(case when balance_transaction.balance_transaction_type = 'payout' or balance_transaction.balance_transaction_type like '%transfer%' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_gross_payout_amount,\n sum(case when balance_transaction.balance_transaction_type = 'payout' or balance_transaction.balance_transaction_type like '%transfer%' \n then balance_transaction_fee * -1.0 \n else balance_transaction_net end) as daily_net_activity_amount,\n sum(case when balance_transaction.balance_transaction_type in ('payment', 'charge') \n then 1 \n else 0 end) as total_daily_sales_count,\n sum(case when balance_transaction.balance_transaction_type = 'payout' \n then 1\n else 0 end) as total_daily_payouts_count,\n count(distinct case when balance_transaction.balance_transaction_type = 'adjustment'\n then {{ 'coalesce(balance_transaction_source_id, payout_id)' if var('stripe__using_payouts', True) else 'balance_transaction_source_id' }}\n else null end) as total_daily_adjustments_count\n from date_spine\n left join balance_transaction\n on cast({{ dbt.date_trunc('day', 'balance_transaction.date') }} as date) = date_spine.date_day\n and balance_transaction.source_relation = date_spine.source_relation\n group by 1,2,3\n\n), daily_failed_charges as (\n\n select\n {{ date_timezone('created_at') }} as date,\n source_relation,\n count(*) as total_daily_failed_charge_count,\n sum(amount) as total_daily_failed_charge_amount\n from incomplete_charges\n group by 1,2\n)\n\nselect\n daily_account_balance_transactions.date_day,\n daily_account_balance_transactions.account_id,\n daily_account_balance_transactions.source_relation,\n coalesce(daily_account_balance_transactions.total_daily_sales_amount,0) as total_daily_sales_amount,\n coalesce(daily_account_balance_transactions.total_daily_refunds_amount,0) as total_daily_refunds_amount,\n coalesce(daily_account_balance_transactions.total_daily_adjustments_amount,0) as total_daily_adjustments_amount,\n coalesce(daily_account_balance_transactions.total_daily_other_transactions_amount,0) as total_daily_other_transactions_amount,\n coalesce(daily_account_balance_transactions.total_daily_gross_transaction_amount,0) as total_daily_gross_transaction_amount,\n coalesce(daily_account_balance_transactions.total_daily_net_transactions_amount,0) as total_daily_net_transactions_amount,\n coalesce(daily_account_balance_transactions.total_daily_payout_fee_amount,0) as total_daily_payout_fee_amount,\n coalesce(daily_account_balance_transactions.total_daily_gross_payout_amount,0) as total_daily_gross_payout_amount,\n coalesce(daily_account_balance_transactions.daily_net_activity_amount,0) as daily_net_activity_amount,\n coalesce((daily_account_balance_transactions.daily_net_activity_amount + daily_account_balance_transactions.total_daily_gross_payout_amount), 0) as daily_end_balance_amount,\n coalesce(daily_account_balance_transactions.total_daily_sales_count, 0) as total_daily_sales_count,\n coalesce(daily_account_balance_transactions.total_daily_payouts_count, 0) as total_daily_payouts_count,\n coalesce(daily_account_balance_transactions.total_daily_adjustments_count, 0) as total_daily_adjustments_count,\n coalesce(daily_failed_charges.total_daily_failed_charge_count, 0) as total_daily_failed_charge_count,\n coalesce(daily_failed_charges.total_daily_failed_charge_amount, 0) as total_daily_failed_charge_amount\n\nfrom daily_account_balance_transactions\nleft join daily_failed_charges\n on daily_account_balance_transactions.date_day = daily_failed_charges.date\n and daily_account_balance_transactions.source_relation = daily_failed_charges.source_relation", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_stripe__date_spine", "package": null, "version": null}, {"name": "stripe__balance_transactions", "package": null, "version": null}, {"name": "int_stripe__incomplete_charges", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.date_timezone", "macro.dbt.date_trunc"], "nodes": ["model.stripe.int_stripe__date_spine", "model.stripe.stripe__balance_transactions", "model.stripe.int_stripe__incomplete_charges"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__account_daily.sql", "compiled": true, "compiled_code": "with date_spine as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"int_stripe__date_spine\"\n\n), balance_transaction as (\n\n select *,\n case \n when balance_transaction_type = 'payout' \n then \n\ndate_trunc('day', \n\n\n balance_transaction_available_on\n\n\n) \n else \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)\n end as date\n from \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"\n\n), incomplete_charges as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"int_stripe__incomplete_charges\" \n\n), daily_account_balance_transactions as (\n\n select\n date_spine.date_day,\n date_spine.account_id,\n date_spine.source_relation,\n sum(case when balance_transaction.balance_transaction_type in ('charge', 'payment') \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_sales_amount,\n sum(case when balance_transaction.balance_transaction_type in ('payment_refund', 'refund') \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_refunds_amount,\n sum(case when balance_transaction.balance_transaction_type = 'adjustment' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_adjustments_amount,\n sum(case when balance_transaction.balance_transaction_type not in ('charge', 'payment', 'payment_refund', 'refund', 'adjustment', 'payout') and balance_transaction.balance_transaction_type not like '%transfer%' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_other_transactions_amount,\n sum(case when balance_transaction.balance_transaction_type <> 'payout' and balance_transaction.balance_transaction_type not like '%transfer%' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_gross_transaction_amount,\n sum(case when balance_transaction.balance_transaction_type <> 'payout' and balance_transaction.balance_transaction_type not like '%transfer%' \n then balance_transaction_net \n else 0 end) as total_daily_net_transactions_amount,\n sum(case when balance_transaction.balance_transaction_type = 'payout' or balance_transaction.balance_transaction_type like '%transfer%' \n then balance_transaction_fee * -1.0\n else 0 end) as total_daily_payout_fee_amount,\n sum(case when balance_transaction.balance_transaction_type = 'payout' or balance_transaction.balance_transaction_type like '%transfer%' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_gross_payout_amount,\n sum(case when balance_transaction.balance_transaction_type = 'payout' or balance_transaction.balance_transaction_type like '%transfer%' \n then balance_transaction_fee * -1.0 \n else balance_transaction_net end) as daily_net_activity_amount,\n sum(case when balance_transaction.balance_transaction_type in ('payment', 'charge') \n then 1 \n else 0 end) as total_daily_sales_count,\n sum(case when balance_transaction.balance_transaction_type = 'payout' \n then 1\n else 0 end) as total_daily_payouts_count,\n count(distinct case when balance_transaction.balance_transaction_type = 'adjustment'\n then coalesce(balance_transaction_source_id, payout_id)\n else null end) as total_daily_adjustments_count\n from date_spine\n left join balance_transaction\n on cast(date_trunc('day', balance_transaction.date) as date) = date_spine.date_day\n and balance_transaction.source_relation = date_spine.source_relation\n group by 1,2,3\n\n), daily_failed_charges as (\n\n select\n \n\ndate_trunc('day', \n\n\n created_at\n\n\n) as date,\n source_relation,\n count(*) as total_daily_failed_charge_count,\n sum(amount) as total_daily_failed_charge_amount\n from incomplete_charges\n group by 1,2\n)\n\nselect\n daily_account_balance_transactions.date_day,\n daily_account_balance_transactions.account_id,\n daily_account_balance_transactions.source_relation,\n coalesce(daily_account_balance_transactions.total_daily_sales_amount,0) as total_daily_sales_amount,\n coalesce(daily_account_balance_transactions.total_daily_refunds_amount,0) as total_daily_refunds_amount,\n coalesce(daily_account_balance_transactions.total_daily_adjustments_amount,0) as total_daily_adjustments_amount,\n coalesce(daily_account_balance_transactions.total_daily_other_transactions_amount,0) as total_daily_other_transactions_amount,\n coalesce(daily_account_balance_transactions.total_daily_gross_transaction_amount,0) as total_daily_gross_transaction_amount,\n coalesce(daily_account_balance_transactions.total_daily_net_transactions_amount,0) as total_daily_net_transactions_amount,\n coalesce(daily_account_balance_transactions.total_daily_payout_fee_amount,0) as total_daily_payout_fee_amount,\n coalesce(daily_account_balance_transactions.total_daily_gross_payout_amount,0) as total_daily_gross_payout_amount,\n coalesce(daily_account_balance_transactions.daily_net_activity_amount,0) as daily_net_activity_amount,\n coalesce((daily_account_balance_transactions.daily_net_activity_amount + daily_account_balance_transactions.total_daily_gross_payout_amount), 0) as daily_end_balance_amount,\n coalesce(daily_account_balance_transactions.total_daily_sales_count, 0) as total_daily_sales_count,\n coalesce(daily_account_balance_transactions.total_daily_payouts_count, 0) as total_daily_payouts_count,\n coalesce(daily_account_balance_transactions.total_daily_adjustments_count, 0) as total_daily_adjustments_count,\n coalesce(daily_failed_charges.total_daily_failed_charge_count, 0) as total_daily_failed_charge_count,\n coalesce(daily_failed_charges.total_daily_failed_charge_amount, 0) as total_daily_failed_charge_amount\n\nfrom daily_account_balance_transactions\nleft join daily_failed_charges\n on daily_account_balance_transactions.date_day = daily_failed_charges.date\n and daily_account_balance_transactions.source_relation = daily_failed_charges.source_relation", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__account_partitions": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__account_partitions", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__account_partitions.sql", "original_file_path": "models/intermediate/int_stripe__account_partitions.sql", "unique_id": "model.stripe.int_stripe__account_partitions", "fqn": ["stripe", "intermediate", "int_stripe__account_partitions"], "alias": "int_stripe__account_partitions", "checksum": {"name": "sha256", "checksum": "28eebfc2734b6f8ec807f0824ed7b2732cd2c634e492dfb51ce8cca962fd657c"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Each record is a group of partitioned account totals updating null values with zeroes to eventually calculate running totals downstream.", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.1741765, "relation_name": "\"postgres\".\"public_stripe_dev\".\"int_stripe__account_partitions\"", "raw_code": "{% set rolling_fields = ['rolling_total_daily_sales_amount', 'rolling_total_daily_refunds_amount', 'rolling_total_daily_adjustments_amount', 'rolling_total_daily_other_transactions_amount', 'rolling_total_daily_gross_transaction_amount', 'rolling_total_daily_net_transactions_amount', 'rolling_total_daily_payout_fee_amount', 'rolling_total_daily_gross_payout_amount', 'rolling_daily_net_activity_amount', 'rolling_daily_end_balance_amount', 'rolling_total_daily_sales_count', 'rolling_total_daily_payouts_count', 'rolling_total_daily_adjustments_count', 'rolling_total_daily_failed_charge_count', 'rolling_total_daily_failed_charge_amount'] %}\n\nwith account_rolling_totals as (\n\n select * \n from {{ ref('int_stripe__account_rolling_totals') }}\n),\n\nfinal as (\n\n select\n *,\n {% for f in rolling_fields %}\n sum(case when {{ f }} is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as {{ f }}_partition\n {%- if not loop.last -%},{%- endif -%}\n {% endfor %} \n from account_rolling_totals\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_stripe__account_rolling_totals", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.int_stripe__account_rolling_totals"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__account_partitions.sql", "compiled": true, "compiled_code": "\n\nwith account_rolling_totals as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"int_stripe__account_rolling_totals\"\n),\n\nfinal as (\n\n select\n *,\n \n sum(case when rolling_total_daily_sales_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_sales_amount_partition,\n sum(case when rolling_total_daily_refunds_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_refunds_amount_partition,\n sum(case when rolling_total_daily_adjustments_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_adjustments_amount_partition,\n sum(case when rolling_total_daily_other_transactions_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_other_transactions_amount_partition,\n sum(case when rolling_total_daily_gross_transaction_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_gross_transaction_amount_partition,\n sum(case when rolling_total_daily_net_transactions_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_net_transactions_amount_partition,\n sum(case when rolling_total_daily_payout_fee_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_payout_fee_amount_partition,\n sum(case when rolling_total_daily_gross_payout_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_gross_payout_amount_partition,\n sum(case when rolling_daily_net_activity_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_daily_net_activity_amount_partition,\n sum(case when rolling_daily_end_balance_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_daily_end_balance_amount_partition,\n sum(case when rolling_total_daily_sales_count is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_sales_count_partition,\n sum(case when rolling_total_daily_payouts_count is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_payouts_count_partition,\n sum(case when rolling_total_daily_adjustments_count is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_adjustments_count_partition,\n sum(case when rolling_total_daily_failed_charge_count is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_failed_charge_count_partition,\n sum(case when rolling_total_daily_failed_charge_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_failed_charge_amount_partition \n from account_rolling_totals\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__subscription_discount": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__subscription_discount", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__subscription_discount.sql", "original_file_path": "models/intermediate/int_stripe__subscription_discount.sql", "unique_id": "model.stripe.int_stripe__subscription_discount", "fqn": ["stripe", "intermediate", "int_stripe__subscription_discount"], "alias": "int_stripe__subscription_discount", "checksum": {"name": "sha256", "checksum": "a51085c09dd685beb01d204cc6271c086158d11692e1754f3e5fa28967336eef"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "ephemeral", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "ephemeral", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130900.6250875, "relation_name": null, "raw_code": "{{ config(enabled=var('stripe__using_subscription_discounts', True) and var('stripe__using_coupons', True)) }}\n\nwith subscription_discount as (\n\n select *\n from {{ ref('stg_stripe__subscription_discount') }}\n\n),\n\ncoupon as (\n\n select *\n from {{ ref('stg_stripe__coupon') }}\n\n),\n\nsubscription_discount_schedule as (\n\n select\n subscription_discount.source_relation,\n subscription_discount.subscription_id,\n subscription_discount.customer_id,\n subscription_discount.coupon_id,\n subscription_discount.start_at,\n subscription_discount.end_at,\n cast({{ dbt.date_trunc('month', 'subscription_discount.start_at') }} as date) as start_month,\n coupon.percent_off,\n coupon.amount_off,\n coupon.duration,\n coupon.duration_in_months,\n coupon.currency as coupon_currency\n from subscription_discount\n left join coupon\n on subscription_discount.source_relation = coupon.source_relation\n and subscription_discount.coupon_id = coupon.coupon_id\n where subscription_discount.coupon_id is not null\n and subscription_discount.start_at is not null\n\n),\n\nsubscription_discount_bounds as (\n\n select\n subscription_discount_schedule.*,\n\n case\n when duration = 'forever' then null\n\n when duration = 'once' then\n cast({{ dbt.dateadd('month', 1, dbt.date_trunc('month', 'subscription_discount_schedule.start_at')) }} as date)\n\n when duration = 'repeating' then\n cast({{ dbt.dateadd(\n 'month',\n 'coalesce(subscription_discount_schedule.duration_in_months, 1)',\n dbt.date_trunc('month', 'subscription_discount_schedule.start_at')\n ) }} as date)\n\n else null\n end as end_month\n\n from subscription_discount_schedule\n\n)\n\nselect *\nfrom subscription_discount_bounds", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_discount", "package": null, "version": null}, {"name": "stg_stripe__coupon", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.date_trunc", "macro.dbt.dateadd"], "nodes": ["model.stripe.stg_stripe__subscription_discount", "model.stripe.stg_stripe__coupon"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__subscription_discount.sql", "compiled": true, "compiled_code": "\n\nwith subscription_discount as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_discount\"\n\n),\n\ncoupon as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__coupon\"\n\n),\n\nsubscription_discount_schedule as (\n\n select\n subscription_discount.source_relation,\n subscription_discount.subscription_id,\n subscription_discount.customer_id,\n subscription_discount.coupon_id,\n subscription_discount.start_at,\n subscription_discount.end_at,\n cast(date_trunc('month', subscription_discount.start_at) as date) as start_month,\n coupon.percent_off,\n coupon.amount_off,\n coupon.duration,\n coupon.duration_in_months,\n coupon.currency as coupon_currency\n from subscription_discount\n left join coupon\n on subscription_discount.source_relation = coupon.source_relation\n and subscription_discount.coupon_id = coupon.coupon_id\n where subscription_discount.coupon_id is not null\n and subscription_discount.start_at is not null\n\n),\n\nsubscription_discount_bounds as (\n\n select\n subscription_discount_schedule.*,\n\n case\n when duration = 'forever' then null\n\n when duration = 'once' then\n cast(\n\n date_trunc('month', subscription_discount_schedule.start_at) + ((interval '1 month') * (1))\n\n as date)\n\n when duration = 'repeating' then\n cast(\n\n date_trunc('month', subscription_discount_schedule.start_at) + ((interval '1 month') * (coalesce(subscription_discount_schedule.duration_in_months, 1)))\n\n as date)\n\n else null\n end as end_month\n\n from subscription_discount_schedule\n\n)\n\nselect *\nfrom subscription_discount_bounds", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__incomplete_charges": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__incomplete_charges", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__incomplete_charges.sql", "original_file_path": "models/intermediate/int_stripe__incomplete_charges.sql", "unique_id": "model.stripe.int_stripe__incomplete_charges", "fqn": ["stripe", "intermediate", "int_stripe__incomplete_charges"], "alias": "int_stripe__incomplete_charges", "checksum": {"name": "sha256", "checksum": "478dc0890ce153c98f9e0729d43e4a7f83df12fd31106232e4aca5a2de22c405"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Each record represents a charge that is incomplete.", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.1756017, "relation_name": "\"postgres\".\"public_stripe_dev\".\"int_stripe__incomplete_charges\"", "raw_code": "with charge as (\n\n select *\n from {{ ref('stg_stripe__charge') }}\n\n)\n\nselect \n balance_transaction_id,\n created_at,\n customer_id,\n connected_account_id,\n amount,\n source_relation\nfrom charge\nwhere not is_captured", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__charge", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.stg_stripe__charge"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__incomplete_charges.sql", "compiled": true, "compiled_code": "with charge as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\"\n\n)\n\nselect \n balance_transaction_id,\n created_at,\n customer_id,\n connected_account_id,\n amount,\n source_relation\nfrom charge\nwhere not is_captured", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__balance_change_from_activity_itemized_3": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__balance_change_from_activity_itemized_3", "resource_type": "model", "package_name": "stripe", "path": "stripe_financial_reports/stripe__balance_change_from_activity_itemized_3.sql", "original_file_path": "models/stripe_financial_reports/stripe__balance_change_from_activity_itemized_3.sql", "unique_id": "model.stripe.stripe__balance_change_from_activity_itemized_3", "fqn": ["stripe", "stripe_financial_reports", "stripe__balance_change_from_activity_itemized_3"], "alias": "stripe__balance_change_from_activity_itemized_3", "checksum": {"name": "sha256", "checksum": "345e11b009d26d0f4c876d44c50335e9a47beda0f6260d400f912dd9857a15bf"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Modeled after the [titular report](https://stripe.com/docs/reports/balance#schema-balance-change-from-activity-itemized-3) from Stripe, each record represents a balance transaction and additional details such as associated customer, charge, refund, card, and invoice information. This class of Balance reports is similar to a bank statement, helping you to reconcile your Stripe balance at the end of the month. The Balance report is most useful if you treat Stripe like a bank account for accounting purposes, reconciling the balance at the end of each month. If you have automatic payouts enabled and prefer to reconcile the transactions settled in each payout, see the Payout reconciliation report instead. The Balance Change from Activity reports provides a more detailed breakdown of your transactions by reporting category. This section includes all transactions except for payouts that affect your balance, including charges, refunds, disputes, other adjustments, and fees.", "columns": {"balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the balance transaction was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "available_on": {"name": "available_on", "description": "The date the balance transaction\u2019s net funds will become available in the Stripe balance. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO code for the currency in which gross, fee and net are defined.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "gross": {"name": "gross", "description": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "fee": {"name": "fee", "description": "Fees paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "net": {"name": "net", "description": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "reporting_category": {"name": "reporting_category", "description": "Reporting Category is a new categorization of balance transactions, meant to improve on the current type field.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_id": {"name": "source_id", "description": "The Stripe object to which this transaction is related.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the balance transaction. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_facing_amount": {"name": "customer_facing_amount", "description": "For transactions associated with charges, refunds, or disputes, the amount of the original charge, the refund, or the latest dispute. If the customer was charged in a different currency than your account\u2019s default, this field will reflect the amount as seen by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_facing_currency": {"name": "customer_facing_currency", "description": "For transactions associated with charges, refunds, or disputes, the three-letter ISO currency code for customer_facing_amount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "automatic_payout_id": {"name": "automatic_payout_id", "description": "ID of the automatically created payout associated with this balance transaction (only set if your account is on an automatic payout schedule).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "automatic_payout_effective_at": {"name": "automatic_payout_effective_at", "description": "The date we expect this automatic payout to arrive in your bank account, in the requested timezone, or UTC if not provided. This is also when the paid-out funds are deducted from your Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The unique ID of the related customer, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "Email address of the customer, if any, associated with this balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Name of the customer, if any, associated with this balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "Description provided when creating the customer, often used to store the customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_line_1": {"name": "customer_shipping_address_line_1", "description": "First line of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_line_2": {"name": "customer_shipping_address_line_2", "description": "Second line of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_city": {"name": "customer_shipping_address_city", "description": "City of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_state": {"name": "customer_shipping_address_state", "description": "State of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_postal_code": {"name": "customer_shipping_address_postal_code", "description": "Postal code of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_country": {"name": "customer_shipping_address_country", "description": "Country of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_line_1": {"name": "customer_address_line_1", "description": "First line of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_line_2": {"name": "customer_address_line_2", "description": "Second line of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_city": {"name": "customer_address_city", "description": "City of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_state": {"name": "customer_address_state", "description": "State of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_postal_code": {"name": "customer_address_postal_code", "description": "Postal code of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_country": {"name": "customer_address_country", "description": "Country of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "First line of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Second line of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "City of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "State of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "Postal code of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Country of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_line_1": {"name": "card_address_line_1", "description": "First line of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_line_2": {"name": "card_address_line_2", "description": "Second line of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_city": {"name": "card_address_city", "description": "City of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_state": {"name": "card_address_state", "description": "State of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_postal_code": {"name": "card_address_postal_code", "description": "Postal code of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_country": {"name": "card_address_country", "description": "Country of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "Unique identifier for the original charge associated with this balance transaction. Available for charges, refunds and disputes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "The unique ID of the related Payment Intent, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_created": {"name": "charge_created", "description": "Creation time of the original charge associated with this balance transaction. Available for charges, refunds and disputes. For charges that were separately authorized and captured, this is the authorization time. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "Unique ID for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_number": {"name": "invoice_number", "description": "Number for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "Unique ID for the subscription associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_method_type": {"name": "payment_method_type", "description": "The type of payment method used in the related payment.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_brand": {"name": "card_brand", "description": "Card brand, if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_funding": {"name": "card_funding", "description": "Card funding type, if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_country": {"name": "card_country", "description": "Two-letter ISO code representing the country of the card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "The dynamic statement descriptor or suffix specified when the related charge was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "dispute_reasons": {"name": "dispute_reasons", "description": "Reasons given by cardholder for disputes. Read more about [dispute reasons](https://docs.stripe.com/disputes/categories).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "For Stripe Connect activity related to a connected account, the unique ID for the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_country": {"name": "connected_account_country", "description": "For Stripe Connect activity related to a connected account, the two-letter ISO code representing the country of the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_direct_charge_id": {"name": "connected_account_direct_charge_id", "description": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.27251, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__balance_change_from_activity_itemized_3\"", "raw_code": "with balance_transaction_enhanced as (\n\n select *\n from {{ ref('stripe__balance_transactions')}}\n\n)\n\nselect \n balance_transaction_id,\n balance_transaction_created_at as created,\n balance_transaction_available_on as available_on,\n balance_transaction_currency as currency,\n balance_transaction_amount as gross,\n balance_transaction_fee as fee,\n balance_transaction_net as net,\n balance_transaction_reporting_category as reporting_category,\n balance_transaction_source_id as source_id,\n balance_transaction_description as description,\n customer_facing_amount,\n customer_facing_currency,\n\n {% if var('stripe__using_payouts', True) %}\n automatic_payout_id,\n automatic_payout_effective_at,\n {% endif %} \n \n customer_id,\n customer_email,\n customer_name,\n customer_description,\n customer_shipping_address_line_1,\n customer_shipping_address_line_2,\n customer_shipping_address_city,\n customer_shipping_address_state,\n customer_shipping_address_postal_code,\n customer_shipping_address_country,\n customer_address_line_1,\n customer_address_line_2,\n customer_address_city,\n customer_address_state,\n customer_address_postal_code,\n customer_address_country,\n charge_shipping_address_line_1 as shipping_address_line_1,\n charge_shipping_address_line_2 as shipping_address_line_2,\n charge_shipping_address_city as shipping_address_city,\n charge_shipping_address_state as shipping_address_state,\n charge_shipping_address_postal_code as shipping_address_postal_code,\n charge_shipping_address_country as shipping_address_country,\n card_address_line_1,\n card_address_line_2,\n card_address_city,\n card_address_state,\n card_address_postal_code,\n card_address_country,\n charge_id,\n payment_intent_id,\n charge_created_at as charge_created,\n\n {% if var('stripe__using_invoices', True) %}\n invoice_id,\n invoice_number,\n {% endif %}\n\n {% if var('stripe__using_subscriptions', True) %}\n subscription_id,\n {% endif %}\n \n {% if var('stripe__using_payment_method', True) %}\n payment_method_type,\n {% endif %}\n\n card_brand,\n card_funding,\n card_country,\n charge_statement_descriptor as statement_descriptor,\n dispute_reasons,\n connected_account_id,\n connected_account_country,\n connected_account_direct_charge_id,\n source_relation\n\nfrom balance_transaction_enhanced", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__balance_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.stripe__balance_transactions"]}, "compiled_path": "target/compiled/stripe/models/stripe_financial_reports/stripe__balance_change_from_activity_itemized_3.sql", "compiled": true, "compiled_code": "with balance_transaction_enhanced as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"\n\n)\n\nselect \n balance_transaction_id,\n balance_transaction_created_at as created,\n balance_transaction_available_on as available_on,\n balance_transaction_currency as currency,\n balance_transaction_amount as gross,\n balance_transaction_fee as fee,\n balance_transaction_net as net,\n balance_transaction_reporting_category as reporting_category,\n balance_transaction_source_id as source_id,\n balance_transaction_description as description,\n customer_facing_amount,\n customer_facing_currency,\n\n \n automatic_payout_id,\n automatic_payout_effective_at,\n \n \n customer_id,\n customer_email,\n customer_name,\n customer_description,\n customer_shipping_address_line_1,\n customer_shipping_address_line_2,\n customer_shipping_address_city,\n customer_shipping_address_state,\n customer_shipping_address_postal_code,\n customer_shipping_address_country,\n customer_address_line_1,\n customer_address_line_2,\n customer_address_city,\n customer_address_state,\n customer_address_postal_code,\n customer_address_country,\n charge_shipping_address_line_1 as shipping_address_line_1,\n charge_shipping_address_line_2 as shipping_address_line_2,\n charge_shipping_address_city as shipping_address_city,\n charge_shipping_address_state as shipping_address_state,\n charge_shipping_address_postal_code as shipping_address_postal_code,\n charge_shipping_address_country as shipping_address_country,\n card_address_line_1,\n card_address_line_2,\n card_address_city,\n card_address_state,\n card_address_postal_code,\n card_address_country,\n charge_id,\n payment_intent_id,\n charge_created_at as charge_created,\n\n \n invoice_id,\n invoice_number,\n \n\n \n subscription_id,\n \n \n \n payment_method_type,\n \n\n card_brand,\n card_funding,\n card_country,\n charge_statement_descriptor as statement_descriptor,\n dispute_reasons,\n connected_account_id,\n connected_account_country,\n connected_account_direct_charge_id,\n source_relation\n\nfrom balance_transaction_enhanced", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__ending_balance_reconciliation_itemized_4": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__ending_balance_reconciliation_itemized_4", "resource_type": "model", "package_name": "stripe", "path": "stripe_financial_reports/stripe__ending_balance_reconciliation_itemized_4.sql", "original_file_path": "models/stripe_financial_reports/stripe__ending_balance_reconciliation_itemized_4.sql", "unique_id": "model.stripe.stripe__ending_balance_reconciliation_itemized_4", "fqn": ["stripe", "stripe_financial_reports", "stripe__ending_balance_reconciliation_itemized_4"], "alias": "stripe__ending_balance_reconciliation_itemized_4", "checksum": {"name": "sha256", "checksum": "e5fece17bb11d55a3dca7f0aed0719b758db8acebab254bffd75e55fba2b40dd"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Modeled after the [titular report](https://stripe.com/docs/reports/payout-reconciliation#schema-ending-balance-reconciliation-itemized-4) from Stripe, each record represents an automatic payout and additional details such as associated customer, shipping, card, subscription information. This report belongs to the class of Payout Reconciliation reports. The Payout reconciliation report helps you match the payouts you receive in your bank account with the batches of payments and other transactions that they relate to. The payout reconciliation report is only available for users with automatic payouts enabled, and is optimized for users who prefer to reconcile the transactions included in each payout as a settlement batch. If you use manual payouts or prefer to track and reconcile your Stripe balance like a bank account, see the Balance report instead. To help you decide which report is right for you, see the guide for selecting reports. This Ending Balance Reconciliation section provides a similar breakdown of the transactions that hadn\u2019t been settled as of the report\u2019s end date.", "columns": {"automatic_payout_id": {"name": "automatic_payout_id", "description": "ID of the automatically created payout associated with this balance transaction (only set if your account is on an automatic payout schedule).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "automatic_payout_effective_at": {"name": "automatic_payout_effective_at", "description": "The date we expect this automatic payout to arrive in your bank account, in the requested timezone, or UTC if not provided. This is also when the paid-out funds are deducted from your Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the balance transaction was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "available_on": {"name": "available_on", "description": "The date the balance transaction\u2019s net funds will become available in the Stripe balance. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO code for the currency in which gross, fee and net are defined.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "gross": {"name": "gross", "description": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "fee": {"name": "fee", "description": "Fees paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "net": {"name": "net", "description": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "reporting_category": {"name": "reporting_category", "description": "Reporting Category is a new categorization of balance transactions, meant to improve on the current type field.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_id": {"name": "source_id", "description": "The Stripe object to which this transaction is related.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the balance transaction. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_facing_amount": {"name": "customer_facing_amount", "description": "For transactions associated with charges, refunds, or disputes, the amount of the original charge, the refund, or the latest dispute. If the customer was charged in a different currency than your account\u2019s default, this field will reflect the amount as seen by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_facing_currency": {"name": "customer_facing_currency", "description": "For transactions associated with charges, refunds, or disputes, the three-letter ISO currency code for customer_facing_amount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The unique ID of the related customer, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "Email address of the customer, if any, associated with this balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Name of the customer, if any, associated with this balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "Description provided when creating the customer, often used to store the customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_line_1": {"name": "customer_shipping_address_line_1", "description": "First line of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_line_2": {"name": "customer_shipping_address_line_2", "description": "Second line of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_city": {"name": "customer_shipping_address_city", "description": "City of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_state": {"name": "customer_shipping_address_state", "description": "State of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_postal_code": {"name": "customer_shipping_address_postal_code", "description": "Postal code of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_country": {"name": "customer_shipping_address_country", "description": "Country of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_line_1": {"name": "customer_address_line_1", "description": "First line of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_line_2": {"name": "customer_address_line_2", "description": "Second line of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_city": {"name": "customer_address_city", "description": "City of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_state": {"name": "customer_address_state", "description": "State of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_postal_code": {"name": "customer_address_postal_code", "description": "Postal code of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_country": {"name": "customer_address_country", "description": "Country of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "First line of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Second line of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "City of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "State of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "Postal code of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Country of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_line_1": {"name": "card_address_line_1", "description": "First line of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_line_2": {"name": "card_address_line_2", "description": "Second line of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_city": {"name": "card_address_city", "description": "City of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_state": {"name": "card_address_state", "description": "State of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_postal_code": {"name": "card_address_postal_code", "description": "Postal code of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_country": {"name": "card_address_country", "description": "Country of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "Unique identifier for the original charge associated with this balance transaction. Available for charges, refunds and disputes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "The unique ID of the related Payment Intent, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_created": {"name": "charge_created", "description": "Creation time of the original charge associated with this balance transaction. Available for charges, refunds and disputes. For charges that were separately authorized and captured, this is the authorization time. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "Unique ID for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_number": {"name": "invoice_number", "description": "Unique Number for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "Unique ID for the subscription associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_method_type": {"name": "payment_method_type", "description": "The type of payment method used in the related payment.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_brand": {"name": "card_brand", "description": "Card brand, if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_funding": {"name": "card_funding", "description": "Card funding type, if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_country": {"name": "card_country", "description": "Two-letter ISO code representing the country of the card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "The dynamic statement descriptor or suffix specified when the related charge was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "dispute_reasons": {"name": "dispute_reasons", "description": "Reasons given by cardholder for disputes. Read more about [dispute reasons](https://docs.stripe.com/disputes/categories).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "For Stripe Connect activity related to a connected account, the unique ID for the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_country": {"name": "connected_account_country", "description": "For Stripe Connect activity related to a connected account, the two-letter ISO code representing the country of the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_direct_charge_id": {"name": "connected_account_direct_charge_id", "description": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.2755744, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__ending_balance_reconciliation_itemized_4\"", "raw_code": "{{ config(enabled=var('stripe__using_payouts', True)) }}\n\nwith balance_transaction_enhanced as (\n\n select *\n from {{ ref('stripe__balance_transactions')}}\n where payout_balance_transaction_is_current\n and payout_is_automatic\n\n)\n\nselect\n automatic_payout_id,\n payout_arrival_date_at as automatic_payout_effective_at,\n balance_transaction_id,\n balance_transaction_created_at as created,\n balance_transaction_available_on as available_on,\n balance_transaction_currency as currency,\n balance_transaction_amount as gross,\n balance_transaction_fee as fee,\n balance_transaction_net as net,\n balance_transaction_reporting_category as reporting_category,\n balance_transaction_source_id as source_id,\n balance_transaction_description as description,\n customer_facing_amount,\n customer_facing_currency,\n customer_id,\n customer_email,\n customer_name,\n customer_description,\n customer_shipping_address_line_1,\n customer_shipping_address_line_2,\n customer_shipping_address_city,\n customer_shipping_address_state,\n customer_shipping_address_postal_code,\n customer_shipping_address_country,\n customer_address_line_1,\n customer_address_line_2,\n customer_address_city,\n customer_address_state,\n customer_address_postal_code,\n customer_address_country,\n charge_shipping_address_line_1 as shipping_address_line_1,\n charge_shipping_address_line_2 as shipping_address_line_2,\n charge_shipping_address_city as shipping_address_city,\n charge_shipping_address_state as shipping_address_state,\n charge_shipping_address_postal_code as shipping_address_postal_code,\n charge_shipping_address_country as shipping_address_country,\n card_address_line_1,\n card_address_line_2,\n card_address_city,\n card_address_state,\n card_address_postal_code,\n card_address_country,\n charge_id,\n payment_intent_id,\n charge_created_at as charge_created,\n\n {% if var('stripe__using_invoices', True) %}\n invoice_id,\n invoice_number,\n {% endif %}\n\n {% if var('stripe__using_subscriptions', True) %}\n subscription_id,\n {% endif %}\n \n {% if var('stripe__using_payment_method', True) %}\n payment_method_type,\n {% endif %}\n \n card_brand,\n card_funding,\n card_country,\n charge_statement_descriptor as statement_descriptor,\n dispute_reasons,\n connected_account_id, \n connected_account_country,\n connected_account_direct_charge_id,\n source_relation\n\nfrom balance_transaction_enhanced", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__balance_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.stripe__balance_transactions"]}, "compiled_path": "target/compiled/stripe/models/stripe_financial_reports/stripe__ending_balance_reconciliation_itemized_4.sql", "compiled": true, "compiled_code": "\n\nwith balance_transaction_enhanced as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"\n where payout_balance_transaction_is_current\n and payout_is_automatic\n\n)\n\nselect\n automatic_payout_id,\n payout_arrival_date_at as automatic_payout_effective_at,\n balance_transaction_id,\n balance_transaction_created_at as created,\n balance_transaction_available_on as available_on,\n balance_transaction_currency as currency,\n balance_transaction_amount as gross,\n balance_transaction_fee as fee,\n balance_transaction_net as net,\n balance_transaction_reporting_category as reporting_category,\n balance_transaction_source_id as source_id,\n balance_transaction_description as description,\n customer_facing_amount,\n customer_facing_currency,\n customer_id,\n customer_email,\n customer_name,\n customer_description,\n customer_shipping_address_line_1,\n customer_shipping_address_line_2,\n customer_shipping_address_city,\n customer_shipping_address_state,\n customer_shipping_address_postal_code,\n customer_shipping_address_country,\n customer_address_line_1,\n customer_address_line_2,\n customer_address_city,\n customer_address_state,\n customer_address_postal_code,\n customer_address_country,\n charge_shipping_address_line_1 as shipping_address_line_1,\n charge_shipping_address_line_2 as shipping_address_line_2,\n charge_shipping_address_city as shipping_address_city,\n charge_shipping_address_state as shipping_address_state,\n charge_shipping_address_postal_code as shipping_address_postal_code,\n charge_shipping_address_country as shipping_address_country,\n card_address_line_1,\n card_address_line_2,\n card_address_city,\n card_address_state,\n card_address_postal_code,\n card_address_country,\n charge_id,\n payment_intent_id,\n charge_created_at as charge_created,\n\n \n invoice_id,\n invoice_number,\n \n\n \n subscription_id,\n \n \n \n payment_method_type,\n \n \n card_brand,\n card_funding,\n card_country,\n charge_statement_descriptor as statement_descriptor,\n dispute_reasons,\n connected_account_id, \n connected_account_country,\n connected_account_direct_charge_id,\n source_relation\n\nfrom balance_transaction_enhanced", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__activity_itemized_2": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__activity_itemized_2", "resource_type": "model", "package_name": "stripe", "path": "stripe_financial_reports/stripe__activity_itemized_2.sql", "original_file_path": "models/stripe_financial_reports/stripe__activity_itemized_2.sql", "unique_id": "model.stripe.stripe__activity_itemized_2", "fqn": ["stripe", "stripe_financial_reports", "stripe__activity_itemized_2"], "alias": "stripe__activity_itemized_2", "checksum": {"name": "sha256", "checksum": "49b0fd6cface04314d1023d5e3f79941305620fa3b5c4dce2c2d4346c0dbfc14"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Modeled after the [titular report](https://stripe.com/docs/reports/activity#downloading-data) from Stripe, each record represents a balance transaction and additional details such as associated customer, charge, refund, fee, and invoice information. This class of Activity reports allows you to see your payments activity alongside the related fees for the same period of time. Designed specifically for users with Interchange Plus (IC+) pricing, it presents users with fees on the date they incur them. This makes it useful for calculating fee accrual entries and understanding your net payments activity. This itemized report contains a full list of individual transactions.", "columns": {"balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the related balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_created_at": {"name": "balance_transaction_created_at", "description": "Time (in UTC) at which the balance transaction affected your Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_reporting_category": {"name": "balance_transaction_reporting_category", "description": "(Beta) Reporting category is a top-level categorization of balance transactions for financial accounting purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO code for the currency in which the amount is defined.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount of this activity.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "The unique ID of the related charge, if any. For charges, this will be the charge itself; for refunds or disputes, this will be the original charge being refunded or disputed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "The unique ID of the related Payment Intent, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "refund_id": {"name": "refund_id", "description": "The unique ID of the related refund, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "dispute_ids": {"name": "dispute_ids", "description": "The unique IDs of the related disputes, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "Unique ID for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_number": {"name": "invoice_number", "description": "Number for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "Unique ID for the subscription associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transfer_id": {"name": "transfer_id", "description": "The unique ID of the related transfer, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The unique ID of the related customer, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "Email address of the customer, if any, associated with this balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Name of the customer, if any, associated with this balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "Description provided when creating the customer, often used to store the customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_line_1": {"name": "customer_shipping_address_line_1", "description": "First line of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_line_2": {"name": "customer_shipping_address_line_2", "description": "Second line of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_city": {"name": "customer_shipping_address_city", "description": "City of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_state": {"name": "customer_shipping_address_state", "description": "State of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_postal_code": {"name": "customer_shipping_address_postal_code", "description": "Postal code of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_shipping_address_country": {"name": "customer_shipping_address_country", "description": "Country of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_line_1": {"name": "customer_address_line_1", "description": "First line of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_line_2": {"name": "customer_address_line_2", "description": "Second line of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_city": {"name": "customer_address_city", "description": "City of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_state": {"name": "customer_address_state", "description": "State of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_postal_code": {"name": "customer_address_postal_code", "description": "Postal code of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_country": {"name": "customer_address_country", "description": "Country of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "First line of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Second line of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "City of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "State of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "Postal code of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Country of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_line_1": {"name": "card_address_line_1", "description": "First line of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_line_2": {"name": "card_address_line_2", "description": "Second line of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_city": {"name": "card_address_city", "description": "City of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_state": {"name": "card_address_state", "description": "State of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_postal_code": {"name": "card_address_postal_code", "description": "Postal code of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_country": {"name": "card_address_country", "description": "Country of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "automatic_payout_id": {"name": "automatic_payout_id", "description": "(Applies only to accounts on automatic payouts.) For paid-out activity, this will be the unique ID for the associated payout.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "automatic_payout_effective_at": {"name": "automatic_payout_effective_at", "description": "The date we expect this automatic payout to arrive in your bank account, in UTC. This is also when the paid-out funds are deducted from your Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_method_type": {"name": "payment_method_type", "description": "The type of payment method used in the related payment.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_brand": {"name": "card_brand", "description": "Card brand, if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_funding": {"name": "card_funding", "description": "Card funding type, if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_country": {"name": "card_country", "description": "Two-letter ISO code representing the country of the card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "The dynamic statement descriptor or suffix specified when the related charge was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_facing_amount": {"name": "customer_facing_amount", "description": "For transactions associated with charges, refunds, or disputes, the amount of the original charge, the refund, or the latest dispute. If the customer was charged in a different currency than your account\u2019s default, this field will reflect the amount as seen by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_description": {"name": "balance_transaction_description", "description": "An arbitrary string attached to the balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "For Stripe Connect activity related to a connected account, the unique ID for the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_country": {"name": "connected_account_country", "description": "For Stripe Connect activity related to a connected account, the two-letter ISO code representing the country of the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_direct_charge_id": {"name": "connected_account_direct_charge_id", "description": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.266766, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__activity_itemized_2\"", "raw_code": "with balance_transaction_enhanced as (\n\n select *\n from {{ ref('stripe__balance_transactions')}}\n\n)\n\nselect \n balance_transaction_id,\n balance_transaction_created_at,\n balance_transaction_reporting_category,\n balance_transaction_currency as currency,\n balance_transaction_amount as amount,\n charge_id,\n payment_intent_id,\n refund_id,\n dispute_ids,\n\n {% if var('stripe__using_invoices', True) %}\n invoice_id,\n invoice_number,\n {% endif %}\n\n {% if var('stripe__using_subscriptions', True) %}\n subscription_id,\n {% endif %}\n\n {% if var('stripe__using_transfers', True) %}\n transfer_id,\n {% endif %}\n\n customer_id,\n customer_email,\n customer_name,\n customer_description,\n customer_shipping_address_line_1,\n customer_shipping_address_line_2,\n customer_shipping_address_city,\n customer_shipping_address_state,\n customer_shipping_address_postal_code,\n customer_shipping_address_country,\n customer_address_line_1,\n customer_address_line_2,\n customer_address_city,\n customer_address_state,\n customer_address_postal_code,\n customer_address_country,\n charge_shipping_address_line_1 as shipping_address_line_1,\n charge_shipping_address_line_2 as shipping_address_line_2,\n charge_shipping_address_city as shipping_address_city,\n charge_shipping_address_state as shipping_address_state,\n charge_shipping_address_postal_code as shipping_address_postal_code,\n charge_shipping_address_country as shipping_address_country,\n card_address_line_1,\n card_address_line_2,\n card_address_city,\n card_address_state,\n card_address_postal_code,\n card_address_country,\n {% if var('stripe__using_payouts', True) %}\n automatic_payout_id,\n automatic_payout_effective_at,\n {% endif %}\n\n {% if var('stripe__using_payment_method', True) %}\n payment_method_type,\n {% endif %}\n \n card_brand,\n card_funding,\n card_country,\n charge_statement_descriptor as statement_descriptor,\n customer_facing_amount,\n balance_transaction_description,\n connected_account_id,\n connected_account_country,\n connected_account_direct_charge_id,\n source_relation\n\nfrom balance_transaction_enhanced", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__balance_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.stripe__balance_transactions"]}, "compiled_path": "target/compiled/stripe/models/stripe_financial_reports/stripe__activity_itemized_2.sql", "compiled": true, "compiled_code": "with balance_transaction_enhanced as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"\n\n)\n\nselect \n balance_transaction_id,\n balance_transaction_created_at,\n balance_transaction_reporting_category,\n balance_transaction_currency as currency,\n balance_transaction_amount as amount,\n charge_id,\n payment_intent_id,\n refund_id,\n dispute_ids,\n\n \n invoice_id,\n invoice_number,\n \n\n \n subscription_id,\n \n\n \n transfer_id,\n \n\n customer_id,\n customer_email,\n customer_name,\n customer_description,\n customer_shipping_address_line_1,\n customer_shipping_address_line_2,\n customer_shipping_address_city,\n customer_shipping_address_state,\n customer_shipping_address_postal_code,\n customer_shipping_address_country,\n customer_address_line_1,\n customer_address_line_2,\n customer_address_city,\n customer_address_state,\n customer_address_postal_code,\n customer_address_country,\n charge_shipping_address_line_1 as shipping_address_line_1,\n charge_shipping_address_line_2 as shipping_address_line_2,\n charge_shipping_address_city as shipping_address_city,\n charge_shipping_address_state as shipping_address_state,\n charge_shipping_address_postal_code as shipping_address_postal_code,\n charge_shipping_address_country as shipping_address_country,\n card_address_line_1,\n card_address_line_2,\n card_address_city,\n card_address_state,\n card_address_postal_code,\n card_address_country,\n \n automatic_payout_id,\n automatic_payout_effective_at,\n \n\n \n payment_method_type,\n \n \n card_brand,\n card_funding,\n card_country,\n charge_statement_descriptor as statement_descriptor,\n customer_facing_amount,\n balance_transaction_description,\n connected_account_id,\n connected_account_country,\n connected_account_direct_charge_id,\n source_relation\n\nfrom balance_transaction_enhanced", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__payout_itemized_3": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__payout_itemized_3", "resource_type": "model", "package_name": "stripe", "path": "stripe_financial_reports/stripe__payout_itemized_3.sql", "original_file_path": "models/stripe_financial_reports/stripe__payout_itemized_3.sql", "unique_id": "model.stripe.stripe__payout_itemized_3", "fqn": ["stripe", "stripe_financial_reports", "stripe__payout_itemized_3"], "alias": "stripe__payout_itemized_3", "checksum": {"name": "sha256", "checksum": "ca7cf7a97e656fe5c08d403814fe2407a6ec5aff51e849406410a7c20b6fee4f"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Modeled after the [titular report](https://stripe.com/docs/reports/balance#schema-payouts-itemized-3) from Stripe, each record represents a payout and its additional details such as expected arrival date and current status. This report belongs to the class of Balance reports. The Balance report is similar to a bank statement, helping you to reconcile your Stripe balance at the end of the month. The Balance report is most useful if you treat Stripe like a bank account for accounting purposes, reconciling the balance at the end of each month. If you have automatic payouts enabled and prefer to reconcile the transactions settled in each payout, see the Payout reconciliation report instead. The Payout Itemized report information on each payout made to your bank account.", "columns": {"payout_id": {"name": "payout_id", "description": "The Stripe object to which this transaction is related.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "effective_at": {"name": "effective_at", "description": "For automatic payouts, this is the date we expect funds to arrive in your bank account. For manual payouts, this is the date the payout was initiated. In both cases, it's the date the paid-out funds are deducted from your Stripe balance. All dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO code for the currency in which gross, fee and net are defined.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "gross": {"name": "gross", "description": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "fee": {"name": "fee", "description": "Fees paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "net": {"name": "net", "description": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "reporting_category": {"name": "reporting_category", "description": "Reporting Category is a new categorization of balance transactions, meant to improve on the current type field.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the balance transaction. Specifically for Payout, the relation is the ID of the balance transaction that describes the impact of this payout on your account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the balance transaction. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_expected_arrival_date": {"name": "payout_expected_arrival_date", "description": "Date the payout is scheduled to arrive in the bank. This factors in delays like weekends or bank holidays.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_status": {"name": "payout_status", "description": "Current status of the payout (paid, pending, in_transit, canceled or failed). A payout will be pending until it is submitted to the bank, at which point it becomes in_transit. It will then change to paid if the transaction goes through. If it does not go through successfully, its status will change to failed or canceled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_reversed_at": {"name": "payout_reversed_at", "description": "Typically this field will be empty. However, if the payout's status is canceled or failed, this field will reflect the time at which it entered that status. Times in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_type": {"name": "payout_type", "description": "Can be bank_account or card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_description": {"name": "payout_description", "description": "An arbitrary string attached to the payout. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payout_destination_id": {"name": "payout_destination_id", "description": "ID of the bank account or card the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.2778244, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__payout_itemized_3\"", "raw_code": "{{ config(enabled=var('stripe__using_payouts', True)) }}\n\nwith balance_transaction_enhanced as (\n\n select *\n from {{ ref('stripe__balance_transactions')}}\n where payout_balance_transaction_is_current\n\n)\n\nselect\n payout_id,\n case \n when payout_is_automatic = true then payout_arrival_date_at \n else payout_created_at\n end as effective_at,\n payout_currency as currency,\n balance_transaction_id,\n balance_transaction_amount as gross,\n balance_transaction_fee as fee,\n balance_transaction_net as net,\n balance_transaction_reporting_category as reporting_category,\n balance_transaction_description as description,\n payout_arrival_date_at as payout_expected_arrival_date,\n payout_status,\n case \n when lower(payout_status) in ('canceled','failed') then payout_created_at\n else null\n end as payout_reversed_at,\n payout_type,\n payout_description,\n coalesce(destination_bank_account_id, destination_card_id) as payout_destination_id,\n source_relation\n\nfrom balance_transaction_enhanced", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__balance_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.stripe__balance_transactions"]}, "compiled_path": "target/compiled/stripe/models/stripe_financial_reports/stripe__payout_itemized_3.sql", "compiled": true, "compiled_code": "\n\nwith balance_transaction_enhanced as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"\n where payout_balance_transaction_is_current\n\n)\n\nselect\n payout_id,\n case \n when payout_is_automatic = true then payout_arrival_date_at \n else payout_created_at\n end as effective_at,\n payout_currency as currency,\n balance_transaction_id,\n balance_transaction_amount as gross,\n balance_transaction_fee as fee,\n balance_transaction_net as net,\n balance_transaction_reporting_category as reporting_category,\n balance_transaction_description as description,\n payout_arrival_date_at as payout_expected_arrival_date,\n payout_status,\n case \n when lower(payout_status) in ('canceled','failed') then payout_created_at\n else null\n end as payout_reversed_at,\n payout_type,\n payout_description,\n coalesce(destination_bank_account_id, destination_card_id) as payout_destination_id,\n source_relation\n\nfrom balance_transaction_enhanced", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__invoice": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__invoice", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__invoice.sql", "original_file_path": "models/staging/stg_stripe__invoice.sql", "unique_id": "model.stripe.stg_stripe__invoice", "fqn": ["stripe", "staging", "stg_stripe__invoice"], "alias": "stg_stripe__invoice", "checksum": {"name": "sha256", "checksum": "c28f397594267d9ee453f4e652f597d91ce224bc7462b7cca804bf49e645034c"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Invoices are statements of amounts owed by a customer, and are either generated one-off, or generated periodically from a subscription.", "columns": {"invoice_id": {"name": "invoice_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount_due": {"name": "amount_due", "description": "Final amount due at this time for this invoice. If the invoice\u2019s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "amount_paid": {"name": "amount_paid", "description": "The amount, that was paid. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "amount_remaining": {"name": "amount_remaining", "description": "The amount remaining, that is due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "attempt_count": {"name": "attempt_count", "description": "Number of payment attempts made for this invoice, from the perspective of the payment retry schedule.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "auto_advance": {"name": "auto_advance", "description": "Controls whether Stripe will perform automatic collection of the invoice. When false, the invoice\u2019s state will not automatically advance without an explicit action.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_reason": {"name": "billing_reason", "description": "Indicates the reason why the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the latest charge generated for this invoice, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the customer who will be billed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users. Referenced as \u2018memo\u2019 in the Dashboard.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "due_date": {"name": "due_date", "description": "The date on which payment for this invoice is due. This value will be null for invoices where collection_method=charge_automatically.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "number": {"name": "number", "description": "A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer\u2019s unique invoice_prefix if it is specified.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_paid": {"name": "is_paid", "description": "Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer\u2019s account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "receipt_number": {"name": "receipt_number", "description": "This is the transaction number that appears on email receipts sent for this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription that the invoice pertains to,.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subtotal": {"name": "subtotal", "description": "Total of all subscriptions, invoice items, and prorations on the invoice before any discount or tax is applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "tax": {"name": "tax", "description": "The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total": {"name": "total", "description": "Total after discounts and taxes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "period_start": {"name": "period_start", "description": "Start of the usage period during for which the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "period_end": {"name": "period_end", "description": "End of the usage period during for which the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "default_payment_method_id": {"name": "default_payment_method_id", "description": "ID of the default payment method in this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "ID of the PaymentIntent associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "post_payment_credit_notes_amount": {"name": "post_payment_credit_notes_amount", "description": "Total amount of all post-payment credit notes issued for this invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "pre_payment_credit_notes_amount": {"name": "pre_payment_credit_notes_amount", "description": "Total amount of all pre-payment credit notes issued for this invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "status_transitions_finalized_at": {"name": "status_transitions_finalized_at", "description": "The time that the invoice draft was finalized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status_transitions_marked_uncollectible_at": {"name": "status_transitions_marked_uncollectible_at", "description": "The time that the invoice was marked uncollectible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status_transitions_paid_at": {"name": "status_transitions_paid_at", "description": "The time that the invoice was paid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status_transitions_voided_at": {"name": "status_transitions_voided_at", "description": "The time that the invoice was voided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3283043, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice\"", "raw_code": "{{ config(enabled=var('stripe__using_invoices', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__invoice_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__invoice_tmp')),\n staging_columns=get_invoice_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as invoice_id,\n default_payment_method_id,\n payment_intent_id,\n subscription_id,\n {{ stripe.convert_values('amount_due') }},\n {{ stripe.convert_values('amount_paid') }},\n {{ stripe.convert_values('amount_remaining') }},\n {{ stripe.convert_values('post_payment_credit_notes_amount') }},\n {{ stripe.convert_values('pre_payment_credit_notes_amount') }},\n {{ stripe.convert_values('subtotal') }},\n {{ stripe.convert_values('tax') }},\n {{ stripe.convert_values('total') }},\n attempt_count,\n auto_advance,\n billing_reason,\n charge_id,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n currency,\n customer_id,\n description,\n due_date,\n metadata,\n number,\n paid as is_paid,\n receipt_number,\n status,\n period_start,\n period_end,\n cast(status_transitions_finalized_at as {{ dbt.type_timestamp() }}) as status_transitions_finalized_at,\n cast(status_transitions_marked_uncollectible_at as {{ dbt.type_timestamp() }}) as status_transitions_marked_uncollectible_at,\n cast(status_transitions_paid_at as {{ dbt.type_timestamp() }}) as status_transitions_paid_at,\n cast(status_transitions_voided_at as {{ dbt.type_timestamp() }}) as status_transitions_voided_at,\n source_relation\n\n {% if var('stripe__invoice_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__invoice_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n and not coalesce(is_deleted, false)\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice_tmp", "package": null, "version": null}, {"name": "stg_stripe__invoice_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_invoice_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__invoice_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__invoice.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount_due as amount_due,\n amount_paid as amount_paid,\n amount_remaining as amount_remaining,\n cast(null as integer) as application_fee_amount,\n post_payment_credit_notes_amount as post_payment_credit_notes_amount,\n pre_payment_credit_notes_amount as pre_payment_credit_notes_amount,\n attempt_count as attempt_count,\n cast(null as boolean) as attempted,\n auto_advance as auto_advance,\n cast(null as TEXT) as billing,\n billing_reason as billing_reason,\n cast(null as TEXT) as charge_id,\n cast(null as timestamp) as created,\n currency as currency,\n customer_id as customer_id,\n cast(null as timestamp) as date,\n cast(null as TEXT) as default_source_id,\n description as description,\n due_date as due_date,\n cast(null as integer) as ending_balance,\n cast(null as timestamp) as finalized_at,\n cast(null as TEXT) as footer,\n cast(null as TEXT) as hosted_invoice_url,\n id as id,\n cast(null as TEXT) as invoice_pdf,\n is_deleted as is_deleted,\n livemode as livemode,\n metadata as metadata,\n cast(null as timestamp) as next_payment_attempt,\n number as number,\n paid as paid,\n default_payment_method_id as default_payment_method_id,\n cast(null as TEXT) as payment_intent_id,\n subscription_id as subscription_id,\n period_end as period_end,\n period_start as period_start,\n receipt_number as receipt_number,\n cast(null as integer) as starting_balance,\n cast(null as TEXT) as statement_descriptor,\n status as status,\n cast(null as timestamp) as status_transitions_finalized_at,\n cast(null as timestamp) as status_transitions_marked_uncollectible_at,\n cast(null as timestamp) as status_transitions_paid_at,\n cast(null as timestamp) as status_transitions_voided_at,\n cast(null as integer) as subscription_proration_date,\n subtotal as subtotal,\n tax as tax,\n cast(null as numeric(28,6)) as tax_percent,\n cast(null as integer) as threshold_reason_amount_gte,\n total as total,\n cast(null as timestamp) as webhooks_delivered_at\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as invoice_id,\n default_payment_method_id,\n payment_intent_id,\n subscription_id,\n \n\n\n\n \n amount_due as amount_due\n \n\n,\n \n\n\n\n \n amount_paid as amount_paid\n \n\n,\n \n\n\n\n \n amount_remaining as amount_remaining\n \n\n,\n \n\n\n\n \n post_payment_credit_notes_amount as post_payment_credit_notes_amount\n \n\n,\n \n\n\n\n \n pre_payment_credit_notes_amount as pre_payment_credit_notes_amount\n \n\n,\n \n\n\n\n \n subtotal as subtotal\n \n\n,\n \n\n\n\n \n tax as tax\n \n\n,\n \n\n\n\n \n total as total\n \n\n,\n attempt_count,\n auto_advance,\n billing_reason,\n charge_id,\n cast(created as timestamp) as created_at,\n currency,\n customer_id,\n description,\n due_date,\n metadata,\n number,\n paid as is_paid,\n receipt_number,\n status,\n period_start,\n period_end,\n cast(status_transitions_finalized_at as timestamp) as status_transitions_finalized_at,\n cast(status_transitions_marked_uncollectible_at as timestamp) as status_transitions_marked_uncollectible_at,\n cast(status_transitions_paid_at as timestamp) as status_transitions_paid_at,\n cast(status_transitions_voided_at as timestamp) as status_transitions_voided_at,\n source_relation\n\n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n and not coalesce(is_deleted, false)\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__card": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__card", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__card.sql", "original_file_path": "models/staging/stg_stripe__card.sql", "unique_id": "model.stripe.stg_stripe__card", "fqn": ["stripe", "staging", "stg_stripe__card"], "alias": "stg_stripe__card", "checksum": {"name": "sha256", "checksum": "1c54f0652656afb805a46e7aa1e1b11c52ea82764652ad27da251521ce3de3fb"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Details of a credit card that has been saved to the system.", "columns": {"card_id": {"name": "card_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "account_id": {"name": "account_id", "description": "ID of account that this card is associated with.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "brand": {"name": "brand", "description": "Card brand. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_address_city": {"name": "card_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.city"]}, "card_address_country": {"name": "card_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.country"]}, "card_address_line_1": {"name": "card_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.line_1"]}, "card_address_line_2": {"name": "card_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.line_2"]}, "card_address_state": {"name": "card_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.state"]}, "card_address_postal_code": {"name": "card_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.postal_code"]}, "country": {"name": "country", "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you\u2019ve collected.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the entry for the card was created", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The customer that this card belongs to. NULL if belongs to an account or recipient.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_name": {"name": "card_name", "description": "Cardholder name", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "recipient": {"name": "recipient", "description": "The recipient that this card belongs to. NULL if the card belongs to a customer or account instead.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "funding": {"name": "funding", "description": "Card funding type. Can be credit, debit, prepaid, or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "wallet_type": {"name": "wallet_type", "description": "The type of the card wallet, one of amex_express_checkout, apple_pay, google_pay, masterpass, samsung_pay, or visa_checkout. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.2982156, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__card\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__card_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__card_tmp')),\n staging_columns=get_card_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select \n id as card_id,\n account_id,\n address_city as card_address_city,\n address_country as card_address_country,\n address_line_1 as card_address_line_1,\n address_line_2 as card_address_line_2,\n address_state as card_address_state,\n address_zip as card_address_postal_code,\n wallet_type,\n brand,\n country,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n customer_id,\n name as card_name,\n recipient,\n funding,\n source_relation\n \n {% if var('stripe__card_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'card_metadata', list_of_properties = var('stripe__card_metadata')) }}\n {% endif %}\n\n {{ fivetran_utils.fill_pass_through_columns('card_pass_through_columns') }}\n\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__card_tmp", "package": null, "version": null}, {"name": "stg_stripe__card_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_card_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.stripe.stg_stripe__card_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__card.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__card_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n account_id as account_id,\n address_city as address_city,\n address_country as address_country,\n address_line_1 as address_line_1,\n address_line_2 as address_line_2,\n address_state as address_state,\n address_zip as address_zip,\n brand as brand,\n country as country,\n created as created,\n customer_id as customer_id,\n funding as funding,\n id as id,\n metadata as card_metadata,\n name as name,\n recipient as recipient,\n cast(null as TEXT) as wallet_type\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select \n id as card_id,\n account_id,\n address_city as card_address_city,\n address_country as card_address_country,\n address_line_1 as card_address_line_1,\n address_line_2 as card_address_line_2,\n address_state as card_address_state,\n address_zip as card_address_postal_code,\n wallet_type,\n brand,\n country,\n cast(created as timestamp) as created_at,\n customer_id,\n name as card_name,\n recipient,\n funding,\n source_relation\n \n \n\n \n\n\n\n\n\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payment_intent": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payment_intent", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__payment_intent.sql", "original_file_path": "models/staging/stg_stripe__payment_intent.sql", "unique_id": "model.stripe.stg_stripe__payment_intent", "fqn": ["stripe", "staging", "stg_stripe__payment_intent"], "alias": "stg_stripe__payment_intent", "checksum": {"name": "sha256", "checksum": "25ab1f2df84b80de8bff096d13ab9f77a13ffb0c58fceccd0dfb44ae29cd7452"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "A Payment Intent guides you through the process of collecting a payment from your customer.", "columns": {"payment_intent_id": {"name": "payment_intent_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the major currency unit. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "amount_capturable": {"name": "amount_capturable", "description": "Amount that can be captured from this PaymentIntent. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "amount_received": {"name": "amount_received", "description": "Amount that was collected by this PaymentIntent. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "application": {"name": "application", "description": "ID of the Connect application that created the PaymentIntent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "application_fee_amount": {"name": "application_fee_amount", "description": "The amount of the application fee (if any) for the resulting payment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "canceled_at": {"name": "canceled_at", "description": "Populated when status is canceled, this is the time at which the PaymentIntent was canceled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "cancellation_reason": {"name": "cancellation_reason", "description": "Reason for cancellation of this PaymentIntent, either user-provided (duplicate, fraudulent, requested_by_customer, or abandoned) or generated by Stripe internally (failed_invoice, void_invoice, or automatic).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "capture_method": {"name": "capture_method", "description": "Controls when the funds will be captured from the customer\u2019s account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "confirmation_method": {"name": "confirmation_method", "description": "Whether confirmed automatically or manually", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the Customer this PaymentIntent belongs to, if one exists.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_method_id": {"name": "payment_method_id", "description": "ID of the payment method used in this PaymentIntent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "receipt_email": {"name": "receipt_email", "description": "Email address that the receipt for the resulting payment will be sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "For non-card charges, you can use this value as the complete description that appears on your customers\u2019 statements.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of this PaymentIntent, one of requires_payment_method, requires_confirmation, requires_action, processing, requires_capture, canceled, or succeeded.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3141923, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_intent\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__payment_intent_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__payment_intent_tmp')),\n staging_columns=get_payment_intent_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as payment_intent_id,\n {{ stripe.convert_values('amount') }},\n {{ stripe.convert_values('amount_capturable') }},\n {{ stripe.convert_values('amount_received') }},\n {{ stripe.convert_values('application_fee_amount') }},\n application,\n cast(canceled_at as {{ dbt.type_timestamp() }}) as canceled_at,\n cancellation_reason,\n capture_method,\n confirmation_method,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n currency,\n customer_id,\n description,\n metadata,\n payment_method_id,\n receipt_email,\n statement_descriptor,\n status,\n source_relation\n\n {% if var('stripe__payment_intent_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__payment_intent_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payment_intent_tmp", "package": null, "version": null}, {"name": "stg_stripe__payment_intent_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_payment_intent_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__payment_intent_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__payment_intent.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_intent_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n amount_capturable as amount_capturable,\n amount_received as amount_received,\n application as application,\n application_fee_amount as application_fee_amount,\n canceled_at as canceled_at,\n cancellation_reason as cancellation_reason,\n capture_method as capture_method,\n confirmation_method as confirmation_method,\n created as created,\n currency as currency,\n customer_id as customer_id,\n description as description,\n id as id,\n last_payment_error_charge_id as last_payment_error_charge_id,\n last_payment_error_code as last_payment_error_code,\n last_payment_error_decline_code as last_payment_error_decline_code,\n last_payment_error_doc_url as last_payment_error_doc_url,\n last_payment_error_message as last_payment_error_message,\n last_payment_error_param as last_payment_error_param,\n last_payment_error_source_id as last_payment_error_source_id,\n last_payment_error_type as last_payment_error_type,\n livemode as livemode,\n cast(null as TEXT) as metadata,\n on_behalf_of as on_behalf_of,\n payment_method_id as payment_method_id,\n receipt_email as receipt_email,\n source_id as source_id,\n statement_descriptor as statement_descriptor,\n status as status,\n transfer_data_destination as transfer_data_destination,\n transfer_group as transfer_group\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as payment_intent_id,\n \n\n\n\n \n amount as amount\n \n\n,\n \n\n\n\n \n amount_capturable as amount_capturable\n \n\n,\n \n\n\n\n \n amount_received as amount_received\n \n\n,\n \n\n\n\n \n application_fee_amount as application_fee_amount\n \n\n,\n application,\n cast(canceled_at as timestamp) as canceled_at,\n cancellation_reason,\n capture_method,\n confirmation_method,\n cast(created as timestamp) as created_at,\n currency,\n customer_id,\n description,\n metadata,\n payment_method_id,\n receipt_email,\n statement_descriptor,\n status,\n source_relation\n\n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payment_method_card": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method_card", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__payment_method_card.sql", "original_file_path": "models/staging/stg_stripe__payment_method_card.sql", "unique_id": "model.stripe.stg_stripe__payment_method_card", "fqn": ["stripe", "staging", "stg_stripe__payment_method_card"], "alias": "stg_stripe__payment_method_card", "checksum": {"name": "sha256", "checksum": "39635653d6995c9ff1de1ff8431802fb542539a1e70ec089f3ebb3e4c0b0254f"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Table with the relationships between a payment method and a card", "columns": {"payment_method_id": {"name": "payment_method_id", "description": "ID of the payment method", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "brand": {"name": "brand", "description": "Card brand. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "funding": {"name": "funding", "description": "Card funding type. Can be credit, debit, prepaid, or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the charge that this card belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the payment method.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "wallet_type": {"name": "wallet_type", "description": "The type of the card wallet, one of amex_express_checkout, apple_pay, google_pay, masterpass, samsung_pay, or visa_checkout. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "three_d_secure_authentication_flow": {"name": "three_d_secure_authentication_flow", "description": "For authenticated transactions, how the customer was authenticated by the issuing bank.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "three_d_secure_result": {"name": "three_d_secure_result", "description": "Indicates the outcome of 3D Secure authentication.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "three_d_secure_result_reason": {"name": "three_d_secure_result_reason", "description": "Additional information about why 3D Secure succeeded or failed based on the result.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "three_d_secure_version": {"name": "three_d_secure_version", "description": "The version of 3D Secure that was used.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3163996, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_card\"", "raw_code": "{{ config(enabled=var('stripe__using_payment_method', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__payment_method_card_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__payment_method_card_tmp')),\n staging_columns=get_payment_method_card_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n payment_method_id,\n brand,\n funding,\n charge_id,\n type,\n wallet_type,\n three_d_secure_authentication_flow,\n three_d_secure_result,\n three_d_secure_result_reason,\n three_d_secure_version,\n source_relation\n\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payment_method_card_tmp", "package": null, "version": null}, {"name": "stg_stripe__payment_method_card_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_payment_method_card_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation"], "nodes": ["model.stripe.stg_stripe__payment_method_card_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__payment_method_card.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_card_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n brand as brand,\n charge_id as charge_id,\n funding as funding,\n payment_method_id as payment_method_id,\n type as type,\n wallet_type as wallet_type,\n cast(null as TEXT) as three_d_secure_authentication_flow,\n cast(null as TEXT) as three_d_secure_result,\n cast(null as TEXT) as three_d_secure_result_reason,\n cast(null as TEXT) as three_d_secure_version\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n payment_method_id,\n brand,\n funding,\n charge_id,\n type,\n wallet_type,\n three_d_secure_authentication_flow,\n three_d_secure_result,\n three_d_secure_result_reason,\n three_d_secure_version,\n source_relation\n\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__account": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__account", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__account.sql", "original_file_path": "models/staging/stg_stripe__account.sql", "unique_id": "model.stripe.stg_stripe__account", "fqn": ["stripe", "staging", "stg_stripe__account"], "alias": "stg_stripe__account", "checksum": {"name": "sha256", "checksum": "0f97c1383160fb3251b0a167844e6e1296b660fe88325fa697037af0149c2609"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Properties belonging to a Stripe account.", "columns": {"account_id": {"name": "account_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "business_profile_name": {"name": "business_profile_name", "description": "The customer-facing business name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "business_type": {"name": "business_type", "description": "The business type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "business_profile_mcc": {"name": "business_profile_mcc", "description": "The merchant category code for the account. MCCs are used to classify businesses based on the goods or services they provide.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charges_enabled": {"name": "charges_enabled", "description": "Whether the account can create live charges.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_address_city": {"name": "company_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_address_country": {"name": "company_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_address_line_1": {"name": "company_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_address_line_2": {"name": "company_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_address_postal_code": {"name": "company_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_address_state": {"name": "company_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_name": {"name": "company_name", "description": "The company\u2019s legal name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_phone": {"name": "company_phone", "description": "The company\u2019s phone number (used for verification).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "country": {"name": "country", "description": "The account's country.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the account was connected. Measured in seconds since the Unix epoch.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "default_currency": {"name": "default_currency", "description": "Three-letter ISO currency code representing the default currency for the account. This must be a currency that Stripe supports in the account\u2019s country.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "email": {"name": "email", "description": "An email address associated with the account. You can treat this as metadata; it is not used for authentication or messaging account holders.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Boolean of whether account has been deleted. Accounts created using test-mode keys can be deleted at any time. Standard accounts created using live-mode keys cannot be deleted. Custom or Express accounts created using live-mode keys can only be deleted once all balances are zero.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_payouts_enabled": {"name": "is_payouts_enabled", "description": "Boolean of whether payouts are enabled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "account_type": {"name": "account_type", "description": "Account type", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3505075, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__account\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__account_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__account_tmp')),\n staging_columns=get_account_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select \n id as account_id,\n business_profile_mcc,\n business_profile_name,\n business_type,\n charges_enabled,\n company_address_city,\n company_address_country,\n company_address_line_1,\n company_address_line_2,\n company_address_postal_code,\n company_address_state,\n company_name,\n company_phone,\n country,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n default_currency,\n email,\n is_deleted,\n metadata,\n payouts_enabled as is_payouts_enabled,\n type as account_type,\n source_relation\n\n {% if var('stripe__account_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__account_metadata')) }}\n {% endif %}\n\n from fields\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__account_tmp", "package": null, "version": null}, {"name": "stg_stripe__account_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_account_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp"], "nodes": ["model.stripe.stg_stripe__account_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__account.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__account_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n business_profile_name as business_profile_name,\n business_profile_mcc as business_profile_mcc,\n business_type as business_type,\n charges_enabled as charges_enabled,\n company_address_city as company_address_city,\n company_address_country as company_address_country,\n company_address_line_1 as company_address_line_1,\n company_address_line_2 as company_address_line_2,\n company_address_postal_code as company_address_postal_code,\n company_address_state as company_address_state,\n company_name as company_name,\n company_phone as company_phone,\n country as country,\n created as created,\n default_currency as default_currency,\n details_submitted as details_submitted,\n email as email,\n id as id,\n is_deleted as is_deleted,\n metadata as metadata,\n payouts_enabled as payouts_enabled,\n type as type\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select \n id as account_id,\n business_profile_mcc,\n business_profile_name,\n business_type,\n charges_enabled,\n company_address_city,\n company_address_country,\n company_address_line_1,\n company_address_line_2,\n company_address_postal_code,\n company_address_state,\n company_name,\n company_phone,\n country,\n cast(created as timestamp) as created_at,\n default_currency,\n email,\n is_deleted,\n metadata,\n payouts_enabled as is_payouts_enabled,\n type as account_type,\n source_relation\n\n \n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__transfer": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__transfer", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__transfer.sql", "original_file_path": "models/staging/stg_stripe__transfer.sql", "unique_id": "model.stripe.stg_stripe__transfer", "fqn": ["stripe", "staging", "stg_stripe__transfer"], "alias": "stg_stripe__transfer", "checksum": {"name": "sha256", "checksum": "96ec238c63dc99cf00768bce1be5f6e4f15d287542345dfa48e70adc1eb5fd7d"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Properties belonging to a Stripe transfer.", "columns": {"transfer_id": {"name": "transfer_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transfer_amount": {"name": "transfer_amount", "description": "Amount in currency units to be transferred. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "transfer_amount_reversed": {"name": "transfer_amount_reversed", "description": "Amount in currency units reversed (can be less than the amount attribute on the transfer if a partial reversal was issued). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "Balance transaction that describes the impact of this transfer on your account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transfer_created_at": {"name": "transfer_created_at", "description": "Time that this record of the transfer was first created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transfer_currency": {"name": "transfer_currency", "description": "Three-letter ISO currency code, in lowercase. Must be a supported currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transfer_description": {"name": "transfer_description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transfer_destination": {"name": "transfer_destination", "description": "ID of the Stripe account the transfer was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "destination_payment": {"name": "destination_payment", "description": "If the destination is a Stripe account, the payment that the destination account received for the transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "destination_payment_id": {"name": "destination_payment_id", "description": "If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transfer_metadata": {"name": "transfer_metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transfer_is_reversed": {"name": "transfer_is_reversed", "description": "Boolean of whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_transaction": {"name": "source_transaction", "description": "The source transaction related to this transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_transaction_id": {"name": "source_transaction_id", "description": "ID of the charge or payment that was used to fund the transfer. If null, the transfer was funded from the available balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_type": {"name": "source_type", "description": "The source balance this transfer came from. One of card, fpx, or bank_account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transfer_group": {"name": "transfer_group", "description": "A string that identifies this transaction as part of a group. See the Connect documentation for details.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3690515, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__transfer\"", "raw_code": "{{ config(enabled=var('stripe__using_transfers', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__transfer_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__transfer_tmp')),\n staging_columns=get_transfer_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select\n id as transfer_id,\n {{ stripe.convert_values('amount', alias='transfer_amount') }},\n {{ stripe.convert_values('amount_reversed', alias='transfer_amount_reversed') }},\n balance_transaction_id,\n cast(created as {{ dbt.type_timestamp() }}) as transfer_created_at,\n currency as transfer_currency,\n description as transfer_description,\n destination as transfer_destination,\n destination_payment,\n destination_payment_id,\n metadata as transfer_metadata,\n reversed as transfer_is_reversed,\n source_transaction,\n source_transaction_id,\n source_type,\n transfer_group,\n source_relation\n \n {% if var('stripe__transfer_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__transfer_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__transfer_tmp", "package": null, "version": null}, {"name": "stg_stripe__transfer_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_transfer_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__transfer_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__transfer.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__transfer_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n amount_reversed as amount_reversed,\n balance_transaction_id as balance_transaction_id,\n created as created,\n currency as currency,\n description as description,\n destination as destination,\n destination_payment as destination_payment,\n destination_payment_id as destination_payment_id,\n id as id,\n livemode as livemode,\n metadata as metadata,\n reversed as reversed,\n source_transaction as source_transaction,\n source_transaction_id as source_transaction_id,\n source_type as source_type,\n transfer_group as transfer_group\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select\n id as transfer_id,\n \n\n\n\n \n amount as transfer_amount\n \n\n,\n \n\n\n\n \n amount_reversed as transfer_amount_reversed\n \n\n,\n balance_transaction_id,\n cast(created as timestamp) as transfer_created_at,\n currency as transfer_currency,\n description as transfer_description,\n destination as transfer_destination,\n destination_payment,\n destination_payment_id,\n metadata as transfer_metadata,\n reversed as transfer_is_reversed,\n source_transaction,\n source_transaction_id,\n source_type,\n transfer_group,\n source_relation\n \n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__subscription_item": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_item", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__subscription_item.sql", "original_file_path": "models/staging/stg_stripe__subscription_item.sql", "unique_id": "model.stripe.stg_stripe__subscription_item", "fqn": ["stripe", "staging", "stg_stripe__subscription_item"], "alias": "stg_stripe__subscription_item", "checksum": {"name": "sha256", "checksum": "1141e318e93b7abf0da1601ba38272f79c8cd2791d0df6f95b0ebeddab15e242"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Subscription items allow you to create customer subscriptions with more than one plan, making it easy to represent complex billing relationships.", "columns": {"subscription_item_id": {"name": "subscription_item_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "plan_id": {"name": "plan_id", "description": "The ID of the plan associated with this subscription_item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription this item belongs to. Join key to the subscription_history table.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "current_period_start": {"name": "current_period_start", "description": "Start of the current period that the subscription has been invoiced for.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "current_period_end": {"name": "current_period_end", "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The quantity of the plan to which the customer is subscribed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3320546, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__subscription_item_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__subscription_item_tmp')),\n staging_columns=get_subscription_item_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as subscription_item_id,\n cast(plan_id as {{ dbt.type_string() }}) as plan_id,\n subscription_id,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n cast(current_period_start as {{ dbt.type_timestamp() }}) as current_period_start,\n cast(current_period_end as {{ dbt.type_timestamp() }}) as current_period_end,\n metadata,\n quantity,\n source_relation\n \n {% if var('stripe__subscription_item_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__subscription_item_metadata')) }}\n {% endif %}\n\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_item_tmp", "package": null, "version": null}, {"name": "stg_stripe__subscription_item_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_subscription_item_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_string", "macro.dbt.type_timestamp"], "nodes": ["model.stripe.stg_stripe__subscription_item_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__subscription_item.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item_tmp\"\n\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n created as created,\n current_period_end as current_period_end,\n current_period_start as current_period_start,\n id as id,\n metadata as metadata,\n plan_id as plan_id,\n quantity as quantity,\n subscription_id as subscription_id\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as subscription_item_id,\n cast(plan_id as TEXT) as plan_id,\n subscription_id,\n cast(created as timestamp) as created_at,\n cast(current_period_start as timestamp) as current_period_start,\n cast(current_period_end as timestamp) as current_period_end,\n metadata,\n quantity,\n source_relation\n \n \n\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__coupon": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__coupon", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__coupon.sql", "original_file_path": "models/staging/stg_stripe__coupon.sql", "unique_id": "model.stripe.stg_stripe__coupon", "fqn": ["stripe", "staging", "stg_stripe__coupon"], "alias": "stg_stripe__coupon", "checksum": {"name": "sha256", "checksum": "3b08deb1e7a0eedade23312e540ce8db0796ba4e824337a6b92bd95b3ad2f362"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Properties belonging to a Stripe coupon.", "columns": {"coupon_id": {"name": "coupon_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount_off": {"name": "amount_off", "description": "The amount taken off the total price in the selected currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "duration": {"name": "duration", "description": "The duration of the coupon. Typically \"forever,\" \"once,\" or \"repeating.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "duration_in_months": {"name": "duration_in_months", "description": "If the coupon does not last forever, the duration in months you can apply it. For a forever coupon, this attribute is null.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "max_redemptions": {"name": "max_redemptions", "description": "The maximum number of times this coupon can be redeemed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "coupon_name": {"name": "coupon_name", "description": "Name of the coupon or promotion.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "percent_off": {"name": "percent_off", "description": "The percentage taken off the total price.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "redeem_by": {"name": "redeem_by", "description": "The date by which the coupon must be redeemed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "times_redeemed": {"name": "times_redeemed", "description": "The number of times this coupon has been redeemed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "valid": {"name": "valid", "description": "Indicates whether the coupon can still be applied to a customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3818119, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__coupon\"", "raw_code": "{{ config(enabled=var('stripe__using_coupons', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__coupon_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__coupon_tmp')),\n staging_columns=get_coupon_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as coupon_id,\n name as coupon_name,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n cast(redeem_by as {{ dbt.type_timestamp() }}) as redeem_by,\n duration,\n duration_in_months,\n {{ stripe.convert_values('amount_off') }}, \n percent_off,\n currency,\n metadata,\n max_redemptions,\n times_redeemed,\n valid,\n source_relation\n\n {% if var('stripe__coupon_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__coupon_metadata')) }}\n {% endif %}\n \n from fields\n\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__coupon_tmp", "package": null, "version": null}, {"name": "stg_stripe__coupon_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_coupon_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp", "macro.stripe.convert_values", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__coupon_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__coupon.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__coupon_tmp\"\n\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount_off as amount_off,\n created as created,\n currency as currency,\n duration as duration,\n duration_in_months as duration_in_months,\n id as id,\n livemode as livemode,\n max_redemptions as max_redemptions,\n metadata as metadata,\n name as name,\n percent_off as percent_off,\n redeem_by as redeem_by,\n times_redeemed as times_redeemed,\n valid as valid\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as coupon_id,\n name as coupon_name,\n cast(created as timestamp) as created_at,\n cast(redeem_by as timestamp) as redeem_by,\n duration,\n duration_in_months,\n \n\n\n\n \n amount_off as amount_off\n \n\n, \n percent_off,\n currency,\n metadata,\n max_redemptions,\n times_redeemed,\n valid,\n source_relation\n\n \n \n from fields\n\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__credit_note_line_item": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note_line_item", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__credit_note_line_item.sql", "original_file_path": "models/staging/stg_stripe__credit_note_line_item.sql", "unique_id": "model.stripe.stg_stripe__credit_note_line_item", "fqn": ["stripe", "staging", "stg_stripe__credit_note_line_item"], "alias": "stg_stripe__credit_note_line_item", "checksum": {"name": "sha256", "checksum": "f236ade46d6ff12d1300cad9443bd19ae0320b3aaf4c37f3dcc0cca8766946df"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "The different items that a credit note contains.", "columns": {"credit_note_line_item_id": {"name": "credit_note_line_item_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_id": {"name": "credit_note_id", "description": "The ID of the credit note this item is a part of.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_line_item_amount": {"name": "credit_note_line_item_amount", "description": "The integer amount in currency units representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "credit_note_line_item_discount_amount": {"name": "credit_note_line_item_discount_amount", "description": "The integer amount in currency units representing the discount being credited for this line item. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "credit_note_line_item_description": {"name": "credit_note_line_item_description", "description": "Description of the item being credited.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The number of units of product being credited.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_line_item_type": {"name": "credit_note_line_item_type", "description": "The type of the credit note line item, one of invoice_line_item or custom_line_item. When the type is invoice_line_item there is an additional invoice_line_item property on the resource the value of which is the id of the credited line item on the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_line_item_unit_amount": {"name": "credit_note_line_item_unit_amount", "description": "The cost of each unit of product being credited. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "livemode": {"name": "livemode", "description": "Has the value true if the object exists in live mode or the value false if the object exists in test mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3438601, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note_line_item\"", "raw_code": "{{ config(enabled=var('stripe__using_credit_notes', False)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__credit_note_line_item_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__credit_note_line_item_tmp')),\n staging_columns=get_credit_note_line_item_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select \n id as credit_note_line_item_id,\n credit_note_id,\n {{ stripe.convert_values('amount', alias='credit_note_line_item_amount') }},\n {{ stripe.convert_values('discount_amount', alias='credit_note_line_item_discount_amount') }},\n description as credit_note_line_item_description,\n quantity,\n type as credit_note_line_item_type,\n unit_amount as credit_note_line_item_unit_amount,\n livemode,\n source_relation\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__credit_note_line_item_tmp", "package": null, "version": null}, {"name": "stg_stripe__credit_note_line_item_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_credit_note_line_item_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__credit_note_line_item_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__credit_note_line_item.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note_line_item_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n id as id,\n credit_note_id as credit_note_id,\n amount as amount,\n discount_amount as discount_amount,\n description as description,\n livemode as livemode,\n quantity as quantity,\n type as type,\n unit_amount as unit_amount,\n unit_amount_decimal as unit_amount_decimal\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select \n id as credit_note_line_item_id,\n credit_note_id,\n \n\n\n\n \n amount as credit_note_line_item_amount\n \n\n,\n \n\n\n\n \n discount_amount as credit_note_line_item_discount_amount\n \n\n,\n description as credit_note_line_item_description,\n quantity,\n type as credit_note_line_item_type,\n unit_amount as credit_note_line_item_unit_amount,\n livemode,\n source_relation\n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__refund": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__refund", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__refund.sql", "original_file_path": "models/staging/stg_stripe__refund.sql", "unique_id": "model.stripe.stg_stripe__refund", "fqn": ["stripe", "staging", "stg_stripe__refund"], "alias": "stg_stripe__refund", "checksum": {"name": "sha256", "checksum": "c321cd953018fb1db96f11b266ea7b36aac7aad8b33e2492bd43c29047e0acf9"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Details of transactions that have been refunded", "columns": {"refund_id": {"name": "refund_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "ID for the balance transaction that describes the impact on your account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the charge that was refunded.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users. (Available on non-card refunds only)", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "reason": {"name": "reason", "description": "Reason for the refund, either user-provided (duplicate, fraudulent, or requested_by_customer) or generated by Stripe internally (expired_uncaptured_charge).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "receipt_number": {"name": "receipt_number", "description": "This is the transaction number that appears on email receipts sent for this refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of the refund. For credit card refunds, this can be pending, succeeded, or failed. For other types of refunds, it can be pending, succeeded, failed, or canceled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "ID of the payment intent associated with this refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3219373, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__refund\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__refund_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__refund_tmp')),\n staging_columns=get_refund_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as refund_id,\n payment_intent_id,\n balance_transaction_id,\n charge_id,\n {{ stripe.convert_values('amount') }},\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n currency,\n description,\n metadata,\n reason,\n receipt_number,\n status,\n source_relation\n\n {% if var('stripe__refund_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__refund_metadata')) }}\n {% endif %}\n\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__refund_tmp", "package": null, "version": null}, {"name": "stg_stripe__refund_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_refund_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp"], "nodes": ["model.stripe.stg_stripe__refund_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__refund.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__refund_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n balance_transaction_id as balance_transaction_id,\n charge_id as charge_id,\n cast(null as TEXT) as payment_intent_id,\n created as created,\n currency as currency,\n description as description,\n failure_balance_transaction_id as failure_balance_transaction_id,\n failure_reason as failure_reason,\n id as id,\n metadata as metadata,\n reason as reason,\n receipt_number as receipt_number,\n status as status\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as refund_id,\n payment_intent_id,\n balance_transaction_id,\n charge_id,\n \n\n\n\n \n amount as amount\n \n\n,\n cast(created as timestamp) as created_at,\n currency,\n description,\n metadata,\n reason,\n receipt_number,\n status,\n source_relation\n\n \n\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__charge": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__charge", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__charge.sql", "original_file_path": "models/staging/stg_stripe__charge.sql", "unique_id": "model.stripe.stg_stripe__charge", "fqn": ["stripe", "staging", "stg_stripe__charge"], "alias": "stg_stripe__charge", "checksum": {"name": "sha256", "checksum": "451d460780e9b6f6333febb26d82ea4673f43a2a4a496e66d3a7fc68917c91b7"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "To charge a credit or a debit card, you create a Charge object. You can retrieve and refund individual charges as well as list all charges. Charges are identified by a unique, random ID.", "columns": {"charge_id": {"name": "charge_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount intended to be collected by this payment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "amount_refunded": {"name": "amount_refunded", "description": "The amount of the charge, if any, that has been refunded. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "application_fee_amount": {"name": "application_fee_amount", "description": "The amount of the application fee (if any) for the charge. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_captured": {"name": "is_captured", "description": "If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_id": {"name": "card_id", "description": "ID of the card that was charged.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the charge took place.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "ID of account connected for this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the customer this charge is for if one exists.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "failure_code": {"name": "failure_code", "description": "Error code explaining reason for charge failure if available.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "failure_message": {"name": "failure_message", "description": "Message to user further explaining reason for charge failure if available.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_paid": {"name": "is_paid", "description": "true if the charge succeeded, or was successfully authorized for later capture.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "ID of the PaymentIntent associated with this charge, if one exists.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "receipt_email": {"name": "receipt_email", "description": "This is the email address that the receipt for this charge was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "receipt_number": {"name": "receipt_number", "description": "This is the transaction number that appears on email receipts sent for this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_refunded": {"name": "is_refunded", "description": "Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "The status of the payment is either succeeded, pending, or failed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_carrier": {"name": "shipping_carrier", "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_name": {"name": "shipping_name", "description": "Recipient name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_phone": {"name": "shipping_phone", "description": "Recipient phone (including extension).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_tracking_number": {"name": "shipping_tracking_number", "description": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_id": {"name": "source_id", "description": "ID of the source associated. Source objects allow you to accept a variety of payment methods. They represent a cu", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_transfer": {"name": "source_transfer", "description": "The transfer ID which created this charge. Only present if the charge came from another Stripe account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "Extra information about a source. This will appear on your customer\u2019s statement every time you charge the source.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The id of the invoice associated with this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "The currency of the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_method_id": {"name": "payment_method_id", "description": "Unique identifier for the payment method object used in this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "calculated_statement_descriptor": {"name": "calculated_statement_descriptor", "description": "The full statement descriptor that is passed to card networks, and that is displayed on your customers\u2019 credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_address_city": {"name": "billing_detail_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_address_country": {"name": "billing_detail_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_address_line1": {"name": "billing_detail_address_line1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_address_line2": {"name": "billing_detail_address_line2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_address_postal_code": {"name": "billing_detail_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_address_state": {"name": "billing_detail_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_email": {"name": "billing_detail_email", "description": "Email address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_name": {"name": "billing_detail_name", "description": "Full name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_phone": {"name": "billing_detail_phone", "description": "Billing phone number (including extension).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3076336, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__charge_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__charge_tmp')),\n staging_columns=get_charge_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n\n select \n id as charge_id, \n {{ stripe.convert_values('amount') }},\n {{ stripe.convert_values('amount_refunded') }},\n {{ stripe.convert_values('application_fee_amount') }},\n balance_transaction_id,\n captured as is_captured,\n card_id,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n connected_account_id,\n customer_id,\n currency,\n description,\n failure_code,\n failure_message,\n metadata,\n paid as is_paid,\n payment_intent_id,\n payment_method_id,\n receipt_email,\n receipt_number,\n refunded as is_refunded,\n status,\n shipping_address_city,\n shipping_address_country,\n shipping_address_line_1,\n shipping_address_line_2,\n shipping_address_postal_code,\n shipping_address_state,\n shipping_carrier,\n shipping_name,\n shipping_phone,\n shipping_tracking_number,\n source_id,\n source_transfer,\n statement_descriptor,\n invoice_id,\n calculated_statement_descriptor,\n billing_detail_address_city,\n billing_detail_address_country,\n billing_detail_address_line1,\n billing_detail_address_line2,\n billing_detail_address_postal_code,\n billing_detail_address_state,\n billing_detail_email,\n billing_detail_name,\n billing_detail_phone,\n source_relation\n\n {% if var('stripe__charge_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__charge_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__charge_tmp", "package": null, "version": null}, {"name": "stg_stripe__charge_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_charge_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__charge_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__charge.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge_tmp\"\n\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n amount_refunded as amount_refunded,\n application as application,\n application_fee_amount as application_fee_amount,\n balance_transaction_id as balance_transaction_id,\n bank_account_id as bank_account_id,\n calculated_statement_descriptor as calculated_statement_descriptor,\n captured as captured,\n card_id as card_id,\n connected_account_id as connected_account_id,\n created as created,\n currency as currency,\n customer_id as customer_id,\n description as description,\n destination as destination,\n failure_code as failure_code,\n failure_message as failure_message,\n fraud_details_stripe_report as fraud_details_stripe_report,\n fraud_details_user_report as fraud_details_user_report,\n id as id,\n invoice_id as invoice_id,\n livemode as livemode,\n metadata as metadata,\n on_behalf_of as on_behalf_of,\n outcome_network_status as outcome_network_status,\n outcome_reason as outcome_reason,\n outcome_risk_level as outcome_risk_level,\n outcome_risk_score as outcome_risk_score,\n outcome_seller_message as outcome_seller_message,\n outcome_type as outcome_type,\n paid as paid,\n payment_intent_id as payment_intent_id,\n cast(null as TEXT) as payment_method_id,\n receipt_email as receipt_email,\n receipt_number as receipt_number,\n receipt_url as receipt_url,\n refunded as refunded,\n shipping_address_city as shipping_address_city,\n shipping_address_country as shipping_address_country,\n shipping_address_line_1 as shipping_address_line_1,\n shipping_address_line_2 as shipping_address_line_2,\n shipping_address_postal_code as shipping_address_postal_code,\n shipping_address_state as shipping_address_state,\n shipping_carrier as shipping_carrier,\n shipping_name as shipping_name,\n shipping_phone as shipping_phone,\n shipping_tracking_number as shipping_tracking_number,\n source_id as source_id,\n source_transfer as source_transfer,\n statement_descriptor as statement_descriptor,\n status as status,\n transfer_data_destination as transfer_data_destination,\n transfer_group as transfer_group,\n transfer_id as transfer_id,\n cast(null as TEXT) as billing_detail_address_city,\n cast(null as TEXT) as billing_detail_address_country,\n cast(null as TEXT) as billing_detail_address_line1,\n cast(null as TEXT) as billing_detail_address_line2,\n cast(null as TEXT) as billing_detail_address_postal_code,\n cast(null as TEXT) as billing_detail_address_state,\n cast(null as TEXT) as billing_detail_email,\n cast(null as TEXT) as billing_detail_name,\n cast(null as TEXT) as billing_detail_phone\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n\n select \n id as charge_id, \n \n\n\n\n \n amount as amount\n \n\n,\n \n\n\n\n \n amount_refunded as amount_refunded\n \n\n,\n \n\n\n\n \n application_fee_amount as application_fee_amount\n \n\n,\n balance_transaction_id,\n captured as is_captured,\n card_id,\n cast(created as timestamp) as created_at,\n connected_account_id,\n customer_id,\n currency,\n description,\n failure_code,\n failure_message,\n metadata,\n paid as is_paid,\n payment_intent_id,\n payment_method_id,\n receipt_email,\n receipt_number,\n refunded as is_refunded,\n status,\n shipping_address_city,\n shipping_address_country,\n shipping_address_line_1,\n shipping_address_line_2,\n shipping_address_postal_code,\n shipping_address_state,\n shipping_carrier,\n shipping_name,\n shipping_phone,\n shipping_tracking_number,\n source_id,\n source_transfer,\n statement_descriptor,\n invoice_id,\n calculated_statement_descriptor,\n billing_detail_address_city,\n billing_detail_address_country,\n billing_detail_address_line1,\n billing_detail_address_line2,\n billing_detail_address_postal_code,\n billing_detail_address_state,\n billing_detail_email,\n billing_detail_name,\n billing_detail_phone,\n source_relation\n\n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__subscription_discount": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_discount", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__subscription_discount.sql", "original_file_path": "models/staging/stg_stripe__subscription_discount.sql", "unique_id": "model.stripe.stg_stripe__subscription_discount", "fqn": ["stripe", "staging", "stg_stripe__subscription_discount"], "alias": "stg_stripe__subscription_discount", "checksum": {"name": "sha256", "checksum": "16e95978a904cb47d5020414d972be6e1b0d1a9e8c985abe4be4fa7d69d1b22e"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Properties belonging to a Stripe subscription discount.", "columns": {"subscription_discount_id": {"name": "subscription_discount_id", "description": "The ID of the subscription discount object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "checkout_session_id": {"name": "checkout_session_id", "description": "The Checkout Session that this discount is applied to, if it is applied to a particular session in payment mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "coupon_id": {"name": "coupon_id", "description": "The ID of the coupon applied to create this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the customer associated with this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "end_at": {"name": "end_at", "description": "If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The invoice that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The invoice item id (or invoice line item id for invoice line items of type=\u2018subscription\u2019) that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "start_at": {"name": "start_at", "description": "The date that the coupon was applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The subscription that this coupon is applied to, if it is applied to a particular subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3780153, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_discount\"", "raw_code": "{{ config(enabled=var('stripe__using_subscription_discounts', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__subscription_discount_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__subscription_discount_tmp')),\n staging_columns=get_subscription_discount_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select\n id as subscription_discount_id,\n checkout_session as checkout_session_id,\n coupon_id,\n customer_id,\n cast(end_at as {{ dbt.type_timestamp() }}) as end_at, -- renamed in macro get_subscription_discount_columns, source column name: end\n invoice_id,\n invoice_item_id,\n cast(start_at as {{ dbt.type_timestamp() }}) as start_at, -- renamed in macro get_subscription_discount_columns, source column name: start\n subscription_id,\n source_relation\n\n from fields\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_discount_tmp", "package": null, "version": null}, {"name": "stg_stripe__subscription_discount_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_subscription_discount_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp"], "nodes": ["model.stripe.stg_stripe__subscription_discount_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__subscription_discount.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_discount_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n checkout_session as checkout_session,\n coupon_id as coupon_id,\n customer_id as customer_id,\n id as id,\n invoice_id as invoice_id,\n invoice_item_id as invoice_item_id,\n subscription_id as subscription_id,\n \n \"end\" as end_at,\n \n \"start\" as start_at\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select\n id as subscription_discount_id,\n checkout_session as checkout_session_id,\n coupon_id,\n customer_id,\n cast(end_at as timestamp) as end_at, -- renamed in macro get_subscription_discount_columns, source column name: end\n invoice_id,\n invoice_item_id,\n cast(start_at as timestamp) as start_at, -- renamed in macro get_subscription_discount_columns, source column name: start\n subscription_id,\n source_relation\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__credit_note": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__credit_note.sql", "original_file_path": "models/staging/stg_stripe__credit_note.sql", "unique_id": "model.stripe.stg_stripe__credit_note", "fqn": ["stripe", "staging", "stg_stripe__credit_note"], "alias": "stg_stripe__credit_note", "checksum": {"name": "sha256", "checksum": "56abe61ed45f65217e99c3a0086e0685b36f0c2184302538e0c5a4ca453afd99"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Credit notes are documents that decrease the amount owed on an invoice. They\u2019re the only way to adjust the amount of a finalized invoice other than voiding and recreating the invoice.", "columns": {"credit_note_id": {"name": "credit_note_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_amount": {"name": "credit_note_amount", "description": "The integer amount in currency units representing the total amount of the credit note, including tax. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "created_at": {"name": "created_at", "description": "Timestamp of the when the credit_note was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_currency": {"name": "credit_note_currency", "description": "The currency of the charge. Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_discount_amount": {"name": "credit_note_discount_amount", "description": "The integer amount in currency units representing the total amount of discount that was credited. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "credit_note_subtotal": {"name": "credit_note_subtotal", "description": "The integer amount in currency units representing the amount of the credit note, excluding tax and invoice level discounts. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "credit_note_total": {"name": "credit_note_total", "description": "The integer amount in currency units representing the total amount of the credit note, including tax and all discount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "livemode": {"name": "livemode", "description": "Has the value true if the object exists in live mode or the value false if the object exists in test mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "memo": {"name": "memo", "description": "Customer-facing text that appears on the credit note PDF.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_number": {"name": "credit_note_number", "description": "A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "pdf": {"name": "pdf", "description": "The link to download the PDF of the credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_reason": {"name": "credit_note_reason", "description": "Reason for issuing this credit note, one of duplicate, fraudulent, order_change, or product_unsatisfactory", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_status": {"name": "credit_note_status", "description": "Status of this credit note, one of issued or void.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_type": {"name": "credit_note_type", "description": "Type of this credit note, one of pre_payment or post_payment. A pre_payment credit note means it was issued when the invoice was open. A post_payment credit note means it was issued when the invoice was paid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "voided_at": {"name": "voided_at", "description": "The time that the credit note was voided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_balance_transaction": {"name": "customer_balance_transaction", "description": "Customer balance transaction related to this credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The id of the invoice associated with this credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "refund_id": {"name": "refund_id", "description": "The id of the refund associated with this credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3410718, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note\"", "raw_code": "{{ config(enabled=var('stripe__using_credit_notes', False)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__credit_note_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__credit_note_tmp')),\n staging_columns=get_credit_note_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n select \n id as credit_note_id,\n {{ stripe.convert_values('amount', alias='credit_note_amount') }},\n {{ stripe.convert_values('discount_amount', alias='credit_note_discount_amount') }},\n {{ stripe.convert_values('subtotal', alias='credit_note_subtotal') }},\n {{ stripe.convert_values('total', alias='credit_note_total') }},\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n currency as credit_note_currency,\n memo,\n metadata,\n number as credit_note_number,\n pdf,\n reason as credit_note_reason,\n status as credit_note_status,\n type as credit_note_type,\n cast(voided_at as {{ dbt.type_timestamp() }}) as voided_at,\n customer_balance_transaction,\n invoice_id,\n refund_id,\n source_relation\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__credit_note_tmp", "package": null, "version": null}, {"name": "stg_stripe__credit_note_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_credit_note_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__credit_note_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__credit_note.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note_tmp\"\n\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n id as id,\n amount as amount,\n created as created,\n currency as currency,\n discount_amount as discount_amount,\n subtotal as subtotal,\n total as total,\n livemode as livemode,\n memo as memo,\n metadata as metadata,\n number as number,\n pdf as pdf,\n reason as reason,\n status as status,\n type as type,\n voided_at as voided_at,\n cast(null as integer) as customer_balance_transaction,\n invoice_id as invoice_id,\n refund_id as refund_id\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n select \n id as credit_note_id,\n \n\n\n\n \n amount as credit_note_amount\n \n\n,\n \n\n\n\n \n discount_amount as credit_note_discount_amount\n \n\n,\n \n\n\n\n \n subtotal as credit_note_subtotal\n \n\n,\n \n\n\n\n \n total as credit_note_total\n \n\n,\n cast(created as timestamp) as created_at,\n currency as credit_note_currency,\n memo,\n metadata,\n number as credit_note_number,\n pdf,\n reason as credit_note_reason,\n status as credit_note_status,\n type as credit_note_type,\n cast(voided_at as timestamp) as voided_at,\n customer_balance_transaction,\n invoice_id,\n refund_id,\n source_relation\n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payout_balance_transaction": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payout_balance_transaction", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__payout_balance_transaction.sql", "original_file_path": "models/staging/stg_stripe__payout_balance_transaction.sql", "unique_id": "model.stripe.stg_stripe__payout_balance_transaction", "fqn": ["stripe", "staging", "stg_stripe__payout_balance_transaction"], "alias": "stg_stripe__payout_balance_transaction", "checksum": {"name": "sha256", "checksum": "3185a51d5c6ed6e2992466cef06384e830dc844fc8fe35b6986c630e19683978"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Table that contains the complete mapping between `payout_id` and `balance_transaction_id`. The payout to balance_transaction relationship is 1:many.\n", "columns": {"payout_id": {"name": "payout_id", "description": "Unique identifier for the payout.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3204346, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payout_balance_transaction\"", "raw_code": "{{ config(enabled=var('stripe__using_payouts', True)) }}\n\nwith base as (\n select * \n from {{ ref('stg_stripe__payout_balance_transaction_tmp') }}\n),\n\nfields as (\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__payout_balance_transaction_tmp')),\n staging_columns=get_payout_balance_transaction_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n select \n payout_id,\n balance_transaction_id,\n source_relation\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payout_balance_transaction_tmp", "package": null, "version": null}, {"name": "stg_stripe__payout_balance_transaction_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_payout_balance_transaction_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation"], "nodes": ["model.stripe.stg_stripe__payout_balance_transaction_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__payout_balance_transaction.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payout_balance_transaction_tmp\"\n),\n\nfields as (\n select\n \n _fivetran_synced as _fivetran_synced,\n payout_id as payout_id,\n balance_transaction_id as balance_transaction_id\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n select \n payout_id,\n balance_transaction_id,\n source_relation\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__product": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__product", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__product.sql", "original_file_path": "models/staging/stg_stripe__product.sql", "unique_id": "model.stripe.stg_stripe__product", "fqn": ["stripe", "staging", "stg_stripe__product"], "alias": "stg_stripe__product", "checksum": {"name": "sha256", "checksum": "4b2aa9dee44f6bc41147476689e5b27b709e3eafaff50f276a6f4595fd4f8d85"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Properties belonging to a Stripe product.", "columns": {"product_id": {"name": "product_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_active": {"name": "is_active", "description": "Whether the product is currently available for purchase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "attributes": {"name": "attributes", "description": "Key-value pairs that can be attached to a product object, useful for storing additional structured information.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "caption": {"name": "caption", "description": "A brief explanation or description of the product for display purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Timestamp indicating when the product was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "deactivate_at": {"name": "deactivate_at", "description": "List of dates when the product will be deactivated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "The product\u2019s description, meant to be displayable to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "images": {"name": "images", "description": "A list of up to 8 URLs of images for this product, meant to be displayable to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Indicates whether the product has been deleted.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "name": {"name": "name", "description": "The product\u2019s name, meant to be displayable to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shippable": {"name": "shippable", "description": "Whether this product is shipped (i.e., physical goods).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "Extra information about a product which will appear on your customer\u2019s credit card statement.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the product (e.g., good, service).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unit_label": {"name": "unit_label", "description": "A label that represents units of this product, included in receipts and invoices.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "updated": {"name": "updated", "description": "Time at which the object was last updated, measured in seconds since the Unix epoch.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "url": {"name": "url", "description": "A URL of a publicly-accessible webpage for this product.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3730614, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__product\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n\nwith product as (\n\n select * \n from {{ ref('stg_stripe__product_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__product_tmp')),\n staging_columns=get_product_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from product\n),\n\nfinal as (\n\n select \n id as product_id,\n is_active, -- renamed in macro get_product_columns, source column name: active\n attributes,\n caption,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n cast(deactivate_on as {{ dbt.type_timestamp() }}) as deactivate_at,\n description,\n images,\n is_deleted,\n name,\n shippable,\n statement_descriptor,\n type,\n unit_label,\n updated,\n url,\n source_relation\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__product_tmp", "package": null, "version": null}, {"name": "stg_stripe__product_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_product_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__product_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__product.sql", "compiled": true, "compiled_code": "\n\nwith product as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__product_tmp\"\n),\n\nfields as (\n\n select\n \n cast(null as timestamp) as fivetran_synced,\n id as id,\n active as is_active,\n cast(null as TEXT) as attributes,\n caption as caption,\n created as created,\n cast(null as timestamp) as deactivate_on,\n description as description,\n cast(null as TEXT) as images,\n is_deleted as is_deleted,\n livemode as livemode,\n name as name,\n shippable as shippable,\n statement_descriptor as statement_descriptor,\n type as type,\n unit_label as unit_label,\n updated as updated,\n url as url\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from product\n),\n\nfinal as (\n\n select \n id as product_id,\n is_active, -- renamed in macro get_product_columns, source column name: active\n attributes,\n caption,\n cast(created as timestamp) as created_at,\n cast(deactivate_on as timestamp) as deactivate_at,\n description,\n images,\n is_deleted,\n name,\n shippable,\n statement_descriptor,\n type,\n unit_label,\n updated,\n url,\n source_relation\n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__balance_transaction": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__balance_transaction", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__balance_transaction.sql", "original_file_path": "models/staging/stg_stripe__balance_transaction.sql", "unique_id": "model.stripe.stg_stripe__balance_transaction", "fqn": ["stripe", "staging", "stg_stripe__balance_transaction"], "alias": "stg_stripe__balance_transaction", "checksum": {"name": "sha256", "checksum": "2a3539f0f121e9d4ae663a1be42bea0dc28afe419ee39378784dac5539cdf997"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Balance transactions represent funds moving through your Stripe account. They're created for every type of transaction that comes into or flows out of your Stripe account balance.", "columns": {"balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "available_on": {"name": "available_on", "description": "The date the transaction\u2019s net funds will become available in the Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "The ID of the account connected to the transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the transaction was created, in UTC.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "exchange_rate": {"name": "exchange_rate", "description": "The exchange rate used, if applicable, for this transaction. Specifically, if money was converted from currency A to currency B, then the amount in currency A, times exchange_rate, would be the amount in currency B.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "fee": {"name": "fee", "description": "fees (in currency units) paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "net": {"name": "net", "description": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "reporting_category": {"name": "reporting_category", "description": "Improves on the type field by providing a more-useful grouping for most finance and reporting purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source": {"name": "source", "description": "The Stripe object to which this transaction is related.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "If the transaction\u2019s net funds are available in the Stripe balance yet. Either 'available' or 'pending'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of transaction. Possible values are adjustment, advance, advance_funding, application_fee, application_fee_refund, charge, connect_collection_transfer, issuing_authorization_hold, issuing_authorization_release, issuing_dispute, issuing_transaction, payment, payment_failure_refund, payment_refund, payout, payout_cancel, payout_failure, refund, refund_failure, reserve_transaction, reserved_funds, stripe_fee, stripe_fx_fee, tax_fee, topup, topup_reversal, transfer, transfer_cancel, transfer_failure, or transfer_refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.2947176, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__balance_transaction\"", "raw_code": "with base as (\n select * \n from {{ ref('stg_stripe__balance_transaction_tmp') }}\n),\n\nfields as (\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__balance_transaction_tmp')),\n staging_columns=get_balance_transaction_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n select \n id as balance_transaction_id,\n {{ stripe.convert_values('amount') }},\n {{ stripe.convert_values('fee') }},\n {{ stripe.convert_values('net') }},\n cast(available_on as {{ dbt.type_timestamp() }}) as available_on,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n connected_account_id,\n currency,\n description,\n exchange_rate,\n reporting_category,\n source,\n status,\n type,\n source_relation\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__balance_transaction_tmp", "package": null, "version": null}, {"name": "stg_stripe__balance_transaction_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_balance_transaction_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp"], "nodes": ["model.stripe.stg_stripe__balance_transaction_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__balance_transaction.sql", "compiled": true, "compiled_code": "with base as (\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__balance_transaction_tmp\"\n),\n\nfields as (\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n available_on as available_on,\n connected_account_id as connected_account_id,\n created as created,\n currency as currency,\n description as description,\n exchange_rate as exchange_rate,\n fee as fee,\n id as id,\n net as net,\n payout_id as payout_id,\n cast(null as TEXT) as reporting_category,\n source as source,\n status as status,\n type as type\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n select \n id as balance_transaction_id,\n \n\n\n\n \n amount as amount\n \n\n,\n \n\n\n\n \n fee as fee\n \n\n,\n \n\n\n\n \n net as net\n \n\n,\n cast(available_on as timestamp) as available_on,\n cast(created as timestamp) as created_at,\n connected_account_id,\n currency,\n description,\n exchange_rate,\n reporting_category,\n source,\n status,\n type,\n source_relation\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__fee": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__fee", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__fee.sql", "original_file_path": "models/staging/stg_stripe__fee.sql", "unique_id": "model.stripe.stg_stripe__fee", "fqn": ["stripe", "staging", "stg_stripe__fee"], "alias": "stg_stripe__fee", "checksum": {"name": "sha256", "checksum": "4050323c460285d53645df6b26697155bbd37c7320c3d9c4826a26ed137e63c5"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "The details of a fee associated with a balance transaction", "columns": {"balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the balance transaction entry the fee applies to", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "index": {"name": "index", "description": "The index of the fee within the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount of the fee. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "application": {"name": "application", "description": "ID of the Connect application that earned the fee.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "Type of the fee, can be application_fee, stripe_fee or tax.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3112354, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__fee\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__fee_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__fee_tmp')),\n staging_columns=get_fee_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select \n balance_transaction_id,\n index,\n {{ stripe.convert_values('amount') }},\n application,\n currency,\n description,\n type,\n source_relation\n\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__fee_tmp", "package": null, "version": null}, {"name": "stg_stripe__fee_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_fee_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values"], "nodes": ["model.stripe.stg_stripe__fee_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__fee.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__fee_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n application as application,\n balance_transaction_id as balance_transaction_id,\n connected_account_id as connected_account_id,\n currency as currency,\n description as description,\n index as index,\n type as type\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select \n balance_transaction_id,\n index,\n \n\n\n\n \n amount as amount\n \n\n,\n application,\n currency,\n description,\n type,\n source_relation\n\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payout": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payout", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__payout.sql", "original_file_path": "models/staging/stg_stripe__payout.sql", "unique_id": "model.stripe.stg_stripe__payout", "fqn": ["stripe", "staging", "stg_stripe__payout"], "alias": "stg_stripe__payout", "checksum": {"name": "sha256", "checksum": "bb774a64b3ec1bb843ec24c9effcd640819d76e74bf24b8b85ee774a27bcae03"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "A Payout object is created when you receive funds from Stripe, or when you initiate a payout to either a bank account or debit card of a connected Stripe account.", "columns": {"payout_id": {"name": "payout_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount (in currency units) to be transferred to your bank account or debit card. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "arrival_date_at": {"name": "arrival_date_at", "description": "Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_automatic": {"name": "is_automatic", "description": "true if the payout was created by an automated payout schedule, and false if it was requested manually.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the latest balance transaction linked to this payout, describing its impact on your account balance. The payout to balance_transaction relationship is 1:many.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "destination_bank_account_id": {"name": "destination_bank_account_id", "description": "ID of the bank account the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "destination_card_id": {"name": "destination_card_id", "description": "ID of the card the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "method": {"name": "method", "description": "The method used to send this payout, which can be standard or instant.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_type": {"name": "source_type", "description": "The source balance this payout came from. One of card, fpx, or bank_account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Current status of the payout. Can be paid, pending, in_transit, canceled or failed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "Can be bank_account or card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3197892, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payout\"", "raw_code": "{{ config(enabled=var('stripe__using_payouts', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__payout_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__payout_tmp')),\n staging_columns=get_payout_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as payout_id,\n {{ stripe.convert_values('amount') }},\n cast(arrival_date as {{ dbt.type_timestamp() }}) as arrival_date_at,\n automatic as is_automatic,\n balance_transaction_id, -- payout to balance_transaction is 1:many. This is the latest balance_transaction linked to the payout.\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n currency,\n description,\n destination_bank_account_id,\n destination_card_id,\n metadata,\n method,\n source_type,\n status,\n type,\n source_relation\n\n {% if var('stripe__payout_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__payout_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payout_tmp", "package": null, "version": null}, {"name": "stg_stripe__payout_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_payout_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__payout_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__payout.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payout_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n arrival_date as arrival_date,\n automatic as automatic,\n balance_transaction_id as balance_transaction_id,\n connected_account_id as connected_account_id,\n created as created,\n currency as currency,\n description as description,\n destination_bank_account_id as destination_bank_account_id,\n destination_card_id as destination_card_id,\n failure_balance_transaction_id as failure_balance_transaction_id,\n failure_code as failure_code,\n failure_message as failure_message,\n id as id,\n livemode as livemode,\n metadata as metadata,\n method as method,\n source_type as source_type,\n statement_descriptor as statement_descriptor,\n status as status,\n type as type\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as payout_id,\n \n\n\n\n \n amount as amount\n \n\n,\n cast(arrival_date as timestamp) as arrival_date_at,\n automatic as is_automatic,\n balance_transaction_id, -- payout to balance_transaction is 1:many. This is the latest balance_transaction linked to the payout.\n cast(created as timestamp) as created_at,\n currency,\n description,\n destination_bank_account_id,\n destination_card_id,\n metadata,\n method,\n source_type,\n status,\n type,\n source_relation\n\n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__invoice_line_item": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__invoice_line_item", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__invoice_line_item.sql", "original_file_path": "models/staging/stg_stripe__invoice_line_item.sql", "unique_id": "model.stripe.stg_stripe__invoice_line_item", "fqn": ["stripe", "staging", "stg_stripe__invoice_line_item"], "alias": "stg_stripe__invoice_line_item", "checksum": {"name": "sha256", "checksum": "18907ef2f21752de16f5a4fec3a112288bc3ff853a17400aa9a0e859689e95c2"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "The different items that an invoice contains", "columns": {"invoice_line_item_id": {"name": "invoice_line_item_id", "description": "Unique identifier for the object. Note that the same line item can be shown across different invoices, so this value can appear multiple times.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The ID of the invoice this item is a part of", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The ID of the invoice item this item is a part of", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "price_id": {"name": "price_id", "description": "ID of the price object this item pertains to", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_discountable": {"name": "is_discountable", "description": "If true, discounts will apply to this line item. Always false for prorations.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "plan_id": {"name": "plan_id", "description": "The ID of the plan of the subscription, if the line item is a subscription or a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "proration": {"name": "proration", "description": "Whether this is a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The quantity of the subscription, if the line item is a subscription or a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription that the invoice item pertains to, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_item_id": {"name": "subscription_item_id", "description": "The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "A string identifying the type of the source of this line item, either an invoice item or a subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unique_invoice_line_item_id": {"name": "unique_invoice_line_item_id", "description": "A unique id generated and only for old invoice line item ID's from a past version of the API. The introduction of this field resolves the pagination break issue for invoice line items, which was introduced by the [Stripe API update](https://stripe.com/docs/upgrades#2019-12-03).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "period_start": {"name": "period_start", "description": "Start of the usage period during which invoice items were added to this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "period_end": {"name": "period_end", "description": "End of the usage period during which invoice items were added to this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3232481, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\"", "raw_code": "{{ config(enabled=var('stripe__using_invoices', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__invoice_line_item_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__invoice_line_item_tmp')),\n staging_columns=get_invoice_line_item_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as invoice_line_item_id,\n invoice_id,\n invoice_item_id,\n {{ stripe.convert_values('amount') }},\n currency,\n description,\n discountable as is_discountable,\n plan_id,\n price_id,\n proration,\n quantity,\n subscription_id,\n subscription_item_id,\n type,\n unique_id as unique_invoice_line_item_id,\n period_start,\n period_end,\n source_relation\n \n {% if var('stripe__invoice_line_item_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__invoice_line_item_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n\n {% if var('stripe__using_invoice_line_sub_filter', true) %}\n and id not like 'sub%' -- ids starting with 'sub' are temporary and are replaced by permanent ids starting with 'sli' \n {% endif %}\n\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice_line_item_tmp", "package": null, "version": null}, {"name": "stg_stripe__invoice_line_item_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_invoice_line_item_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__invoice_line_item_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__invoice_line_item.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n currency as currency,\n description as description,\n discountable as discountable,\n id as id,\n invoice_id as invoice_id,\n cast(null as TEXT) as invoice_item_id,\n livemode as livemode,\n metadata as metadata,\n period_end as period_end,\n period_start as period_start,\n plan_id as plan_id,\n cast(null as TEXT) as price_id,\n proration as proration,\n quantity as quantity,\n subscription_id as subscription_id,\n subscription_item_id as subscription_item_id,\n type as type,\n unique_id as unique_id\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as invoice_line_item_id,\n invoice_id,\n invoice_item_id,\n \n\n\n\n \n amount as amount\n \n\n,\n currency,\n description,\n discountable as is_discountable,\n plan_id,\n price_id,\n proration,\n quantity,\n subscription_id,\n subscription_item_id,\n type,\n unique_id as unique_invoice_line_item_id,\n period_start,\n period_end,\n source_relation\n \n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n\n \n and id not like 'sub%' -- ids starting with 'sub' are temporary and are replaced by permanent ids starting with 'sli' \n \n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__discount": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__discount", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__discount.sql", "original_file_path": "models/staging/stg_stripe__discount.sql", "unique_id": "model.stripe.stg_stripe__discount", "fqn": ["stripe", "staging", "stg_stripe__discount"], "alias": "stg_stripe__discount", "checksum": {"name": "sha256", "checksum": "a243f572ad4dc574fcc2a9bb85ad59685a47f870d185b8ddcc519e3a3098f55a"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Properties belonging to a Stripe discount.", "columns": {"discount_id": {"name": "discount_id", "description": "The ID of the discount object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "String representing the object\u2019s type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type_id": {"name": "type_id", "description": "Identifier of the related object type (e.g., coupon ID, promotion code).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The amount of discount applied. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "checkout_session_id": {"name": "checkout_session_id", "description": "The Checkout session that this discount is applied to, if it is applied to a particular session in payment mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "checkout_session_line_item_id": {"name": "checkout_session_line_item_id", "description": "The ID of the specific line item within the checkout session that the discount is applied to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "coupon_id": {"name": "coupon_id", "description": "The ID of the coupon applied to create this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_line_item_id": {"name": "credit_note_line_item_id", "description": "The ID of the credit note line item associated with this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the customer associated with this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "end_at": {"name": "end_at", "description": "If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The invoice that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The invoice item id (or invoice line item id for invoice line items of type=\u2018subscription\u2019) that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "promotion_code": {"name": "promotion_code", "description": "The promotion code applied to create this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "start_at": {"name": "start_at", "description": "The date that the coupon was applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The subscription that this coupon is applied to, if it is applied to a particular subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.376729, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__discount\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__discount_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__discount_tmp')),\n staging_columns=get_discount_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select\n id as discount_id,\n type,\n type_id,\n {{ stripe.convert_values('amount') }},\n checkout_session_id,\n checkout_session_line_item_id,\n coupon_id,\n credit_note_line_item_id,\n customer_id,\n cast(end_at as {{ dbt.type_timestamp() }}) as end_at, -- renamed in macro get_discount_columns, source column name: end\n invoice_id,\n invoice_item_id,\n promotion_code,\n cast(start_at as {{ dbt.type_timestamp() }}) as start_at, -- renamed in macro get_discount_columns, source column name: start\n subscription_id,\n source_relation\n\n from fields\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__discount_tmp", "package": null, "version": null}, {"name": "stg_stripe__discount_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_discount_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp"], "nodes": ["model.stripe.stg_stripe__discount_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__discount.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__discount_tmp\"\n),\n\nfields as (\n\n select\n \n id as id,\n type as type,\n type_id as type_id,\n _fivetran_synced as _fivetran_synced,\n amount as amount,\n checkout_session_id as checkout_session_id,\n checkout_session_line_item_id as checkout_session_line_item_id,\n coupon_id as coupon_id,\n credit_note_line_item_id as credit_note_line_item_id,\n customer_id as customer_id,\n invoice_id as invoice_id,\n invoice_item_id as invoice_item_id,\n promotion_code as promotion_code,\n subscription_id as subscription_id,\n \n \"end\" as end_at,\n \n \"start\" as start_at\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select\n id as discount_id,\n type,\n type_id,\n \n\n\n\n \n amount as amount\n \n\n,\n checkout_session_id,\n checkout_session_line_item_id,\n coupon_id,\n credit_note_line_item_id,\n customer_id,\n cast(end_at as timestamp) as end_at, -- renamed in macro get_discount_columns, source column name: end\n invoice_id,\n invoice_item_id,\n promotion_code,\n cast(start_at as timestamp) as start_at, -- renamed in macro get_discount_columns, source column name: start\n subscription_id,\n source_relation\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__customer": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__customer", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__customer.sql", "original_file_path": "models/staging/stg_stripe__customer.sql", "unique_id": "model.stripe.stg_stripe__customer", "fqn": ["stripe", "staging", "stg_stripe__customer"], "alias": "stg_stripe__customer", "checksum": {"name": "sha256", "checksum": "28e445bd6006996c1a0648871d84eb0d729ff96ec15db6986eda64eb288a2720"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Customer objects allow you to perform recurring charges, and to track multiple charges, that are associated with the same customer.", "columns": {"customer_id": {"name": "customer_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "account_balance": {"name": "account_balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_address_city": {"name": "customer_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.city"]}, "customer_address_country": {"name": "customer_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.country"]}, "customer_address_line_1": {"name": "customer_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.line_1"]}, "customer_address_line_2": {"name": "customer_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.line_2"]}, "customer_address_postal_code": {"name": "customer_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.postal_code"]}, "customer_address_state": {"name": "customer_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.state"]}, "customer_balance": {"name": "customer_balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "bank_account_id": {"name": "bank_account_id", "description": "ID of the bank account associated with this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the customer entry was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "default_card_id": {"name": "default_card_id", "description": "ID for the default card used by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_delinquent": {"name": "is_delinquent", "description": "When the customer\u2019s latest invoice is billed by charging automatically, delinquent is true if the invoice\u2019s latest charge is failed. When the customer\u2019s latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "email": {"name": "email", "description": "The customer\u2019s email address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "phone": {"name": "phone", "description": "Customer's phone number.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_name": {"name": "shipping_name", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_phone": {"name": "shipping_phone", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}, "is_deleted": {"name": "is_deleted", "description": "Boolean reflecting whether the customer has been deleted in Stripe.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3095517, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__customer_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__customer_tmp')),\n staging_columns=get_customer_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select \n id as customer_id,\n account_balance,\n address_city as customer_address_city,\n address_country as customer_address_country,\n address_line_1 as customer_address_line_1,\n address_line_2 as customer_address_line_2,\n address_postal_code as customer_address_postal_code,\n address_state as customer_address_state,\n balance as customer_balance,\n bank_account_id,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n currency,\n default_card_id,\n delinquent as is_delinquent,\n description,\n email,\n metadata,\n name as customer_name,\n phone,\n shipping_address_city,\n shipping_address_country,\n shipping_address_line_1,\n shipping_address_line_2,\n shipping_address_postal_code,\n shipping_address_state,\n shipping_name,\n shipping_phone,\n source_relation,\n coalesce(is_deleted, false) as is_deleted\n \n {% if var('stripe__customer_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__customer_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__customer_tmp", "package": null, "version": null}, {"name": "stg_stripe__customer_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_customer_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__customer_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__customer.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n account_balance as account_balance,\n address_city as address_city,\n address_country as address_country,\n address_line_1 as address_line_1,\n address_line_2 as address_line_2,\n address_postal_code as address_postal_code,\n address_state as address_state,\n balance as balance,\n bank_account_id as bank_account_id,\n created as created,\n currency as currency,\n default_card_id as default_card_id,\n delinquent as delinquent,\n description as description,\n email as email,\n id as id,\n invoice_prefix as invoice_prefix,\n invoice_settings_default_payment_method as invoice_settings_default_payment_method,\n invoice_settings_footer as invoice_settings_footer,\n is_deleted as is_deleted,\n livemode as livemode,\n metadata as metadata,\n name as name,\n phone as phone,\n shipping_address_city as shipping_address_city,\n shipping_address_country as shipping_address_country,\n shipping_address_line_1 as shipping_address_line_1,\n shipping_address_line_2 as shipping_address_line_2,\n shipping_address_postal_code as shipping_address_postal_code,\n shipping_address_state as shipping_address_state,\n shipping_carrier as shipping_carrier,\n shipping_name as shipping_name,\n shipping_phone as shipping_phone,\n shipping_tracking_number as shipping_tracking_number,\n source_id as source_id,\n tax_exempt as tax_exempt,\n tax_info_tax_id as tax_info_tax_id,\n tax_info_type as tax_info_type,\n tax_info_verification_status as tax_info_verification_status,\n tax_info_verification_verified_name as tax_info_verification_verified_name\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select \n id as customer_id,\n account_balance,\n address_city as customer_address_city,\n address_country as customer_address_country,\n address_line_1 as customer_address_line_1,\n address_line_2 as customer_address_line_2,\n address_postal_code as customer_address_postal_code,\n address_state as customer_address_state,\n balance as customer_balance,\n bank_account_id,\n cast(created as timestamp) as created_at,\n currency,\n default_card_id,\n delinquent as is_delinquent,\n description,\n email,\n metadata,\n name as customer_name,\n phone,\n shipping_address_city,\n shipping_address_country,\n shipping_address_line_1,\n shipping_address_line_2,\n shipping_address_postal_code,\n shipping_address_state,\n shipping_name,\n shipping_phone,\n source_relation,\n coalesce(is_deleted, false) as is_deleted\n \n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__subscription": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__subscription", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__subscription.sql", "original_file_path": "models/staging/stg_stripe__subscription.sql", "unique_id": "model.stripe.stg_stripe__subscription", "fqn": ["stripe", "staging", "stg_stripe__subscription"], "alias": "stg_stripe__subscription", "checksum": {"name": "sha256", "checksum": "3e8862095367c32ed6522844ccdc1253f732ca256e3bacb0981575cfaddd55db"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Subscriptions allow you to charge a customer on a recurring basis. Please note that the more recent `subscription_history` table replaced the `subscription` table, so the source used in this model depends on which one you have.", "columns": {"subscription_id": {"name": "subscription_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "latest_invoice_id": {"name": "latest_invoice_id", "description": "ID of the latest invoice for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of customer this subscription belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "default_payment_method_id": {"name": "default_payment_method_id", "description": "ID of the default payment method for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "pending_setup_intent_id": {"name": "pending_setup_intent_id", "description": "ID of the payment setup intent for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing": {"name": "billing", "description": "How the invoice is billed", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_cycle_anchor": {"name": "billing_cycle_anchor", "description": "Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "cancel_at": {"name": "cancel_at", "description": "A date in the future at which the subscription will automatically get canceled", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_cancel_at_period_end": {"name": "is_cancel_at_period_end", "description": "Boolean indicating whether this subscription should cancel at the end of the current period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "canceled_at": {"name": "canceled_at", "description": "If the subscription has been canceled, the date of that cancellation.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "current_period_start": {"name": "current_period_start", "description": "Start of the current period that the subscription has been invoiced for.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "current_period_end": {"name": "current_period_end", "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "days_until_due": {"name": "days_until_due", "description": "Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "start_date_at": {"name": "start_date_at", "description": "Date when the subscription was first created. The date might differ from the created date due to backdating.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "ended_at": {"name": "ended_at", "description": "If the subscription has ended, the date the subscription ended.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "pause_collection_behavior": {"name": "pause_collection_behavior", "description": "The payment collection behavior for this subscription while paused. One of \"keep_as_draft\", \"mark_uncollectible\", or \"void\".", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "pause_collection_resumes_at": {"name": "pause_collection_resumes_at", "description": "The time after which the subscription will resume collecting payments.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3309927, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__subscription_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__subscription_tmp')),\n staging_columns=get_subscription_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as subscription_id,\n latest_invoice_id,\n customer_id,\n default_payment_method_id,\n pending_setup_intent_id,\n status,\n billing,\n billing_cycle_anchor,\n cast(cancel_at as {{ dbt.type_timestamp() }}) as cancel_at,\n cancel_at_period_end as is_cancel_at_period_end,\n cast(canceled_at as {{ dbt.type_timestamp() }}) as canceled_at,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n cast(current_period_start as {{ dbt.type_timestamp() }}) as current_period_start,\n cast(current_period_end as {{ dbt.type_timestamp() }}) as current_period_end,\n days_until_due,\n metadata,\n cast(start_date as {{ dbt.type_timestamp() }}) as start_date_at,\n cast(ended_at as {{ dbt.type_timestamp() }}) as ended_at,\n pause_collection_behavior,\n cast(pause_collection_resumes_at as {{ dbt.type_timestamp() }}) as pause_collection_resumes_at,\n source_relation\n \n {% if var('stripe__subscription_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__subscription_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n {% if var('stripe__using_subscription_history', stripe.does_table_exist('subscription_history')=='exists') %}\n and coalesce(_fivetran_active, true)\n {% endif %}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_tmp", "package": null, "version": null}, {"name": "stg_stripe__subscription_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_subscription_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate", "macro.stripe.does_table_exist"], "nodes": ["model.stripe.stg_stripe__subscription_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__subscription.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_tmp\"\n\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n _fivetran_active as _fivetran_active,\n application_fee_percent as application_fee_percent,\n billing as billing,\n billing_cycle_anchor as billing_cycle_anchor,\n billing_threshold_amount_gte as billing_threshold_amount_gte,\n billing_threshold_reset_billing_cycle_anchor as billing_threshold_reset_billing_cycle_anchor,\n cancel_at as cancel_at,\n cancel_at_period_end as cancel_at_period_end,\n canceled_at as canceled_at,\n created as created,\n current_period_end as current_period_end,\n current_period_start as current_period_start,\n customer_id as customer_id,\n days_until_due as days_until_due,\n default_source_id as default_source_id,\n ended_at as ended_at,\n id as id,\n cast(null as TEXT) as latest_invoice_id,\n cast(null as TEXT) as default_payment_method_id,\n cast(null as TEXT) as pending_setup_intent_id,\n livemode as livemode,\n metadata as metadata,\n quantity as quantity,\n start_date as start_date,\n status as status,\n tax_percent as tax_percent,\n trial_end as trial_end,\n trial_start as trial_start,\n cast(null as TEXT) as pause_collection_behavior,\n cast(null as timestamp) as pause_collection_resumes_at\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as subscription_id,\n latest_invoice_id,\n customer_id,\n default_payment_method_id,\n pending_setup_intent_id,\n status,\n billing,\n billing_cycle_anchor,\n cast(cancel_at as timestamp) as cancel_at,\n cancel_at_period_end as is_cancel_at_period_end,\n cast(canceled_at as timestamp) as canceled_at,\n cast(created as timestamp) as created_at,\n cast(current_period_start as timestamp) as current_period_start,\n cast(current_period_end as timestamp) as current_period_end,\n days_until_due,\n metadata,\n cast(start_date as timestamp) as start_date_at,\n cast(ended_at as timestamp) as ended_at,\n pause_collection_behavior,\n cast(pause_collection_resumes_at as timestamp) as pause_collection_resumes_at,\n source_relation\n \n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n \n and coalesce(_fivetran_active, true)\n \n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payment_method": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__payment_method.sql", "original_file_path": "models/staging/stg_stripe__payment_method.sql", "unique_id": "model.stripe.stg_stripe__payment_method", "fqn": ["stripe", "staging", "stg_stripe__payment_method"], "alias": "stg_stripe__payment_method", "checksum": {"name": "sha256", "checksum": "47b7129b0a6e0042a5e171cf6dccb2e49b0499d47fee5b9399d0d6f225777633"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "PaymentMethod objects represent your customer's payment instruments. They can be used with PaymentIntents to collect payments or saved to Customer objects to store instrument details for future payments.", "columns": {"payment_method_id": {"name": "payment_method_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3172417, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method\"", "raw_code": "{{ config(enabled=var('stripe__using_payment_method', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__payment_method_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__payment_method_tmp')),\n staging_columns=get_payment_method_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as payment_method_id,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n customer_id,\n metadata,\n type,\n source_relation\n\n {% if var('stripe__payment_method_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__payment_method_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payment_method_tmp", "package": null, "version": null}, {"name": "stg_stripe__payment_method_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_payment_method_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__payment_method_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__payment_method.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n billing_detail_address_city as billing_detail_address_city,\n billing_detail_address_country as billing_detail_address_country,\n billing_detail_address_line_1 as billing_detail_address_line_1,\n billing_detail_address_line_2 as billing_detail_address_line_2,\n billing_detail_address_postal_code as billing_detail_address_postal_code,\n billing_detail_address_state as billing_detail_address_state,\n billing_detail_email as billing_detail_email,\n billing_detail_name as billing_detail_name,\n billing_detail_phone as billing_detail_phone,\n created as created,\n customer_id as customer_id,\n id as id,\n livemode as livemode,\n cast(null as TEXT) as metadata,\n type as type\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as payment_method_id,\n cast(created as timestamp) as created_at,\n customer_id,\n metadata,\n type,\n source_relation\n\n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__price_plan": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__price_plan", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__price_plan.sql", "original_file_path": "models/staging/stg_stripe__price_plan.sql", "unique_id": "model.stripe.stg_stripe__price_plan", "fqn": ["stripe", "staging", "stg_stripe__price_plan"], "alias": "stg_stripe__price_plan", "checksum": {"name": "sha256", "checksum": "770037feafb0da55262ab89decdbe6908d77b4ea110001ff59972acb229d694b"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "This model defines the base price, currency, and billing cycle for recurring purchases of products. Please note that the Prices API replaced the Plans API in Stripe, so if you have migrated and choose to use the Price object then these columns come from the Price object. Otherwise, these will come from the Plan object. For how to configure, refer to the README.", "columns": {"price_plan_id": {"name": "price_plan_id", "description": "The ID of the record. If you have opted to use the Prices API, this will be the ID from the price object. If you opted not to, this will be the ID from the plan object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_active": {"name": "is_active", "description": "Whether the plan can be used for new purchases.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unit_amount": {"name": "unit_amount", "description": "The unit amount in currency units to be charged, represented as a whole integer if possible. In the Plan source table as Amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "recurring_interval": {"name": "recurring_interval", "description": "The frequency at which a subscription is billed. One of day, week, month or year. In the Plan table as Interval.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "recurring_interval_count": {"name": "recurring_interval_count", "description": "The number of intervals between subscription billings. For example, interval_count=3 bills every 3 months. In the plan source table as interval_count.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "nickname": {"name": "nickname", "description": "A brief description of the plan, hidden from customers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "The id of the product whose pricing this plan determines.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "recurring_usage_type": {"name": "recurring_usage_type", "description": "Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed. In the Plan object as usage_type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "recurring_aggregate_usage": {"name": "recurring_aggregate_usage", "description": "Specifies a usage aggregation strategy for prices of usage_type=metered. Allowed values are sum for summing up all usage during a period, last_during_period for using the last usage record reported within a period, last_ever for using the last usage record ever (across period bounds) or max which uses the usage record with the maximum reported usage during a period. Defaults to sum. In the plan source table as aggregate_usage.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_scheme": {"name": "billing_scheme", "description": "Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in unit_amount or unit_amount_decimal) will be charged per unit in quantity (for prices with usage_type=licensed), or per unit of total usage (for prices with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The ID of the invoice item this record is a part of.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Whether record has been deleted.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.335364, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n\nwith price_plan as (\n\n select *\n from {{ ref('stg_stripe__price_plan_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__price_plan_tmp')),\n staging_columns=get_price_plan_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from price_plan\n),\n\nfinal as (\n\n select\n cast(id as {{ dbt.type_string() }}) as price_plan_id,\n is_active,\n {{ stripe.convert_values('unit_amount') }},\n currency,\n cast(recurring_interval as {{ dbt.type_string() }}) as recurring_interval,\n cast(recurring_interval_count as {{ dbt.type_int() }}) as recurring_interval_count,\n recurring_usage_type,\n recurring_aggregate_usage,\n metadata,\n nickname,\n product_id,\n billing_scheme,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n is_deleted,\n source_relation\n\n {% if var('stripe__price_plan_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__price_plan_metadata')) }}\n {% endif %}\n \n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__price_plan_tmp", "package": null, "version": null}, {"name": "stg_stripe__price_plan_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_price_plan_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_string", "macro.stripe.convert_values", "macro.dbt.type_int", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__price_plan_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__price_plan.sql", "compiled": true, "compiled_code": "\n\nwith price_plan as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n active as is_active,\n billing_scheme as billing_scheme,\n created as created,\n currency as currency,\n id as id,\n is_deleted as is_deleted,\n livemode as livemode,\n metadata as metadata,\n nickname as nickname,\n product_id as product_id,\n recurring_aggregate_usage as recurring_aggregate_usage,\n recurring_interval as recurring_interval,\n recurring_interval_count as recurring_interval_count,\n recurring_usage_type as recurring_usage_type,\n unit_amount as unit_amount,\n unit_amount_decimal as unit_amount_decimal\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from price_plan\n),\n\nfinal as (\n\n select\n cast(id as TEXT) as price_plan_id,\n is_active,\n \n\n\n\n \n unit_amount as unit_amount\n \n\n,\n currency,\n cast(recurring_interval as TEXT) as recurring_interval,\n cast(recurring_interval_count as integer) as recurring_interval_count,\n recurring_usage_type,\n recurring_aggregate_usage,\n metadata,\n nickname,\n product_id,\n billing_scheme,\n cast(created as timestamp) as created_at,\n is_deleted,\n source_relation\n\n \n \n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__dispute": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__dispute", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__dispute.sql", "original_file_path": "models/staging/stg_stripe__dispute.sql", "unique_id": "model.stripe.stg_stripe__dispute", "fqn": ["stripe", "staging", "stg_stripe__dispute"], "alias": "stg_stripe__dispute", "checksum": {"name": "sha256", "checksum": "4392f3e5a2d4a9b0cfa1af4b449ff17c7a0000c67e9230781db753d4db4f9527"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "Properties belonging to a Stripe dispute.", "columns": {"dispute_id": {"name": "dispute_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "dispute_amount": {"name": "dispute_amount", "description": "Disputed amount. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "balance_transaction": {"name": "balance_transaction", "description": "List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the charge that was disputed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "Account id associated with this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "dispute_created_at": {"name": "dispute_created_at", "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "dispute_currency": {"name": "dispute_currency", "description": "Three-letter ISO currency code, in lowercase. Must be a supported currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_access_activity_log": {"name": "evidence_access_activity_log", "description": "Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_billing_address": {"name": "evidence_billing_address", "description": "The billing address provided by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_cancellation_policy": {"name": "evidence_cancellation_policy", "description": "(ID of a file upload) Your subscription cancellation policy, as shown to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_cancellation_policy_disclosure": {"name": "evidence_cancellation_policy_disclosure", "description": "An explanation of how and when the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_cancellation_rebuttal": {"name": "evidence_cancellation_rebuttal", "description": "A justification for why the customer\u2019s subscription was not canceled. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_customer_communication": {"name": "evidence_customer_communication", "description": "(ID of a file upload) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_customer_email_address": {"name": "evidence_customer_email_address", "description": "The email address of the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_customer_name": {"name": "evidence_customer_name", "description": "The name of the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_customer_purchase_ip": {"name": "evidence_customer_purchase_ip", "description": "The IP address that the customer used when making the purchase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_customer_signature": {"name": "evidence_customer_signature", "description": "(ID of a file upload) A relevant document or contract showing the customer\u2019s signature.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_details_due_by": {"name": "evidence_details_due_by", "description": "Date by which evidence must be submitted in order to successfully challenge dispute. Will be 0 if the customer\u2019s bank or credit card company doesn\u2019t allow a response for this particular dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_details_has_evidence": {"name": "evidence_details_has_evidence", "description": "Whether evidence has been staged for this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_details_past_due": {"name": "evidence_details_past_due", "description": "Whether the last evidence submission was submitted past the due date. Defaults to false if no evidence submissions have occurred. If true, then delivery of the latest evidence is not guaranteed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_details_submission_count": {"name": "evidence_details_submission_count", "description": "The number of times evidence has been submitted. Typically, you may only submit evidence once.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_duplicate_charge_documentation": {"name": "evidence_duplicate_charge_documentation", "description": "(ID of a file upload) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_duplicate_charge_explanation": {"name": "evidence_duplicate_charge_explanation", "description": "An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_duplicate_charge_id": {"name": "evidence_duplicate_charge_id", "description": "The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_product_description": {"name": "evidence_product_description", "description": "A description of the product or service that was sold. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_receipt": {"name": "evidence_receipt", "description": "(ID of a file upload) Any receipt or message sent to the customer notifying them of the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_refund_policy": {"name": "evidence_refund_policy", "description": "(ID of a file upload) Your refund policy, as shown to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_refund_policy_disclosure": {"name": "evidence_refund_policy_disclosure", "description": "Documentation demonstrating that the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_refund_refusal_explanation": {"name": "evidence_refund_refusal_explanation", "description": "A justification for why the customer is not entitled to a refund. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_service_date": {"name": "evidence_service_date", "description": "The date on which the customer received or began receiving the purchased service, in a clear human-readable format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_service_documentation": {"name": "evidence_service_documentation", "description": "(ID of a file upload) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_shipping_address": {"name": "evidence_shipping_address", "description": "The address to which a physical product was shipped. You should try to include as complete address information as possible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_shipping_carrier": {"name": "evidence_shipping_carrier", "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_shipping_date": {"name": "evidence_shipping_date", "description": "The date on which a physical product began its route to the shipping address, in a clear human-readable format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_shipping_documentation": {"name": "evidence_shipping_documentation", "description": "(ID of a file upload) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer\u2019s full shipping address, if possible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_shipping_tracking_number": {"name": "evidence_shipping_tracking_number", "description": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_uncategorized_file": {"name": "evidence_uncategorized_file", "description": "(ID of a file upload) Any additional evidence or statements.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_uncategorized_text": {"name": "evidence_uncategorized_text", "description": "Any additional evidence or statements. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_charge_refundable": {"name": "is_charge_refundable", "description": "Boolean ff true, it is still possible to refund the disputed payment. Once the payment has been fully refunded, no further funds will be withdrawn from your Stripe account as a result of this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "dispute_metadata": {"name": "dispute_metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "dispute_reason": {"name": "dispute_reason", "description": "Reason given by cardholder for dispute. Possible values are bank_cannot_process, check_returned, credit_not_processed, customer_initiated, debit_not_authorized, duplicate, fraudulent, general, incorrect_account_details, insufficient_funds, product_not_received, product_unacceptable, subscription_canceled, or unrecognized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "dispute_status": {"name": "dispute_status", "description": "Current status of dispute. Possible values are warning_needs_response, warning_under_review, warning_closed, needs_response, under_review, won, or lost.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130902.3639934, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__dispute\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__dispute_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__dispute_tmp')),\n staging_columns=get_dispute_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select\n id as dispute_id,\n {{ stripe.convert_values('amount', alias='dispute_amount') }},\n balance_transaction,\n charge_id,\n connected_account_id,\n cast(created as {{ dbt.type_timestamp() }}) as dispute_created_at,\n currency as dispute_currency,\n evidence_access_activity_log,\n evidence_billing_address,\n evidence_cancellation_policy,\n evidence_cancellation_policy_disclosure,\n evidence_cancellation_rebuttal,\n evidence_customer_communication,\n evidence_customer_email_address,\n evidence_customer_name,\n evidence_customer_purchase_ip,\n evidence_customer_signature,\n evidence_details_due_by,\n evidence_details_has_evidence,\n evidence_details_past_due,\n evidence_details_submission_count,\n evidence_duplicate_charge_documentation,\n evidence_duplicate_charge_explanation,\n evidence_duplicate_charge_id,\n evidence_product_description,\n evidence_receipt,\n evidence_refund_policy,\n evidence_refund_policy_disclosure,\n evidence_refund_refusal_explanation,\n evidence_service_date,\n evidence_service_documentation,\n evidence_shipping_address,\n evidence_shipping_carrier,\n evidence_shipping_date,\n evidence_shipping_documentation,\n evidence_shipping_tracking_number,\n evidence_uncategorized_file,\n evidence_uncategorized_text,\n is_charge_refundable,\n metadata as dispute_metadata,\n reason as dispute_reason,\n status as dispute_status,\n source_relation\n \n {% if var('stripe__dispute_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__dispute_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__dispute_tmp", "package": null, "version": null}, {"name": "stg_stripe__dispute_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_dispute_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__dispute_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__dispute.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__dispute_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n balance_transaction as balance_transaction,\n charge_id as charge_id,\n connected_account_id as connected_account_id,\n created as created,\n currency as currency,\n evidence_access_activity_log as evidence_access_activity_log,\n evidence_billing_address as evidence_billing_address,\n evidence_cancellation_policy as evidence_cancellation_policy,\n evidence_cancellation_policy_disclosure as evidence_cancellation_policy_disclosure,\n evidence_cancellation_rebuttal as evidence_cancellation_rebuttal,\n evidence_customer_communication as evidence_customer_communication,\n evidence_customer_email_address as evidence_customer_email_address,\n evidence_customer_name as evidence_customer_name,\n evidence_customer_purchase_ip as evidence_customer_purchase_ip,\n evidence_customer_signature as evidence_customer_signature,\n evidence_details_due_by as evidence_details_due_by,\n evidence_details_has_evidence as evidence_details_has_evidence,\n evidence_details_past_due as evidence_details_past_due,\n evidence_details_submission_count as evidence_details_submission_count,\n evidence_duplicate_charge_documentation as evidence_duplicate_charge_documentation,\n evidence_duplicate_charge_explanation as evidence_duplicate_charge_explanation,\n evidence_duplicate_charge_id as evidence_duplicate_charge_id,\n evidence_product_description as evidence_product_description,\n evidence_receipt as evidence_receipt,\n evidence_refund_policy as evidence_refund_policy,\n evidence_refund_policy_disclosure as evidence_refund_policy_disclosure,\n evidence_refund_refusal_explanation as evidence_refund_refusal_explanation,\n evidence_service_date as evidence_service_date,\n evidence_service_documentation as evidence_service_documentation,\n evidence_shipping_address as evidence_shipping_address,\n evidence_shipping_carrier as evidence_shipping_carrier,\n evidence_shipping_date as evidence_shipping_date,\n evidence_shipping_documentation as evidence_shipping_documentation,\n evidence_shipping_tracking_number as evidence_shipping_tracking_number,\n evidence_uncategorized_file as evidence_uncategorized_file,\n evidence_uncategorized_text as evidence_uncategorized_text,\n id as id,\n is_charge_refundable as is_charge_refundable,\n livemode as livemode,\n metadata as metadata,\n reason as reason,\n status as status\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select\n id as dispute_id,\n \n\n\n\n \n amount as dispute_amount\n \n\n,\n balance_transaction,\n charge_id,\n connected_account_id,\n cast(created as timestamp) as dispute_created_at,\n currency as dispute_currency,\n evidence_access_activity_log,\n evidence_billing_address,\n evidence_cancellation_policy,\n evidence_cancellation_policy_disclosure,\n evidence_cancellation_rebuttal,\n evidence_customer_communication,\n evidence_customer_email_address,\n evidence_customer_name,\n evidence_customer_purchase_ip,\n evidence_customer_signature,\n evidence_details_due_by,\n evidence_details_has_evidence,\n evidence_details_past_due,\n evidence_details_submission_count,\n evidence_duplicate_charge_documentation,\n evidence_duplicate_charge_explanation,\n evidence_duplicate_charge_id,\n evidence_product_description,\n evidence_receipt,\n evidence_refund_policy,\n evidence_refund_policy_disclosure,\n evidence_refund_refusal_explanation,\n evidence_service_date,\n evidence_service_documentation,\n evidence_shipping_address,\n evidence_shipping_carrier,\n evidence_shipping_date,\n evidence_shipping_documentation,\n evidence_shipping_tracking_number,\n evidence_uncategorized_file,\n evidence_uncategorized_text,\n is_charge_refundable,\n metadata as dispute_metadata,\n reason as dispute_reason,\n status as dispute_status,\n source_relation\n \n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__fee_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__fee_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__fee_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__fee_tmp.sql", "unique_id": "model.stripe.stg_stripe__fee_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__fee_tmp"], "alias": "stg_stripe__fee_tmp", "checksum": {"name": "sha256", "checksum": "08ecf5b77327230a7a8cd0261d4795bdc3a1b506832d10939a3ee613bcf2f0ea"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.5210662, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__fee_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='fee',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='fee',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='fee'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "fee"], ["stripe", "fee"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.fee"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__fee_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_fee_identifier\n -- database: postgres \n -- schema: public\n -- identifier: fee_data\n\n\n select\n \"balance_transaction_id\",\n \"index\",\n \"_fivetran_synced\",\n \"amount\",\n \"application\",\n \"connected_account_id\",\n \"currency\",\n \"description\",\n \"type\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"fee_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__invoice_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__invoice_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__invoice_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__invoice_tmp.sql", "unique_id": "model.stripe.stg_stripe__invoice_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__invoice_tmp"], "alias": "stg_stripe__invoice_tmp", "checksum": {"name": "sha256", "checksum": "951c678841f3838e5d691e1d81242782bd875fed9ea9d2267365c60f92eabb86"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.5497186, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_invoices', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='invoice',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='invoice',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='invoice'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "invoice"], ["stripe", "invoice"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.invoice"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__invoice_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_invoice_identifier\n -- database: postgres \n -- schema: public\n -- identifier: invoice_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"currency\",\n \"customer_id\",\n \"due_date\",\n \"description\",\n \"discountable\",\n \"invoice_id\",\n \"is_deleted\",\n \"livemode\",\n \"period_end\",\n \"period_start\",\n \"proration\",\n \"quantity\",\n \"subscription_id\",\n \"subscription_item_id\",\n \"unit_amount\",\n \"default_payment_method_id\",\n \"amount_due\",\n \"amount_paid\",\n \"amount_remaining\",\n \"post_payment_credit_notes_amount\",\n \"pre_payment_credit_notes_amount\",\n \"subtotal\",\n \"tax\",\n \"total\",\n \"attempt_count\",\n \"auto_advance\",\n \"billing_reason\",\n \"metadata\",\n \"number\",\n \"paid\",\n \"receipt_number\",\n \"status\",\n \"source_relation\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"invoice_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payout_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payout_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__payout_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__payout_tmp.sql", "unique_id": "model.stripe.stg_stripe__payout_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__payout_tmp"], "alias": "stg_stripe__payout_tmp", "checksum": {"name": "sha256", "checksum": "71416b2b7dc4955297543b07e962a2df8f1c7b8382cd5543d3233f39af3b19f2"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.5611763, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payout_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_payouts', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='payout',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='payout',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='payout'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "payout"], ["stripe", "payout"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.payout"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__payout_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_payout_identifier\n -- database: postgres \n -- schema: public\n -- identifier: payout_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"arrival_date\",\n \"automatic\",\n \"balance_transaction_id\",\n \"connected_account_id\",\n \"created\",\n \"currency\",\n \"description\",\n \"destination_bank_account_id\",\n \"destination_card_id\",\n \"failure_balance_transaction_id\",\n \"failure_code\",\n \"failure_message\",\n \"livemode\",\n \"metadata\",\n \"method\",\n \"source_type\",\n \"statement_descriptor\",\n \"status\",\n \"type\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"payout_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payment_intent_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payment_intent_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__payment_intent_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__payment_intent_tmp.sql", "unique_id": "model.stripe.stg_stripe__payment_intent_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__payment_intent_tmp"], "alias": "stg_stripe__payment_intent_tmp", "checksum": {"name": "sha256", "checksum": "998bda094b593e4e9d226ca86fef50b8f7ece3621aab96a1755b215aef70cf94"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.5721745, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_intent_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='payment_intent',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='payment_intent',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='payment_intent'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "payment_intent"], ["stripe", "payment_intent"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.payment_intent"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__payment_intent_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_payment_intent_identifier\n -- database: postgres \n -- schema: public\n -- identifier: payment_intent_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"amount_capturable\",\n \"amount_received\",\n \"application\",\n \"application_fee_amount\",\n \"canceled_at\",\n \"cancellation_reason\",\n \"capture_method\",\n \"confirmation_method\",\n \"created\",\n \"currency\",\n \"customer_id\",\n \"description\",\n \"last_payment_error_charge_id\",\n \"last_payment_error_code\",\n \"last_payment_error_decline_code\",\n \"last_payment_error_doc_url\",\n \"last_payment_error_message\",\n \"last_payment_error_param\",\n \"last_payment_error_source_id\",\n \"last_payment_error_type\",\n \"livemode\",\n \"on_behalf_of\",\n \"payment_method_id\",\n \"receipt_email\",\n \"source_id\",\n \"statement_descriptor\",\n \"status\",\n \"transfer_data_destination\",\n \"transfer_group\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"payment_intent_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__coupon_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__coupon_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__coupon_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__coupon_tmp.sql", "unique_id": "model.stripe.stg_stripe__coupon_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__coupon_tmp"], "alias": "stg_stripe__coupon_tmp", "checksum": {"name": "sha256", "checksum": "f067d157f6fd1ccba5390e49fc92051d3763a94344108042fcb4a8a826f195f8"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.5831542, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__coupon_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_coupons', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='coupon',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='coupon',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='coupon'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "coupon"], ["stripe", "coupon"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.coupon"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__coupon_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_coupon_identifier\n -- database: postgres \n -- schema: public\n -- identifier: coupon_data\n\n\n select\n \"id\",\n \"amount_off\",\n \"created\",\n \"currency\",\n \"duration\",\n \"duration_in_months\",\n \"livemode\",\n \"max_redemptions\",\n \"metadata\",\n \"name\",\n \"percent_off\",\n \"redeem_by\",\n \"times_redeemed\",\n \"valid\",\n \"_fivetran_synced\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"coupon_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__transfer_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__transfer_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__transfer_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__transfer_tmp.sql", "unique_id": "model.stripe.stg_stripe__transfer_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__transfer_tmp"], "alias": "stg_stripe__transfer_tmp", "checksum": {"name": "sha256", "checksum": "922b1c308456211793776311602a4692b83b955e1005534ed9f5b7052aee1a5c"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.5944948, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__transfer_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_transfers', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='transfer',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='transfer',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='transfer'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "transfer"], ["stripe", "transfer"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.transfer"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__transfer_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_transfer_identifier\n -- database: postgres \n -- schema: public\n -- identifier: transfer_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"amount_reversed\",\n \"balance_transaction_id\",\n \"created\",\n \"currency\",\n \"description\",\n \"destination\",\n \"destination_payment\",\n \"destination_payment_id\",\n \"livemode\",\n \"metadata\",\n \"reversed\",\n \"source_transaction\",\n \"source_transaction_id\",\n \"source_type\",\n \"transfer_group\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"transfer_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__price_plan_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__price_plan_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__price_plan_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__price_plan_tmp.sql", "unique_id": "model.stripe.stg_stripe__price_plan_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__price_plan_tmp"], "alias": "stg_stripe__price_plan_tmp", "checksum": {"name": "sha256", "checksum": "83c69b6b0b4b645580e2854f7ea4aa28d56bf11dba6bb100a54046fe37bc2b36"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.6075082, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n\n{%- set price_or_plan = 'price'\n if var('stripe__using_price', stripe.does_table_exist('price')=='exists')\n else 'plan' -%}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier=price_or_plan,\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable=price_or_plan,\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name=price_or_plan\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "plan"], ["stripe", "plan"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.does_table_exist", "macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.plan"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__price_plan_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_price_identifier\n -- database: postgres \n -- schema: public\n -- identifier: price_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"active\",\n \"billing_scheme\",\n \"created\",\n \"currency\",\n \"invoice_item_id\",\n \"is_deleted\",\n \"livemode\",\n \"lookup_key\",\n \"metadata\",\n \"nickname\",\n \"product_id\",\n \"recurring_aggregate_usage\",\n \"recurring_interval\",\n \"recurring_interval_count\",\n \"recurring_usage_type\",\n \"tiers_mode\",\n \"transform_quantity_divide_by\",\n \"transform_quantity_round\",\n \"type\",\n \"unit_amount\",\n \"unit_amount_decimal\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"price_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__subscription_discount_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_discount_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__subscription_discount_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__subscription_discount_tmp.sql", "unique_id": "model.stripe.stg_stripe__subscription_discount_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__subscription_discount_tmp"], "alias": "stg_stripe__subscription_discount_tmp", "checksum": {"name": "sha256", "checksum": "9f7c4333792f8927274d0c8b18d2a598d1e8a72c0af9d8816167fb7bdd64cb49"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.6200917, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_discount_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_subscription_discounts', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='subscription_discount',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='subscription_discount',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='subscription_discount'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "subscription_discount"], ["stripe", "subscription_discount"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.subscription_discount"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__subscription_discount_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_subscription_discount_identifier\n -- database: postgres \n -- schema: public\n -- identifier: subscription_discount_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"checkout_session\",\n \"coupon_id\",\n \"customer_id\",\n \"end\",\n \"invoice_id\",\n \"invoice_item_id\",\n \"start\",\n \"subscription_id\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"subscription_discount_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__account_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__account_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__account_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__account_tmp.sql", "unique_id": "model.stripe.stg_stripe__account_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__account_tmp"], "alias": "stg_stripe__account_tmp", "checksum": {"name": "sha256", "checksum": "afd656728cba68b3fabc5ceb07a34cbc12cd0551cddbc383c050f21d5956c4ae"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.63143, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__account_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='account', \n database_variable='stripe_database', \n schema_variable='stripe_schema', \n default_database=target.database,\n default_schema='stripe',\n default_variable='account',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='account'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "account"], ["stripe", "account"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.account"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__account_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_account_identifier\n -- database: postgres \n -- schema: public\n -- identifier: account_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"business_profile_mcc\",\n \"business_profile_name\",\n \"business_profile_product_description\",\n \"business_profile_support_address_city\",\n \"business_profile_support_address_country\",\n \"business_profile_support_address_line_1\",\n \"business_profile_support_address_line_2\",\n \"business_profile_support_address_postal_code\",\n \"business_profile_support_address_state\",\n \"business_profile_support_email\",\n \"business_profile_support_phone\",\n \"business_profile_support_url\",\n \"business_profile_url\",\n \"business_type\",\n \"capabilities_afterpay_clearpay_payments\",\n \"capabilities_au_becs_debit_payments\",\n \"capabilities_bacs_debit_payments\",\n \"capabilities_bancontact_payments\",\n \"capabilities_card_issuing\",\n \"capabilities_card_payments\",\n \"capabilities_cartes_bancaires_payments\",\n \"capabilities_eps_payments\",\n \"capabilities_fpx_payments\",\n \"capabilities_giropay_payments\",\n \"capabilities_grabpay_payments\",\n \"capabilities_ideal_payments\",\n \"capabilities_jcb_payments\",\n \"capabilities_legacy_payments\",\n \"capabilities_oxxo_payments\",\n \"capabilities_p_24_payments\",\n \"capabilities_platform_payments\",\n \"capabilities_sepa_debit_payments\",\n \"capabilities_sofort_payments\",\n \"capabilities_tax_reporting_us_1099_k\",\n \"capabilities_tax_reporting_us_1099_misc\",\n \"capabilities_transfers\",\n \"charges_enabled\",\n \"company_address_city\",\n \"company_address_country\",\n \"company_address_kana_city\",\n \"company_address_kana_country\",\n \"company_address_kana_line_1\",\n \"company_address_kana_line_2\",\n \"company_address_kana_postal_code\",\n \"company_address_kana_state\",\n \"company_address_kana_town\",\n \"company_address_kanji_city\",\n \"company_address_kanji_country\",\n \"company_address_kanji_line_1\",\n \"company_address_kanji_line_2\",\n \"company_address_kanji_postal_code\",\n \"company_address_kanji_state\",\n \"company_address_kanji_town\",\n \"company_address_line_1\",\n \"company_address_line_2\",\n \"company_address_postal_code\",\n \"company_address_state\",\n \"company_directors_provided\",\n \"company_executives_provided\",\n \"company_name\",\n \"company_name_kana\",\n \"company_name_kanji\",\n \"company_owners_provided\",\n \"company_phone\",\n \"company_structure\",\n \"company_tax_id_provided\",\n \"company_tax_id_registrar\",\n \"company_vat_id_provided\",\n \"company_verification_document_back\",\n \"company_verification_document_details\",\n \"company_verification_document_details_code\",\n \"company_verification_document_front\",\n \"country\",\n \"created\",\n \"default_currency\",\n \"details_submitted\",\n \"email\",\n \"individual_id\",\n \"is_deleted\",\n \"metadata\",\n \"payouts_enabled\",\n \"requirements_current_deadline\",\n \"requirements_currently_due\",\n \"requirements_disabled_reason\",\n \"requirements_errors\",\n \"requirements_eventually_due\",\n \"requirements_past_due\",\n \"requirements_pending_verification\",\n \"settings_branding_icon\",\n \"settings_branding_logo\",\n \"settings_branding_primary_color\",\n \"settings_card_payments_decline_on_avs_failure\",\n \"settings_card_payments_decline_on_cvc_failure\",\n \"settings_card_payments_statement_descriptor_prefix\",\n \"settings_dashboard_display_name\",\n \"settings_dashboard_timezone\",\n \"settings_payments_statement_descriptor\",\n \"settings_payments_statement_descriptor_kana\",\n \"settings_payments_statement_descriptor_kanji\",\n \"settings_payouts_debit_negative_balances\",\n \"settings_payouts_schedule_delay_days\",\n \"settings_payouts_schedule_interval\",\n \"settings_payouts_schedule_monthly_anchor\",\n \"settings_payouts_schedule_weekly_anchor\",\n \"settings_payouts_statement_descriptor\",\n \"tos_acceptance_date\",\n \"tos_acceptance_ip\",\n \"tos_acceptance_user_agent\",\n \"type\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"account_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__invoice_line_item_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__invoice_line_item_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__invoice_line_item_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__invoice_line_item_tmp.sql", "unique_id": "model.stripe.stg_stripe__invoice_line_item_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__invoice_line_item_tmp"], "alias": "stg_stripe__invoice_line_item_tmp", "checksum": {"name": "sha256", "checksum": "24664dc3d461a480aadc4b793a26c529bd0950feb9868eb5b124849350cc9d38"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.6419742, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_invoices', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='invoice_line_item',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='invoice_line_item',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='invoice_line_item'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "invoice_line_item"], ["stripe", "invoice_line_item"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.invoice_line_item"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__invoice_line_item_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_invoice_line_item_identifier\n -- database: postgres \n -- schema: public\n -- identifier: invoice_line_item_data\n\n\n select\n \"id\",\n \"invoice_id\",\n \"_fivetran_synced\",\n \"amount\",\n \"currency\",\n \"description\",\n \"discountable\",\n \"livemode\",\n \"period_end\",\n \"period_start\",\n \"plan_id\",\n \"proration\",\n \"quantity\",\n \"subscription_id\",\n \"subscription_item_id\",\n \"type\",\n \"unique_id\",\n \"metadata\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"invoice_line_item_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__discount_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__discount_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__discount_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__discount_tmp.sql", "unique_id": "model.stripe.stg_stripe__discount_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__discount_tmp"], "alias": "stg_stripe__discount_tmp", "checksum": {"name": "sha256", "checksum": "7619213bad129e0dbe86716dfbfbde2b52b7aadb14dcb4016ff04f0e7cd34884"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.6541643, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__discount_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='discount',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='discount',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='discount'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "discount"], ["stripe", "discount"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.discount"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__discount_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_discount_identifier\n -- database: postgres \n -- schema: public\n -- identifier: discount_data\n\n\n select\n \"id\",\n \"type\",\n \"type_id\",\n \"_fivetran_synced\",\n \"amount\",\n \"checkout_session_id\",\n \"checkout_session_line_item_id\",\n \"coupon_id\",\n \"credit_note_line_item_id\",\n \"customer_id\",\n \"end\",\n \"invoice_id\",\n \"invoice_item_id\",\n \"promotion_code\",\n \"start\",\n \"subscription_id\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"discount_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__balance_transaction_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__balance_transaction_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__balance_transaction_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__balance_transaction_tmp.sql", "unique_id": "model.stripe.stg_stripe__balance_transaction_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__balance_transaction_tmp"], "alias": "stg_stripe__balance_transaction_tmp", "checksum": {"name": "sha256", "checksum": "8e82d1b8f268e80d6f1ef2fdf70bbbafebd678c7c38a7272088039ef2963bff4"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.6643758, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__balance_transaction_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='balance_transaction',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='balance_transaction',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='balance_transaction'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "balance_transaction"], ["stripe", "balance_transaction"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.balance_transaction"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__balance_transaction_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_balance_transaction_identifier\n -- database: postgres \n -- schema: public\n -- identifier: balance_transaction_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"available_on\",\n \"connected_account_id\",\n \"created\",\n \"currency\",\n \"description\",\n \"exchange_rate\",\n \"fee\",\n \"net\",\n \"source\",\n \"status\",\n \"type\",\n \"payout_id\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"balance_transaction_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__product_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__product_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__product_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__product_tmp.sql", "unique_id": "model.stripe.stg_stripe__product_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__product_tmp"], "alias": "stg_stripe__product_tmp", "checksum": {"name": "sha256", "checksum": "218cddc5286e5a56ec5e856530ee0e383c27909fbfaf9ee1d54411f6400ce4e7"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.6744041, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__product_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='product',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='product',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='product'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "product"], ["stripe", "product"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.product"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__product_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_product_identifier\n -- database: postgres \n -- schema: public\n -- identifier: product_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"active\",\n \"caption\",\n \"created\",\n \"description\",\n \"is_deleted\",\n \"livemode\",\n \"metadata\",\n \"name\",\n \"package_dimensions_height\",\n \"package_dimensions_length\",\n \"package_dimensions_weight\",\n \"package_dimensions_width\",\n \"shippable\",\n \"statement_descriptor\",\n \"type\",\n \"unit_label\",\n \"updated\",\n \"url\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"product_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__dispute_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__dispute_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__dispute_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__dispute_tmp.sql", "unique_id": "model.stripe.stg_stripe__dispute_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__dispute_tmp"], "alias": "stg_stripe__dispute_tmp", "checksum": {"name": "sha256", "checksum": "26cea7ed589a0d4ae9472fafd55ef9ecd6a4b688c4db3b2ff3c2253bd3a05013"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.684815, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__dispute_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='dispute',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='dispute',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='dispute'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "dispute"], ["stripe", "dispute"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.dispute"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__dispute_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_dispute_identifier\n -- database: postgres \n -- schema: public\n -- identifier: dispute_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"balance_transaction\",\n \"charge_id\",\n \"connected_account_id\",\n \"created\",\n \"currency\",\n \"evidence_access_activity_log\",\n \"evidence_billing_address\",\n \"evidence_cancellation_policy\",\n \"evidence_cancellation_policy_disclosure\",\n \"evidence_cancellation_rebuttal\",\n \"evidence_customer_communication\",\n \"evidence_customer_email_address\",\n \"evidence_customer_name\",\n \"evidence_customer_purchase_ip\",\n \"evidence_customer_signature\",\n \"evidence_details_due_by\",\n \"evidence_details_has_evidence\",\n \"evidence_details_past_due\",\n \"evidence_details_submission_count\",\n \"evidence_duplicate_charge_documentation\",\n \"evidence_duplicate_charge_explanation\",\n \"evidence_duplicate_charge_id\",\n \"evidence_product_description\",\n \"evidence_receipt\",\n \"evidence_refund_policy\",\n \"evidence_refund_policy_disclosure\",\n \"evidence_refund_refusal_explanation\",\n \"evidence_service_date\",\n \"evidence_service_documentation\",\n \"evidence_shipping_address\",\n \"evidence_shipping_carrier\",\n \"evidence_shipping_date\",\n \"evidence_shipping_documentation\",\n \"evidence_shipping_tracking_number\",\n \"evidence_uncategorized_file\",\n \"evidence_uncategorized_text\",\n \"is_charge_refundable\",\n \"livemode\",\n \"metadata\",\n \"reason\",\n \"status\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"dispute_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__card_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__card_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__card_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__card_tmp.sql", "unique_id": "model.stripe.stg_stripe__card_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__card_tmp"], "alias": "stg_stripe__card_tmp", "checksum": {"name": "sha256", "checksum": "447d977a84c69b85bdc261324ca4b3559b5bd09833adc48ec86f8da00b11c79c"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.6961539, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__card_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='card',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='card',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='card'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "card"], ["stripe", "card"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.card"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__card_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_card_identifier\n -- database: postgres \n -- schema: public\n -- identifier: card_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"account_id\",\n \"address_city\",\n \"address_country\",\n \"address_line_1\",\n \"address_line_1_check\",\n \"address_line_2\",\n \"address_state\",\n \"address_zip\",\n \"address_zip_check\",\n \"brand\",\n \"connected_account_id\",\n \"country\",\n \"created\",\n \"currency\",\n \"customer_id\",\n \"cvc_check\",\n \"dynamic_last_4\",\n \"exp_month\",\n \"exp_year\",\n \"fingerprint\",\n \"funding\",\n \"is_deleted\",\n \"last_4\",\n \"name\",\n \"network\",\n \"recipient\",\n \"tokenization_method\",\n \"metadata\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"card_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payment_method_card_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method_card_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__payment_method_card_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__payment_method_card_tmp.sql", "unique_id": "model.stripe.stg_stripe__payment_method_card_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__payment_method_card_tmp"], "alias": "stg_stripe__payment_method_card_tmp", "checksum": {"name": "sha256", "checksum": "13239c80f086972845bfab61176cdabf412d13325c9a17baaa87b3a818c411b3"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.7065156, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_card_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_payment_method', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='payment_method_card',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='payment_method_card',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='payment_method_card'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "payment_method_card"], ["stripe", "payment_method_card"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.payment_method_card"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__payment_method_card_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_payment_method_card_identifier\n -- database: postgres \n -- schema: public\n -- identifier: payment_method_card_data\n\n\n select\n \"payment_method_id\",\n \"_fivetran_synced\",\n \"brand\",\n \"charge_id\",\n \"description\",\n \"fingerprint\",\n \"funding\",\n \"type\",\n \"wallet_type\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"payment_method_card_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__charge_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__charge_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__charge_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__charge_tmp.sql", "unique_id": "model.stripe.stg_stripe__charge_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__charge_tmp"], "alias": "stg_stripe__charge_tmp", "checksum": {"name": "sha256", "checksum": "3e918985491b262294df961e04fcc6f7c2fcbc14f313fa7f52fe5b69c3d4fe76"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.7171476, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__charge_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='charge',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='charge',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='charge'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "charge"], ["stripe", "charge"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.charge"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__charge_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_charge_identifier\n -- database: postgres \n -- schema: public\n -- identifier: charge_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"amount_refunded\",\n \"application\",\n \"application_fee_amount\",\n \"balance_transaction_id\",\n \"bank_account_id\",\n \"captured\",\n \"card_id\",\n \"connected_account_id\",\n \"created\",\n \"currency\",\n \"customer_id\",\n \"description\",\n \"destination\",\n \"failure_code\",\n \"failure_message\",\n \"fraud_details_stripe_report\",\n \"fraud_details_user_report\",\n \"invoice_id\",\n \"livemode\",\n \"metadata\",\n \"on_behalf_of\",\n \"outcome_network_status\",\n \"outcome_reason\",\n \"outcome_risk_level\",\n \"outcome_risk_score\",\n \"outcome_seller_message\",\n \"outcome_type\",\n \"paid\",\n \"payment_intent_id\",\n \"receipt_email\",\n \"receipt_number\",\n \"receipt_url\",\n \"refunded\",\n \"shipping_address_city\",\n \"shipping_address_country\",\n \"shipping_address_line_1\",\n \"shipping_address_line_2\",\n \"shipping_address_postal_code\",\n \"shipping_address_state\",\n \"shipping_carrier\",\n \"shipping_name\",\n \"shipping_phone\",\n \"shipping_tracking_number\",\n \"source_id\",\n \"source_transfer\",\n \"statement_descriptor\",\n \"status\",\n \"transfer_data_destination\",\n \"transfer_group\",\n \"transfer_id\",\n \"calculated_statement_descriptor\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"charge_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payout_balance_transaction_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payout_balance_transaction_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__payout_balance_transaction_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__payout_balance_transaction_tmp.sql", "unique_id": "model.stripe.stg_stripe__payout_balance_transaction_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__payout_balance_transaction_tmp"], "alias": "stg_stripe__payout_balance_transaction_tmp", "checksum": {"name": "sha256", "checksum": "6569e4eba26568467bab93d7eb2709fad18a4a4e7cd0e544948cd86a9756534f"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.7274005, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payout_balance_transaction_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_payouts', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='payout_balance_transaction',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='payout_balance_transaction',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='payout_balance_transaction'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "payout_balance_transaction"], ["stripe", "payout_balance_transaction"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.payout_balance_transaction"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__payout_balance_transaction_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_payout_balance_transaction_identifier\n -- database: postgres \n -- schema: public\n -- identifier: payout_balance_transaction_data\n\n\n select\n \"payout_id\",\n \"_fivetran_synced\",\n \"balance_transaction_id\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"payout_balance_transaction_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__credit_note_line_item_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note_line_item_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__credit_note_line_item_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__credit_note_line_item_tmp.sql", "unique_id": "model.stripe.stg_stripe__credit_note_line_item_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__credit_note_line_item_tmp"], "alias": "stg_stripe__credit_note_line_item_tmp", "checksum": {"name": "sha256", "checksum": "faccd593f095f2d5789498a8b188be2c62e2421456176ec78c43d5e0abc088ae"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.7395542, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note_line_item_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_credit_notes', False)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='credit_note_line_item',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='credit_note_line_item',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='credit_note_line_item'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "credit_note_line_item"], ["stripe", "credit_note_line_item"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.credit_note_line_item"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__credit_note_line_item_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_credit_note_line_item_identifier\n -- database: postgres \n -- schema: public\n -- identifier: credit_note_line_item_data\n\n\n select\n \"credit_note_id\",\n \"id\",\n \"amount\",\n \"discount_amount\",\n \"description\",\n \"livemode\",\n \"quantity\",\n \"type\",\n \"unit_amount\",\n \"unit_amount_decimal\",\n \"_fivetran_synced\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"credit_note_line_item_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__customer_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__customer_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__customer_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__customer_tmp.sql", "unique_id": "model.stripe.stg_stripe__customer_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__customer_tmp"], "alias": "stg_stripe__customer_tmp", "checksum": {"name": "sha256", "checksum": "3aea2354f4fd5d05a43b3265c1a4be9b555d2b1cc5d1b3899d3ba793aa79c6a4"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.7502575, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__customer_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='customer',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='customer',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='customer'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "customer"], ["stripe", "customer"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.customer"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__customer_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_customer_identifier\n -- database: postgres \n -- schema: public\n -- identifier: customer_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"account_balance\",\n \"address_city\",\n \"address_country\",\n \"address_line_1\",\n \"address_line_2\",\n \"address_postal_code\",\n \"address_state\",\n \"balance\",\n \"bank_account_id\",\n \"created\",\n \"currency\",\n \"default_card_id\",\n \"delinquent\",\n \"description\",\n \"email\",\n \"invoice_prefix\",\n \"invoice_settings_default_payment_method\",\n \"invoice_settings_footer\",\n \"is_deleted\",\n \"livemode\",\n \"name\",\n \"phone\",\n \"shipping_address_city\",\n \"shipping_address_country\",\n \"shipping_address_line_1\",\n \"shipping_address_line_2\",\n \"shipping_address_postal_code\",\n \"shipping_address_state\",\n \"shipping_carrier\",\n \"shipping_name\",\n \"shipping_phone\",\n \"shipping_tracking_number\",\n \"source_id\",\n \"tax_exempt\",\n \"tax_info_tax_id\",\n \"tax_info_type\",\n \"tax_info_verification_status\",\n \"tax_info_verification_verified_name\",\n \"metadata\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"customer_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__refund_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__refund_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__refund_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__refund_tmp.sql", "unique_id": "model.stripe.stg_stripe__refund_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__refund_tmp"], "alias": "stg_stripe__refund_tmp", "checksum": {"name": "sha256", "checksum": "64d00dd54b278d2402b7b2d78d3e61ffe82e0d0fc1605017be2a432848d7dfae"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.7604, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__refund_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='refund',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='refund',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='refund'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "refund"], ["stripe", "refund"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.refund"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__refund_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_refund_identifier\n -- database: postgres \n -- schema: public\n -- identifier: refund_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"balance_transaction_id\",\n \"charge_id\",\n \"created\",\n \"currency\",\n \"description\",\n \"failure_balance_transaction_id\",\n \"failure_reason\",\n \"metadata\",\n \"reason\",\n \"receipt_number\",\n \"status\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"refund_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payment_method_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__payment_method_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__payment_method_tmp.sql", "unique_id": "model.stripe.stg_stripe__payment_method_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__payment_method_tmp"], "alias": "stg_stripe__payment_method_tmp", "checksum": {"name": "sha256", "checksum": "7e750c56ce3e0efe3fc12821563d1ff93bc376156c0337fd8dfcadfb5bd59340"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.7704222, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_payment_method', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='payment_method',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='payment_method',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='payment_method'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "payment_method"], ["stripe", "payment_method"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.payment_method"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__payment_method_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_payment_method_identifier\n -- database: postgres \n -- schema: public\n -- identifier: payment_method_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"billing_detail_address_city\",\n \"billing_detail_address_country\",\n \"billing_detail_address_line_1\",\n \"billing_detail_address_line_2\",\n \"billing_detail_address_postal_code\",\n \"billing_detail_address_state\",\n \"billing_detail_email\",\n \"billing_detail_name\",\n \"billing_detail_phone\",\n \"created\",\n \"customer_id\",\n \"livemode\",\n \"type\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"payment_method_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__credit_note_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__credit_note_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__credit_note_tmp.sql", "unique_id": "model.stripe.stg_stripe__credit_note_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__credit_note_tmp"], "alias": "stg_stripe__credit_note_tmp", "checksum": {"name": "sha256", "checksum": "44f6c5e02fb0c503bd1ec55d783c41b92811e0d0a116ac6c688496b358cd17cf"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.7822537, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_credit_notes', False)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='credit_note',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='credit_note',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='credit_note'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "credit_note"], ["stripe", "credit_note"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.credit_note"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__credit_note_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_credit_note_identifier\n -- database: postgres \n -- schema: public\n -- identifier: credit_note_data\n\n\n select\n \"id\",\n \"amount\",\n \"created\",\n \"currency\",\n \"discount_amount\",\n \"subtotal\",\n \"total\",\n \"livemode\",\n \"memo\",\n \"metadata\",\n \"number\",\n \"pdf\",\n \"reason\",\n \"status\",\n \"type\",\n \"voided_at\",\n \"customer_balance_transaction_id\",\n \"invoice_id\",\n \"refund_id\",\n \"_fivetran_synced\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"credit_note_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__subscription_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__subscription_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__subscription_tmp.sql", "unique_id": "model.stripe.stg_stripe__subscription_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__subscription_tmp"], "alias": "stg_stripe__subscription_tmp", "checksum": {"name": "sha256", "checksum": "3fa613200b5ce6ec3648f1d432d111bada1f1ea44c85ad06dff320ee94a438a8"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.7926145, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n{%- set history_or_subscription = 'subscription_history'\n if var('stripe__using_subscription_history', stripe.does_table_exist('subscription_history')=='exists')\n else 'subscription' -%}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier=history_or_subscription,\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable=history_or_subscription,\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name=history_or_subscription\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "subscription"], ["stripe", "subscription"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.does_table_exist", "macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.subscription"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__subscription_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_subscription_history_identifier\n -- database: postgres \n -- schema: public\n -- identifier: subscription_history_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"_fivetran_active\",\n \"application_fee_percent\",\n \"billing\",\n \"billing_cycle_anchor\",\n \"billing_threshold_amount_gte\",\n \"billing_threshold_reset_billing_cycle_anchor\",\n \"cancel_at\",\n \"cancel_at_period_end\",\n \"canceled_at\",\n \"created\",\n \"current_period_end\",\n \"current_period_start\",\n \"customer_id\",\n \"days_until_due\",\n \"default_source_id\",\n \"ended_at\",\n \"livemode\",\n \"metadata\",\n \"quantity\",\n \"start_date\",\n \"status\",\n \"tax_percent\",\n \"trial_end\",\n \"trial_start\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"subscription_history_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__subscription_item_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_item_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__subscription_item_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__subscription_item_tmp.sql", "unique_id": "model.stripe.stg_stripe__subscription_item_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__subscription_item_tmp"], "alias": "stg_stripe__subscription_item_tmp", "checksum": {"name": "sha256", "checksum": "c46cd2531e7c8dc56a3145f36460cc847b49083de74e0c008ec92f4fda9ea1e1"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.8041592, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='subscription_item',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='subscription_item',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='subscription_item'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "subscription_item"], ["stripe", "subscription_item"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.subscription_item"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__subscription_item_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_subscription_item_identifier\n -- database: postgres \n -- schema: public\n -- identifier: subscription_item_data\n\n\n select\n \"_fivetran_synced\",\n \"created\",\n \"current_period_end\",\n \"current_period_start\",\n \"id\",\n \"metadata\",\n \"plan_id\",\n \"quantity\",\n \"subscription_id\"\n , 'postgres.public' as _dbt_source_relation\n from \"postgres\".\"public\".\"subscription_item_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "analysis.stripe.stripe__customer_mrr_analysis": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__customer_mrr_analysis", "resource_type": "analysis", "package_name": "stripe", "path": "analysis/stripe__customer_mrr_analysis.sql", "original_file_path": "analyses/stripe__customer_mrr_analysis.sql", "unique_id": "analysis.stripe.stripe__customer_mrr_analysis", "fqn": ["stripe", "analysis", "stripe__customer_mrr_analysis"], "alias": "stripe__customer_mrr_analysis", "checksum": {"name": "sha256", "checksum": "79a7fa6d6d467f279fe5801789a24e1a4991f0a67260e1a50f19c38f8580b3ec"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.9393225, "relation_name": null, "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n\nwith item_mrr as (\n select *\n from {{ ref('stripe__subscription_item_mrr_report') }}\n),\n\ncustomer_mrr as (\n select\n source_relation,\n customer_id,\n subscription_year,\n subscription_month,\n currency,\n sum(month_contract_mrr) as month_contract_mrr,\n sum(month_discount_applied) as month_discount_applied,\n sum(month_billed_mrr) as month_billed_mrr\n from item_mrr\n {{ dbt_utils.group_by(5) }}\n),\n\ncustomer_mrr_lagged as (\n select\n source_relation,\n customer_id,\n subscription_year,\n subscription_month,\n currency,\n month_contract_mrr,\n month_discount_applied,\n month_billed_mrr,\n lag(month_contract_mrr) over (\n partition by source_relation, customer_id, currency\n order by subscription_year, subscription_month\n ) as prior_month_contract_mrr,\n lag(month_billed_mrr) over (\n partition by source_relation, customer_id, currency\n order by subscription_year, subscription_month\n ) as prior_month_billed_mrr\n from customer_mrr\n)\n\nselect\n *,\n case\n when prior_month_contract_mrr is null\n and month_contract_mrr > 0 then 'new'\n when month_contract_mrr > prior_month_contract_mrr then 'expansion'\n when prior_month_contract_mrr > month_contract_mrr\n and month_contract_mrr > 0 then 'contraction'\n when (month_contract_mrr = 0 or month_contract_mrr is null)\n and prior_month_contract_mrr > 0 then 'churned'\n when prior_month_contract_mrr = 0\n and month_contract_mrr > 0 then 'reactivation'\n when month_contract_mrr = prior_month_contract_mrr then 'unchanged'\n else 'unknown'\n end as customer_contract_mrr_type,\n case\n when prior_month_billed_mrr is null\n and month_billed_mrr > 0 then 'new'\n when month_billed_mrr > prior_month_billed_mrr then 'expansion'\n when prior_month_billed_mrr > month_billed_mrr\n and month_billed_mrr > 0 then 'contraction'\n when (month_billed_mrr = 0 or month_billed_mrr is null)\n and prior_month_billed_mrr > 0 then 'churned'\n when prior_month_billed_mrr = 0\n and month_billed_mrr > 0 then 'reactivation'\n when month_billed_mrr = prior_month_billed_mrr then 'unchanged'\n else 'unknown'\n end as customer_billed_mrr_type\nfrom customer_mrr_lagged", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__subscription_item_mrr_report", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_utils.group_by"], "nodes": ["model.stripe.stripe__subscription_item_mrr_report"]}, "compiled_path": "target/compiled/stripe/analyses/stripe__customer_mrr_analysis.sql", "compiled": true, "compiled_code": "\n\nwith item_mrr as (\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__subscription_item_mrr_report\"\n),\n\ncustomer_mrr as (\n select\n source_relation,\n customer_id,\n subscription_year,\n subscription_month,\n currency,\n sum(month_contract_mrr) as month_contract_mrr,\n sum(month_discount_applied) as month_discount_applied,\n sum(month_billed_mrr) as month_billed_mrr\n from item_mrr\n group by 1,2,3,4,5\n),\n\ncustomer_mrr_lagged as (\n select\n source_relation,\n customer_id,\n subscription_year,\n subscription_month,\n currency,\n month_contract_mrr,\n month_discount_applied,\n month_billed_mrr,\n lag(month_contract_mrr) over (\n partition by source_relation, customer_id, currency\n order by subscription_year, subscription_month\n ) as prior_month_contract_mrr,\n lag(month_billed_mrr) over (\n partition by source_relation, customer_id, currency\n order by subscription_year, subscription_month\n ) as prior_month_billed_mrr\n from customer_mrr\n)\n\nselect\n *,\n case\n when prior_month_contract_mrr is null\n and month_contract_mrr > 0 then 'new'\n when month_contract_mrr > prior_month_contract_mrr then 'expansion'\n when prior_month_contract_mrr > month_contract_mrr\n and month_contract_mrr > 0 then 'contraction'\n when (month_contract_mrr = 0 or month_contract_mrr is null)\n and prior_month_contract_mrr > 0 then 'churned'\n when prior_month_contract_mrr = 0\n and month_contract_mrr > 0 then 'reactivation'\n when month_contract_mrr = prior_month_contract_mrr then 'unchanged'\n else 'unknown'\n end as customer_contract_mrr_type,\n case\n when prior_month_billed_mrr is null\n and month_billed_mrr > 0 then 'new'\n when month_billed_mrr > prior_month_billed_mrr then 'expansion'\n when prior_month_billed_mrr > month_billed_mrr\n and month_billed_mrr > 0 then 'contraction'\n when (month_billed_mrr = 0 or month_billed_mrr is null)\n and prior_month_billed_mrr > 0 then 'churned'\n when prior_month_billed_mrr = 0\n and month_billed_mrr > 0 then 'reactivation'\n when month_billed_mrr = prior_month_billed_mrr then 'unchanged'\n else 'unknown'\n end as customer_billed_mrr_type\nfrom customer_mrr_lagged", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}}, "analysis.stripe.stripe__arr_snapshot_analysis": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__arr_snapshot_analysis", "resource_type": "analysis", "package_name": "stripe", "path": "analysis/stripe__arr_snapshot_analysis.sql", "original_file_path": "analyses/stripe__arr_snapshot_analysis.sql", "unique_id": "analysis.stripe.stripe__arr_snapshot_analysis", "fqn": ["stripe", "analysis", "stripe__arr_snapshot_analysis"], "alias": "stripe__arr_snapshot_analysis", "checksum": {"name": "sha256", "checksum": "6c38c3b7beb9da260b42139d377176b2e63da5542e1f551ac7f68d06c773fec0"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": true, "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1781130901.9550712, "relation_name": null, "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n\nwith mrr_by_item as (\n select *\n from {{ ref('stripe__subscription_item_mrr_report') }}\n\n),\n\nmonthly_rollup as (\n select\n source_relation,\n subscription_month as recurring_rev_month,\n subscription_year as recurring_rev_year,\n currency,\n sum(month_contract_mrr) as total_contract_mrr,\n sum(month_discount_applied) as total_discount_applied,\n sum(month_billed_mrr) as total_billed_mrr\n from mrr_by_item\n {{ dbt_utils.group_by(4) }}\n\n),\n\nsnapshots as (\n select\n source_relation,\n recurring_rev_month,\n recurring_rev_year,\n currency,\n total_contract_mrr,\n total_discount_applied,\n total_billed_mrr,\n total_contract_mrr * 12 as total_contract_arr,\n total_discount_applied * 12 as total_discount_applied,\n total_billed_mrr * 12 as total_billed_arr,\n row_number() over (\n partition by source_relation, recurring_rev_year, currency\n order by recurring_rev_month desc\n ) as month_number\n from monthly_rollup\n\n),\n\nfinal as (\n select\n source_relation,\n recurring_rev_year,\n currency,\n round(total_contract_arr, 2) as total_contract_arr,\n round(total_discount_arr, 2) as total_discount_applied,\n round(total_billed_arr, 2) as total_billed_arr\n from snapshots\n where month_number = 1 -- last month in that year\n\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__subscription_item_mrr_report", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_utils.group_by"], "nodes": ["model.stripe.stripe__subscription_item_mrr_report"]}, "compiled_path": "target/compiled/stripe/analyses/stripe__arr_snapshot_analysis.sql", "compiled": true, "compiled_code": "\n\nwith mrr_by_item as (\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__subscription_item_mrr_report\"\n\n),\n\nmonthly_rollup as (\n select\n source_relation,\n subscription_month as recurring_rev_month,\n subscription_year as recurring_rev_year,\n currency,\n sum(month_contract_mrr) as total_contract_mrr,\n sum(month_discount_applied) as total_discount_applied,\n sum(month_billed_mrr) as total_billed_mrr\n from mrr_by_item\n group by 1,2,3,4\n\n),\n\nsnapshots as (\n select\n source_relation,\n recurring_rev_month,\n recurring_rev_year,\n currency,\n total_contract_mrr,\n total_discount_applied,\n total_billed_mrr,\n total_contract_mrr * 12 as total_contract_arr,\n total_discount_applied * 12 as total_discount_applied,\n total_billed_mrr * 12 as total_billed_arr,\n row_number() over (\n partition by source_relation, recurring_rev_year, currency\n order by recurring_rev_month desc\n ) as month_number\n from monthly_rollup\n\n),\n\nfinal as (\n select\n source_relation,\n recurring_rev_year,\n currency,\n round(total_contract_arr, 2) as total_contract_arr,\n round(total_discount_arr, 2) as total_discount_applied,\n round(total_billed_arr, 2) as total_billed_arr\n from snapshots\n where month_number = 1 -- last month in that year\n\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}}, "test.stripe.not_null_stg_stripe__balance_transaction_balance_transaction_id.0ac20e778f": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__balance_transaction_balance_transaction_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__balance_transaction_balance_transaction_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__balance_transaction_balance_transaction_id.0ac20e778f", "fqn": ["stripe", "staging", "not_null_stg_stripe__balance_transaction_balance_transaction_id"], "alias": "not_null_stg_stripe__balance_transaction_balance_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.4544208, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__balance_transaction", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__balance_transaction"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__balance_transaction_balance_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect balance_transaction_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__balance_transaction\"\nwhere balance_transaction_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "balance_transaction_id", "file_key_name": "models.stg_stripe__balance_transaction", "attached_node": "model.stripe.stg_stripe__balance_transaction", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "balance_transaction_id", "model": "{{ get_where_subquery(ref('stg_stripe__balance_transaction')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__card_card_id.edadd3106a": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__card_card_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__card_card_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__card_card_id.edadd3106a", "fqn": ["stripe", "staging", "not_null_stg_stripe__card_card_id"], "alias": "not_null_stg_stripe__card_card_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.457269, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__card", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__card"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__card_card_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect card_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__card\"\nwhere card_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "card_id", "file_key_name": "models.stg_stripe__card", "attached_node": "model.stripe.stg_stripe__card", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "card_id", "model": "{{ get_where_subquery(ref('stg_stripe__card')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__charge_charge_id.8941bc704a": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__charge_charge_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__charge_charge_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__charge_charge_id.8941bc704a", "fqn": ["stripe", "staging", "not_null_stg_stripe__charge_charge_id"], "alias": "not_null_stg_stripe__charge_charge_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.4597542, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__charge", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__charge"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__charge_charge_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect charge_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\"\nwhere charge_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "charge_id", "file_key_name": "models.stg_stripe__charge", "attached_node": "model.stripe.stg_stripe__charge", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "charge_id", "model": "{{ get_where_subquery(ref('stg_stripe__charge')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__customer_customer_id.2e70421da0": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__customer_customer_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__customer_customer_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__customer_customer_id.2e70421da0", "fqn": ["stripe", "staging", "not_null_stg_stripe__customer_customer_id"], "alias": "not_null_stg_stripe__customer_customer_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.462164, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__customer", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__customer"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__customer_customer_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\"\nwhere customer_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "customer_id", "file_key_name": "models.stg_stripe__customer", "attached_node": "model.stripe.stg_stripe__customer", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "customer_id", "model": "{{ get_where_subquery(ref('stg_stripe__customer')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__fee_balance_transaction_id.725d4ac005": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__fee_balance_transaction_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__fee_balance_transaction_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__fee_balance_transaction_id.725d4ac005", "fqn": ["stripe", "staging", "not_null_stg_stripe__fee_balance_transaction_id"], "alias": "not_null_stg_stripe__fee_balance_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.4645085, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__fee", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__fee"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__fee_balance_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect balance_transaction_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__fee\"\nwhere balance_transaction_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "balance_transaction_id", "file_key_name": "models.stg_stripe__fee", "attached_node": "model.stripe.stg_stripe__fee", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "balance_transaction_id", "model": "{{ get_where_subquery(ref('stg_stripe__fee')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__payment_intent_payment_intent_id.cb5b4d09eb": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__payment_intent_payment_intent_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__payment_intent_payment_intent_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__payment_intent_payment_intent_id.cb5b4d09eb", "fqn": ["stripe", "staging", "not_null_stg_stripe__payment_intent_payment_intent_id"], "alias": "not_null_stg_stripe__payment_intent_payment_intent_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.4671268, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payment_intent", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__payment_intent"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__payment_intent_payment_intent_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect payment_intent_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_intent\"\nwhere payment_intent_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "payment_intent_id", "file_key_name": "models.stg_stripe__payment_intent", "attached_node": "model.stripe.stg_stripe__payment_intent", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "payment_intent_id", "model": "{{ get_where_subquery(ref('stg_stripe__payment_intent')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__payment_method_card_payment_method_id.f246b11438": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__payment_method_card_payment_method_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__payment_method_card_payment_method_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__payment_method_card_payment_method_id.f246b11438", "fqn": ["stripe", "staging", "not_null_stg_stripe__payment_method_card_payment_method_id"], "alias": "not_null_stg_stripe__payment_method_card_payment_method_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.4694736, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payment_method_card", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__payment_method_card"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__payment_method_card_payment_method_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect payment_method_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_card\"\nwhere payment_method_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "payment_method_id", "file_key_name": "models.stg_stripe__payment_method_card", "attached_node": "model.stripe.stg_stripe__payment_method_card", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "payment_method_id", "model": "{{ get_where_subquery(ref('stg_stripe__payment_method_card')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__payment_method_payment_method_id.0a8907c471": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__payment_method_payment_method_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__payment_method_payment_method_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__payment_method_payment_method_id.0a8907c471", "fqn": ["stripe", "staging", "not_null_stg_stripe__payment_method_payment_method_id"], "alias": "not_null_stg_stripe__payment_method_payment_method_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.4717534, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payment_method", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__payment_method"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__payment_method_payment_method_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect payment_method_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method\"\nwhere payment_method_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "payment_method_id", "file_key_name": "models.stg_stripe__payment_method", "attached_node": "model.stripe.stg_stripe__payment_method", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "payment_method_id", "model": "{{ get_where_subquery(ref('stg_stripe__payment_method')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__payout_payout_id.6864a8acfc": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__payout_payout_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__payout_payout_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__payout_payout_id.6864a8acfc", "fqn": ["stripe", "staging", "not_null_stg_stripe__payout_payout_id"], "alias": "not_null_stg_stripe__payout_payout_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.4740036, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payout", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__payout"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__payout_payout_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect payout_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__payout\"\nwhere payout_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "payout_id", "file_key_name": "models.stg_stripe__payout", "attached_node": "model.stripe.stg_stripe__payout", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "payout_id", "model": "{{ get_where_subquery(ref('stg_stripe__payout')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__refund_refund_id.7c6dcedec0": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__refund_refund_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__refund_refund_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__refund_refund_id.7c6dcedec0", "fqn": ["stripe", "staging", "not_null_stg_stripe__refund_refund_id"], "alias": "not_null_stg_stripe__refund_refund_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.4763944, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__refund", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__refund"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__refund_refund_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect refund_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__refund\"\nwhere refund_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "refund_id", "file_key_name": "models.stg_stripe__refund", "attached_node": "model.stripe.stg_stripe__refund", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "refund_id", "model": "{{ get_where_subquery(ref('stg_stripe__refund')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__invoice_line_item_invoice_line_item_id.5b9c83b5f3": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__invoice_line_item_invoice_line_item_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__invoice_line_item_invoice_line_item_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__invoice_line_item_invoice_line_item_id.5b9c83b5f3", "fqn": ["stripe", "staging", "not_null_stg_stripe__invoice_line_item_invoice_line_item_id"], "alias": "not_null_stg_stripe__invoice_line_item_invoice_line_item_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.4787786, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice_line_item", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__invoice_line_item"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__invoice_line_item_invoice_line_item_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect invoice_line_item_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\"\nwhere invoice_line_item_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "invoice_line_item_id", "file_key_name": "models.stg_stripe__invoice_line_item", "attached_node": "model.stripe.stg_stripe__invoice_line_item", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "invoice_line_item_id", "model": "{{ get_where_subquery(ref('stg_stripe__invoice_line_item')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__invoice_invoice_id.34cc0ff095": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__invoice_invoice_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__invoice_invoice_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__invoice_invoice_id.34cc0ff095", "fqn": ["stripe", "staging", "not_null_stg_stripe__invoice_invoice_id"], "alias": "not_null_stg_stripe__invoice_invoice_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.4811022, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__invoice"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__invoice_invoice_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect invoice_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice\"\nwhere invoice_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "invoice_id", "file_key_name": "models.stg_stripe__invoice", "attached_node": "model.stripe.stg_stripe__invoice", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "invoice_id", "model": "{{ get_where_subquery(ref('stg_stripe__invoice')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__subscription_subscription_id.b242b1f7bc": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__subscription_subscription_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__subscription_subscription_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__subscription_subscription_id.b242b1f7bc", "fqn": ["stripe", "staging", "not_null_stg_stripe__subscription_subscription_id"], "alias": "not_null_stg_stripe__subscription_subscription_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.483379, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__subscription"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__subscription_subscription_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect subscription_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\"\nwhere subscription_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "subscription_id", "file_key_name": "models.stg_stripe__subscription", "attached_node": "model.stripe.stg_stripe__subscription", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "subscription_id", "model": "{{ get_where_subquery(ref('stg_stripe__subscription')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__subscription_item_subscription_item_id.dd9153a54a": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__subscription_item_subscription_item_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__subscription_item_subscription_item_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__subscription_item_subscription_item_id.dd9153a54a", "fqn": ["stripe", "staging", "not_null_stg_stripe__subscription_item_subscription_item_id"], "alias": "not_null_stg_stripe__subscription_item_subscription_item_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.4857626, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_item", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__subscription_item"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__subscription_item_subscription_item_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect subscription_item_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\nwhere subscription_item_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "subscription_item_id", "file_key_name": "models.stg_stripe__subscription_item", "attached_node": "model.stripe.stg_stripe__subscription_item", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "subscription_item_id", "model": "{{ get_where_subquery(ref('stg_stripe__subscription_item')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__credit_note_credit_note_id.d3e7f781dd": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__credit_note_credit_note_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__credit_note_credit_note_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__credit_note_credit_note_id.d3e7f781dd", "fqn": ["stripe", "staging", "not_null_stg_stripe__credit_note_credit_note_id"], "alias": "not_null_stg_stripe__credit_note_credit_note_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.4880607, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__credit_note", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__credit_note"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__credit_note_credit_note_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect credit_note_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note\"\nwhere credit_note_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "credit_note_id", "file_key_name": "models.stg_stripe__credit_note", "attached_node": "model.stripe.stg_stripe__credit_note", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "credit_note_id", "model": "{{ get_where_subquery(ref('stg_stripe__credit_note')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id.4a26fbafe7": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__credit_no_3566f51b8444d66080a7df347c87b48d.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id.4a26fbafe7", "fqn": ["stripe", "staging", "not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id"], "alias": "not_null_stg_stripe__credit_no_3566f51b8444d66080a7df347c87b48d", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "not_null_stg_stripe__credit_no_3566f51b8444d66080a7df347c87b48d", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "not_null_stg_stripe__credit_no_3566f51b8444d66080a7df347c87b48d"}, "created_at": 1781130902.490366, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}{{ config(alias=\"not_null_stg_stripe__credit_no_3566f51b8444d66080a7df347c87b48d\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__credit_note_line_item", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__credit_note_line_item"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__credit_no_3566f51b8444d66080a7df347c87b48d.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect credit_note_line_item_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note_line_item\"\nwhere credit_note_line_item_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "credit_note_line_item_id", "file_key_name": "models.stg_stripe__credit_note_line_item", "attached_node": "model.stripe.stg_stripe__credit_note_line_item", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "credit_note_line_item_id", "model": "{{ get_where_subquery(ref('stg_stripe__credit_note_line_item')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__account_account_id.374858379a": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__account_account_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__account_account_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__account_account_id.374858379a", "fqn": ["stripe", "staging", "not_null_stg_stripe__account_account_id"], "alias": "not_null_stg_stripe__account_account_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1781130902.4926019, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__account", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__account"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__account_account_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect account_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__account\"\nwhere account_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "account_id", "file_key_name": "models.stg_stripe__account", "attached_node": "model.stripe.stg_stripe__account", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "account_id", "model": "{{ get_where_subquery(ref('stg_stripe__account')) }}"}, "namespace": null}}}, "sources": {"source.stripe.stripe.balance_transaction": {"database": "postgres", "schema": "public", "name": "balance_transaction", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.balance_transaction", "fqn": ["stripe", "staging", "stripe", "balance_transaction"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "balance_transaction_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Balance transactions represent funds moving through your Stripe account. They're created for every type of transaction that comes into or flows out of your Stripe account balance.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Gross amount of the transaction, in cents.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "available_on": {"name": "available_on", "description": "The date the transaction's net funds will become available in the Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "The ID of the account connected to the transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "exchange_rate": {"name": "exchange_rate", "description": "The exchange rate used, if applicable, for this transaction. Specifically, if money was converted from currency A to currency B, then the amount in currency A, times exchange_rate, would be the amount in currency B.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "fee": {"name": "fee", "description": "fees (in cents) paid for this transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "net": {"name": "net", "description": "Net amount of the transaction, in cents.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "reporting_category": {"name": "reporting_category", "description": "Improves on the type field by providing a more-useful grouping for most finance and reporting purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source": {"name": "source", "description": "The Stripe object to which this transaction is related.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "If the transaction's net funds are available in the Stripe balance yet. Either 'available' or 'pending'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of transaction. Possible values are adjustment, advance, advance_funding, application_fee, application_fee_refund, charge, connect_collection_transfer, issuing_authorization_hold, issuing_authorization_release, issuing_dispute, issuing_transaction, payment, payment_failure_refund, payment_refund, payout, payout_cancel, payout_failure, refund, refund_failure, reserve_transaction, reserved_funds, stripe_fee, stripe_fx_fee, tax_fee, topup, topup_reversal, transfer, transfer_cancel, transfer_failure, or transfer_refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"balance_transaction_data\"", "created_at": 1781130902.6885545, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.card": {"database": "postgres", "schema": "public", "name": "card", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.card", "fqn": ["stripe", "staging", "stripe", "card"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "card_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Details of a credit card that has been saved to the system.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "account_id": {"name": "account_id", "description": "ID of account associated with this card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "address_city": {"name": "address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "address_country": {"name": "address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "address_line_1": {"name": "address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "address_line_2": {"name": "address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "address_state": {"name": "address_state", "description": "State/County/Province/Region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "address_zip": {"name": "address_zip", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "brand": {"name": "brand", "description": "Card brand. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "country": {"name": "country", "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.created"]}, "customer_id": {"name": "customer_id", "description": "The customer that this card belongs to. NULL if belongs to an account or recipient.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "name": {"name": "name", "description": "Cardholder name", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "recipient": {"name": "recipient", "description": "The recipient that this card belongs to. NULL if the card belongs to a customer or account instead.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "funding": {"name": "funding", "description": "Card funding type. Can be credit, debit, prepaid, or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "wallet_type": {"name": "wallet_type", "description": "The type of the card wallet, one of amex_express_checkout, apple_pay, google_pay, masterpass, samsung_pay, or visa_checkout. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "three_d_secure_authentication_flow": {"name": "three_d_secure_authentication_flow", "description": "For authenticated transactions, how the customer was authenticated by the issuing bank.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "three_d_secure_result": {"name": "three_d_secure_result", "description": "Indicates the outcome of 3D Secure authentication.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "three_d_secure_result_reason": {"name": "three_d_secure_result_reason", "description": "Additional information about why 3D Secure succeeded or failed based on the result.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "three_d_secure_version": {"name": "three_d_secure_version", "description": "The version of 3D Secure that was used.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"card_data\"", "created_at": 1781130902.6907752, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.charge": {"database": "postgres", "schema": "public", "name": "charge", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.charge", "fqn": ["stripe", "staging", "stripe", "charge"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "charge_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "To charge a credit or a debit card, you create a Charge object. You can retrieve and refund individual charges as well as list all charges. Charges are identified by a unique, random ID.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge \u00a5100, a zero-decimal currency)", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount_refunded": {"name": "amount_refunded", "description": "The amount of the charge, if any, that has been refunded.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "application_fee_amount": {"name": "application_fee_amount", "description": "The amount of the application fee (if any) for the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "captured": {"name": "captured", "description": "If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "card_id": {"name": "card_id", "description": "ID of the card that was charged.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.created"]}, "connected_account_id": {"name": "connected_account_id", "description": "ID of account connected for this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the customer this charge is for if one exists.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "failure_code": {"name": "failure_code", "description": "Error code explaining reason for charge failure if available.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "failure_message": {"name": "failure_message", "description": "Message to user further explaining reason for charge failure if available.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "paid": {"name": "paid", "description": "true if the charge succeeded, or was successfully authorized for later capture.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "ID of the PaymentIntent associated with this charge, if one exists.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "receipt_email": {"name": "receipt_email", "description": "This is the email address that the receipt for this charge was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "receipt_number": {"name": "receipt_number", "description": "This is the transaction number that appears on email receipts sent for this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "refunded": {"name": "refunded", "description": "Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "The status of the payment is either succeeded, pending, or failed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_carrier": {"name": "shipping_carrier", "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_name": {"name": "shipping_name", "description": "Recipient name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_phone": {"name": "shipping_phone", "description": "Recipient phone (including extension).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_tracking_number": {"name": "shipping_tracking_number", "description": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_id": {"name": "source_id", "description": "ID of the source associated. Source objects allow you to accept a variety of payment methods. They represent a customer's payment instrument, and can be used with the Stripe API just like a Card object, once chargeable, they can be charged, or can be attached to customers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_transfer": {"name": "source_transfer", "description": "The transfer ID which created this charge. Only present if the charge came from another Stripe account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "Extra information about a source. This will appear on your customer's statement every time you charge the source.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The id of the invoice associated with this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "The currency of the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_method_id": {"name": "payment_method_id", "description": "Unique identifier for the payment method object used in this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "calculated_statement_descriptor": {"name": "calculated_statement_descriptor", "description": "The full statement descriptor that is passed to card networks, and that is displayed on your customers' credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_address_city": {"name": "billing_detail_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_address_country": {"name": "billing_detail_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_address_line1": {"name": "billing_detail_address_line1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_address_line2": {"name": "billing_detail_address_line2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_address_postal_code": {"name": "billing_detail_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_address_state": {"name": "billing_detail_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_email": {"name": "billing_detail_email", "description": "Email address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_name": {"name": "billing_detail_name", "description": "Full name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_detail_phone": {"name": "billing_detail_phone", "description": "Billing phone number (including extension).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"charge_data\"", "created_at": 1781130902.6917949, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.customer": {"database": "postgres", "schema": "public", "name": "customer", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.customer", "fqn": ["stripe", "staging", "stripe", "customer"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "customer_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Customer objects allow you to perform recurring charges, and to track multiple charges, that are associated with the same customer.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "account_balance": {"name": "account_balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "address_city": {"name": "address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.city"]}, "address_country": {"name": "address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.country"]}, "address_line_1": {"name": "address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.line_1"]}, "address_line_2": {"name": "address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.line_2"]}, "address_postal_code": {"name": "address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.postal_code"]}, "address_state": {"name": "address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.state"]}, "balance": {"name": "balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "bank_account_id": {"name": "bank_account_id", "description": "ID of the bank account associated with this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "default_card_id": {"name": "default_card_id", "description": "ID for the default card used by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "delinquent": {"name": "delinquent", "description": "When the customer's latest invoice is billed by charging automatically, delinquent is true if the invoice's latest charge is failed. When the customer's latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "name": {"name": "name", "description": "Customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "phone": {"name": "phone", "description": "Customer's phone number.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_name": {"name": "shipping_name", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shipping_phone": {"name": "shipping_phone", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Boolean reflecting whether the customer has been deleted in Stripe.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"customer_data\"", "created_at": 1781130902.6923225, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.dispute": {"database": "postgres", "schema": "public", "name": "dispute", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.dispute", "fqn": ["stripe", "staging", "stripe", "dispute"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "dispute_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "The details of a dispute related to a charge. A dispute occurs when a customer questions your charge with their card issuer. When this happens, you're given the opportunity to respond to the dispute with evidence that shows that the charge is legitimate.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Disputed amount. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction": {"name": "balance_transaction", "description": "List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the charge that was disputed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "Account id associated with this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase. Must be a supported currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_access_activity_log": {"name": "evidence_access_activity_log", "description": "Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_billing_address": {"name": "evidence_billing_address", "description": "The billing address provided by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_cancellation_policy": {"name": "evidence_cancellation_policy", "description": "(ID of a file upload) Your subscription cancellation policy, as shown to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_cancellation_policy_disclosure": {"name": "evidence_cancellation_policy_disclosure", "description": "An explanation of how and when the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_cancellation_rebuttal": {"name": "evidence_cancellation_rebuttal", "description": "A justification for why the customer's subscription was not canceled. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_customer_communication": {"name": "evidence_customer_communication", "description": "(ID of a file upload) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_customer_email_address": {"name": "evidence_customer_email_address", "description": "The email address of the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_customer_name": {"name": "evidence_customer_name", "description": "The name of the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_customer_purchase_ip": {"name": "evidence_customer_purchase_ip", "description": "The IP address that the customer used when making the purchase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_customer_signature": {"name": "evidence_customer_signature", "description": "(ID of a file upload) A relevant document or contract showing the customer's signature.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_details_due_by": {"name": "evidence_details_due_by", "description": "Date by which evidence must be submitted in order to successfully challenge dispute. Will be 0 if the customer's bank or credit card company doesn't allow a response for this particular dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_details_has_evidence": {"name": "evidence_details_has_evidence", "description": "Whether evidence has been staged for this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_details_past_due": {"name": "evidence_details_past_due", "description": "Whether the last evidence submission was submitted past the due date. Defaults to false if no evidence submissions have occurred. If true, then delivery of the latest evidence is not guaranteed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_details_submission_count": {"name": "evidence_details_submission_count", "description": "The number of times evidence has been submitted. Typically, you may only submit evidence once.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_duplicate_charge_documentation": {"name": "evidence_duplicate_charge_documentation", "description": "(ID of a file upload) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_duplicate_charge_explanation": {"name": "evidence_duplicate_charge_explanation", "description": "An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_duplicate_charge_id": {"name": "evidence_duplicate_charge_id", "description": "The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_product_description": {"name": "evidence_product_description", "description": "A description of the product or service that was sold. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_receipt": {"name": "evidence_receipt", "description": "(ID of a file upload) Any receipt or message sent to the customer notifying them of the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_refund_policy": {"name": "evidence_refund_policy", "description": "(ID of a file upload) Your refund policy, as shown to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_refund_policy_disclosure": {"name": "evidence_refund_policy_disclosure", "description": "Documentation demonstrating that the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_refund_refusal_explanation": {"name": "evidence_refund_refusal_explanation", "description": "A justification for why the customer is not entitled to a refund. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_service_date": {"name": "evidence_service_date", "description": "The date on which the customer received or began receiving the purchased service, in a clear human-readable format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_service_documentation": {"name": "evidence_service_documentation", "description": "(ID of a file upload) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_shipping_address": {"name": "evidence_shipping_address", "description": "The address to which a physical product was shipped. You should try to include as complete address information as possible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_shipping_carrier": {"name": "evidence_shipping_carrier", "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_shipping_date": {"name": "evidence_shipping_date", "description": "The date on which a physical product began its route to the shipping address, in a clear human-readable format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_shipping_documentation": {"name": "evidence_shipping_documentation", "description": "(ID of a file upload) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer's full shipping address, if possible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_shipping_tracking_number": {"name": "evidence_shipping_tracking_number", "description": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_uncategorized_file": {"name": "evidence_uncategorized_file", "description": "(ID of a file upload) Any additional evidence or statements.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "evidence_uncategorized_text": {"name": "evidence_uncategorized_text", "description": "Any additional evidence or statements. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_charge_refundable": {"name": "is_charge_refundable", "description": "Boolean ff true, it is still possible to refund the disputed payment. Once the payment has been fully refunded, no further funds will be withdrawn from your Stripe account as a result of this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "reason": {"name": "reason", "description": "Reason given by cardholder for dispute. Possible values are bank_cannot_process, check_returned, credit_not_processed, customer_initiated, debit_not_authorized, duplicate, fraudulent, general, incorrect_account_details, insufficient_funds, product_not_received, product_unacceptable, subscription_canceled, or unrecognized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Current status of dispute. Possible values are warning_needs_response, warning_under_review, warning_closed, needs_response, under_review, won, or lost.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"dispute_data\"", "created_at": 1781130902.6931033, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.fee": {"database": "postgres", "schema": "public", "name": "fee", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.fee", "fqn": ["stripe", "staging", "stripe", "fee"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "fee_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "The details of a fee associated with a balance_transaction", "columns": {"balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the balance transaction entry the fee applies to", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "index": {"name": "index", "description": "The index of the fee within the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount of the fee, in cents.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "application": {"name": "application", "description": "ID of the Connect application that earned the fee.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "Type of the fee, can be application_fee, stripe_fee or tax.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"fee_data\"", "created_at": 1781130902.6937091, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.payment_intent": {"database": "postgres", "schema": "public", "name": "payment_intent", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.payment_intent", "fqn": ["stripe", "staging", "stripe", "payment_intent"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "payment_intent_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "A Payment Intent guides you through the process of collecting a payment from your customer.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge \u00a5100, a zero-decimal currency)", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount_capturable": {"name": "amount_capturable", "description": "Amount that can be captured from this PaymentIntent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount_received": {"name": "amount_received", "description": "Amount that was collected by this PaymentIntent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "application": {"name": "application", "description": "ID of the Connect application that created the PaymentIntent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "application_fee_amount": {"name": "application_fee_amount", "description": "The amount of the application fee (if any) for the resulting payment.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "canceled_at": {"name": "canceled_at", "description": "Populated when status is canceled, this is the time at which the PaymentIntent was canceled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "cancellation_reason": {"name": "cancellation_reason", "description": "Reason for cancellation of this PaymentIntent, either user-provided (duplicate, fraudulent, requested_by_customer, or abandoned) or generated by Stripe internally (failed_invoice, void_invoice, or automatic).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "capture_method": {"name": "capture_method", "description": "Controls when the funds will be captured from the customer's account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "confirmation_method": {"name": "confirmation_method", "description": "Whether confirmed automatically or manually", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the Customer this PaymentIntent belongs to, if one exists.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_method_id": {"name": "payment_method_id", "description": "ID of the payment method used in this PaymentIntent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "receipt_email": {"name": "receipt_email", "description": "Email address that the receipt for the resulting payment will be sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "For non-card charges, you can use this value as the complete description that appears on your customers' statements.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of this PaymentIntent, one of requires_payment_method, requires_confirmation, requires_action, processing, requires_capture, canceled, or succeeded.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test payment intent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"payment_intent_data\"", "created_at": 1781130902.6941786, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.payment_method_card": {"database": "postgres", "schema": "public", "name": "payment_method_card", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.payment_method_card", "fqn": ["stripe", "staging", "stripe", "payment_method_card"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "payment_method_card_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Table with the relationships between a payment method and a card", "columns": {"payment_method_id": {"name": "payment_method_id", "description": "ID of the payment method", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "brand": {"name": "brand", "description": "Card brand. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "funding": {"name": "funding", "description": "Card funding type. Can be credit, debit, prepaid, or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the charge that this card belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the payment method.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "wallet_type": {"name": "wallet_type", "description": "The type of the card wallet, one of amex_express_checkout, apple_pay, google_pay, masterpass, samsung_pay, or visa_checkout. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"payment_method_card_data\"", "created_at": 1781130902.6947973, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.payment_method": {"database": "postgres", "schema": "public", "name": "payment_method", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.payment_method", "fqn": ["stripe", "staging", "stripe", "payment_method"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "payment_method_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "PaymentMethod objects represent your customer's payment instruments. They can be used with PaymentIntents to collect payments or saved to Customer objects to store instrument details for future payments.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.created"]}, "customer_id": {"name": "customer_id", "description": "The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test payment method.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"payment_method_data\"", "created_at": 1781130902.6952095, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.payout": {"database": "postgres", "schema": "public", "name": "payout", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.payout", "fqn": ["stripe", "staging", "stripe", "payout"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "payout_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "A Payout object is created when you receive funds from Stripe, or when you initiate a payout to either a bank account or debit card of a connected Stripe account.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount (in cents) to be transferred to your bank account or debit card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "arrival_date": {"name": "arrival_date", "description": "Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "automatic": {"name": "automatic", "description": "true if the payout was created by an automated payout schedule, and false if it was requested manually.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the balance transaction that describes the impact of this payout on your account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "destination_bank_account_id": {"name": "destination_bank_account_id", "description": "ID of the bank account the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "destination_card_id": {"name": "destination_card_id", "description": "ID of the card the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "method": {"name": "method", "description": "The method used to send this payout, which can be standard or instant.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_type": {"name": "source_type", "description": "The source balance this payout came from. One of card, fpx, or bank_account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Current status of the payout. Can be paid, pending, in_transit, canceled or failed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "Can be bank_account or card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test payout.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"payout_data\"", "created_at": 1781130902.6958284, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.payout_balance_transaction": {"database": "postgres", "schema": "public", "name": "payout_balance_transaction", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.payout_balance_transaction", "fqn": ["stripe", "staging", "stripe", "payout_balance_transaction"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "payout_balance_transaction_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Table that contains the complete mapping between `payout_id` and `balance_transaction_id`. The payout to balance_transaction relationship is 1:many.\n", "columns": {"payout_id": {"name": "payout_id", "description": "Unique identifier for the payout.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp when the record was last synced.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"payout_balance_transaction_data\"", "created_at": 1781130902.6963704, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.refund": {"database": "postgres", "schema": "public", "name": "refund", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.refund", "fqn": ["stripe", "staging", "stripe", "refund"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "refund_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Details of transactions that have been refunded", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount, in cents.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the latest balance transaction linked to this payout, describing its impact on your account balance. The payout to balance_transaction relationship is 1:many.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the charge that was refunded.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users. (Available on non-card refunds only)", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "ID of the payment intent associated with this refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "reason": {"name": "reason", "description": "Reason for the refund, either user-provided (duplicate, fraudulent, or requested_by_customer) or generated by Stripe internally (expired_uncaptured_charge).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "receipt_number": {"name": "receipt_number", "description": "This is the transaction number that appears on email receipts sent for this refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of the refund. For credit card refunds, this can be pending, succeeded, or failed. For other types of refunds, it can be pending, succeeded, failed, or canceled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"refund_data\"", "created_at": 1781130902.6968112, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.invoice_line_item": {"database": "postgres", "schema": "public", "name": "invoice_line_item", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.invoice_line_item", "fqn": ["stripe", "staging", "stripe", "invoice_line_item"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "invoice_line_item_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "The different items that an invoice contains", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The ID of the invoice this item is a part of", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The ID of the invoice item this item is a part of", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "price_id": {"name": "price_id", "description": "ID of the price object this item pertains to", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The amount, in cents.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "discountable": {"name": "discountable", "description": "If true, discounts will apply to this line item. Always false for prorations.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "plan_id": {"name": "plan_id", "description": "The ID of the plan of the subscription, if the line item is a subscription or a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "proration": {"name": "proration", "description": "Whether this is a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The quantity of the subscription, if the line item is a subscription or a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription that the invoice item pertains to, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_item_id": {"name": "subscription_item_id", "description": "The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "A string identifying the type of the source of this line item, either an invoice item or a subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unique_id": {"name": "unique_id", "description": "A unique id generated and only for old invoice line item ID's from a past version of the API. The introduction of this field resolves the pagination break issue for invoice line items, which was introduced by the [Stripe API update](https://stripe.com/docs/upgrades#2019-12-03).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test invoice line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"invoice_line_item_data\"", "created_at": 1781130902.6972613, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.invoice": {"database": "postgres", "schema": "public", "name": "invoice", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.invoice", "fqn": ["stripe", "staging", "stripe", "invoice"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "invoice_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Invoices are statements of amounts owed by a customer, and are either generated one-off, or generated periodically from a subscription.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount_due": {"name": "amount_due", "description": "Final amount due at this time for this invoice. If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount_paid": {"name": "amount_paid", "description": "The amount, in cents, that was paid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount_remaining": {"name": "amount_remaining", "description": "The amount remaining, in cents, that is due.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "attempt_count": {"name": "attempt_count", "description": "Number of payment attempts made for this invoice, from the perspective of the payment retry schedule.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "auto_advance": {"name": "auto_advance", "description": "Controls whether Stripe will perform automatic collection of the invoice. When false, the invoice's state will not automatically advance without an explicit action.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_reason": {"name": "billing_reason", "description": "Indicates the reason why the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the latest charge generated for this invoice, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the customer who will be billed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "due_date": {"name": "due_date", "description": "The date on which payment for this invoice is due. This value will be null for invoices where collection_method=charge_automatically.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "number": {"name": "number", "description": "A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer's unique invoice_prefix if it is specified.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "paid": {"name": "paid", "description": "Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer's account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "receipt_number": {"name": "receipt_number", "description": "This is the transaction number that appears on email receipts sent for this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription that the invoice pertains to,.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subtotal": {"name": "subtotal", "description": "Total of all subscriptions, invoice items, and prorations on the invoice before any discount or tax is applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "tax": {"name": "tax", "description": "The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "tax_percent": {"name": "tax_percent", "description": "The percent used to calculate the tax amount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total": {"name": "total", "description": "Total after discounts and taxes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "period_start": {"name": "period_start", "description": "Start of the usage period during for which the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "period_end": {"name": "period_end", "description": "End of the usage period during for which the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "default_payment_method_id": {"name": "default_payment_method_id", "description": "ID of the default payment method in this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "ID of the PaymentIntent associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "post_payment_credit_notes_amount": {"name": "post_payment_credit_notes_amount", "description": "Total amount of all post-payment credit notes issued for this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "pre_payment_credit_notes_amount": {"name": "pre_payment_credit_notes_amount", "description": "Total amount of all pre-payment credit notes issued for this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status_transitions_finalized_at": {"name": "status_transitions_finalized_at", "description": "The time that the invoice draft was finalized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status_transitions_marked_uncollectible_at": {"name": "status_transitions_marked_uncollectible_at", "description": "The time that the invoice was marked uncollectible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status_transitions_paid_at": {"name": "status_transitions_paid_at", "description": "The time that the invoice was paid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status_transitions_voided_at": {"name": "status_transitions_voided_at", "description": "The time that the invoice was voided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"invoice_data\"", "created_at": 1781130902.697841, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.subscription_history": {"database": "postgres", "schema": "public", "name": "subscription_history", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.subscription_history", "fqn": ["stripe", "staging", "stripe", "subscription_history"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "subscription_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Subscriptions allow you to charge a customer on a recurring basis. Please note this source table is used only on connectors setup **after** February 09, 2022.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing": {"name": "billing", "description": "How the invoice is billed", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_cycle_anchor": {"name": "billing_cycle_anchor", "description": "Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "cancel_at": {"name": "cancel_at", "description": "A date in the future at which the subscription will automatically get canceled", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "cancel_at_period_end": {"name": "cancel_at_period_end", "description": "Boolean indicating whether this subscription should cancel at the end of the current period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "canceled_at": {"name": "canceled_at", "description": "If the subscription has been canceled, the date of that cancellation.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.created"]}, "current_period_start": {"name": "current_period_start", "description": "Start of the current period that the subscription has been invoiced for.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "current_period_end": {"name": "current_period_end", "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of customer this subscription belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "days_until_due": {"name": "days_until_due", "description": "Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "start_date": {"name": "start_date", "description": "Date when the subscription was first created. The date might differ from the created date due to backdating.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "ended_at": {"name": "ended_at", "description": "If the subscription has ended, the date the subscription ended.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "_fivetran_active": {"name": "_fivetran_active", "description": "Boolean indicating if the record is the latest.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "latest_invoice_id": {"name": "latest_invoice_id", "description": "ID of the latest invoice for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "default_payment_method_id": {"name": "default_payment_method_id", "description": "ID of the default payment method for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "pending_setup_intent_id": {"name": "pending_setup_intent_id", "description": "ID of the payment setup intent for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "pause_collection_behavior": {"name": "pause_collection_behavior", "description": "The payment collection behavior for this subscription while paused. One of keep_as_draft, mark_uncollectible, or void.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "pause_collection_resumes_at": {"name": "pause_collection_resumes_at", "description": "The time after which the subscription will resume collecting payments.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"subscription_history_data\"", "created_at": 1781130902.698312, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.subscription": {"database": "postgres", "schema": "public", "name": "subscription", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.subscription", "fqn": ["stripe", "staging", "stripe", "subscription"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "subscription_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Subscriptions allow you to charge a customer on a recurring basis. Please note this source table is only present in connectors setup **before** February 09, 2022.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing": {"name": "billing", "description": "How the invoice is billed", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_cycle_anchor": {"name": "billing_cycle_anchor", "description": "Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "cancel_at": {"name": "cancel_at", "description": "A date in the future at which the subscription will automatically get canceled", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "cancel_at_period_end": {"name": "cancel_at_period_end", "description": "Boolean indicating whether this subscription should cancel at the end of the current period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "canceled_at": {"name": "canceled_at", "description": "If the subscription has been canceled, the date of that cancellation.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.created"]}, "current_period_start": {"name": "current_period_start", "description": "Start of the current period that the subscription has been invoiced for.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "current_period_end": {"name": "current_period_end", "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the customer who owns the subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "days_until_due": {"name": "days_until_due", "description": "Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "start_date": {"name": "start_date", "description": "Date when the subscription was first created. The date might differ from the created date due to backdating.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "ended_at": {"name": "ended_at", "description": "If the subscription has ended, the date the subscription ended.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "pause_collection_behavior": {"name": "pause_collection_behavior", "description": "The payment collection behavior for this subscription while paused. One of keep_as_draft, mark_uncollectible, or void.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "pause_collection_resumes_at": {"name": "pause_collection_resumes_at", "description": "The time after which the subscription will resume collecting payments.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"subscription_data\"", "created_at": 1781130902.6987772, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.subscription_item": {"database": "postgres", "schema": "public", "name": "subscription_item", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.subscription_item", "fqn": ["stripe", "staging", "stripe", "subscription_item"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "subscription_item_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Subscription items allow you to create customer subscriptions with more than one plan, making it easy to represent complex billing relationships.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "plan_id": {"name": "plan_id", "description": "The ID of the plan associated with this subscription_item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription this item belongs to. Join key to the subscription_history table.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the object was created", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "current_period_start": {"name": "current_period_start", "description": "Start of the current period that the subscription has been invoiced for.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "current_period_end": {"name": "current_period_end", "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The quantity of the plan to which the customer is subscribed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"subscription_item_data\"", "created_at": 1781130902.6992126, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.plan": {"database": "postgres", "schema": "public", "name": "plan", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.plan", "fqn": ["stripe", "staging", "stripe", "plan"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "plan_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Plans define the base price, currency, and billing cycle for recurring purchases of products.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "active": {"name": "active", "description": "Whether the plan can be used for new purchases.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The unit amount in cents to be charged, represented as a whole integer if possible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "interval": {"name": "interval", "description": "The frequency at which a subscription is billed. One of day, week, month or year.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "interval_count": {"name": "interval_count", "description": "The number of intervals between subscription billings. For example, interval_count=3 bills every 3 months.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "nickname": {"name": "nickname", "description": "A brief description of the plan, hidden from customers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product": {"name": "product", "description": "The product whose pricing this plan determines.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test plan.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"plan_data\"", "created_at": 1781130902.6996334, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.credit_note": {"database": "postgres", "schema": "public", "name": "credit_note", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.credit_note", "fqn": ["stripe", "staging", "stripe", "credit_note"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "credit_note_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Credit notes are documents that decrease the amount owed on an invoice. They're the only way to adjust the amount of a finalized invoice other than voiding and recreating the invoice.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The integer amount in cents representing the total amount of the credit note, including tax.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "The currency of the charge. Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "discount_amount": {"name": "discount_amount", "description": "The integer amount in cents representing the total amount of discount that was credited.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subtotal": {"name": "subtotal", "description": "The integer amount in cents representing the amount of the credit note, excluding tax and invoice level discounts.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "total": {"name": "total", "description": "The integer amount in cents representing the total amount of the credit note, including tax and all discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Has the value true if the object exists in live mode or the value false if the object exists in test mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "memo": {"name": "memo", "description": "Customer-facing text that appears on the credit note PDF.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "number": {"name": "number", "description": "A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "pdf": {"name": "pdf", "description": "The link to download the PDF of the credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "reason": {"name": "reason", "description": "Reason for issuing this credit note, one of duplicate, fraudulent, order_change, or product_unsatisfactory", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of this credit note, one of issued or void. Learn more about voiding credit notes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "Type of this credit note, one of pre_payment or post_payment. A pre_payment credit note means it was issued when the invoice was open. A post_payment credit note means it was issued when the invoice was paid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "voided_at": {"name": "voided_at", "description": "The time that the credit note was voided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_balance_transaction": {"name": "customer_balance_transaction", "description": "Customer balance transaction related to this credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The id of the invoice associated with this credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "refund_id": {"name": "refund_id", "description": "The id of the refund associated with this credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"credit_note_data\"", "created_at": 1781130902.7000988, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.credit_note_line_item": {"database": "postgres", "schema": "public", "name": "credit_note_line_item", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.credit_note_line_item", "fqn": ["stripe", "staging", "stripe", "credit_note_line_item"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "credit_note_line_item_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "The different items that a credit note contains.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_id": {"name": "credit_note_id", "description": "The ID of the credit note this item is a part of.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The integer amount in cents representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "discount_amount": {"name": "discount_amount", "description": "The integer amount in cents representing the discount being credited for this line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "Description of the item being credited.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Has the value true if the object exists in live mode or the value false if the object exists in test mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The number of units of product being credited.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the credit note line item, one of invoice_line_item or custom_line_item. When the type is invoice_line_item there is an additional invoice_line_item property on the resource the value of which is the id of the credited line item on the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unit_amount": {"name": "unit_amount", "description": "The cost of each unit of product being credited.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unit_amount_decimal": {"name": "unit_amount_decimal", "description": "Same as unit_amount, but contains a decimal value with at most 12 decimal places.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"credit_note_line_item_data\"", "created_at": 1781130902.700505, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.price": {"database": "postgres", "schema": "public", "name": "price", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.price", "fqn": ["stripe", "staging", "stripe", "price"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "price_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products.", "columns": {"active": {"name": "active", "description": "Whether the price can be used for new purchases.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "billing_scheme": {"name": "billing_scheme", "description": "Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in unit_amount or unit_amount_decimal) will be charged per unit in quantity (for prices with usage_type=licensed), or per unit of total usage (for prices with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase. Must be a supported currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The ID of the invoice item this record is a part of.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Whether record has been deleted.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Has the value true if the object exists in live mode or the value false if the object exists in test mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "lookup_key": {"name": "lookup_key", "description": "A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "nickname": {"name": "nickname", "description": "A brief description of the price, hidden from customers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "The ID of the product this price is associated with.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "recurring_aggregate_usage": {"name": "recurring_aggregate_usage", "description": "Specifies a usage aggregation strategy for prices of usage_type=metered. Allowed values are sum for summing up all usage during a period, last_during_period for using the last usage record reported within a period, last_ever for using the last usage record ever (across period bounds) or max which uses the usage record with the maximum reported usage during a period. Defaults to sum.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "recurring_interval": {"name": "recurring_interval", "description": "Specifies billing frequency. Either day, week, month or year.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "recurring_interval_count": {"name": "recurring_interval_count", "description": "The number of intervals between subscription billings. For example, interval=month and interval_count=3 bills every 3 months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "recurring_usage_type": {"name": "recurring_usage_type", "description": "Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "tiers_mode": {"name": "tiers_mode", "description": "Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transform_quantity_divide_by": {"name": "transform_quantity_divide_by", "description": "Divide usage by this number. Transform Quantity applies a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transform_quantity_round": {"name": "transform_quantity_round", "description": "After division, either round the result up or down. Transform Quantity applies a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "One of one_time or recurring depending on whether the price is for a one-time purchase or a recurring (subscription) purchase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unit_amount": {"name": "unit_amount", "description": "The unit amount in cents to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unit_amount_decimal": {"name": "unit_amount_decimal", "description": "The unit amount in cents to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"price_data\"", "created_at": 1781130902.700989, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.account": {"database": "postgres", "schema": "public", "name": "account", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.account", "fqn": ["stripe", "staging", "stripe", "account"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "account_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "business_profile_name": {"name": "business_profile_name", "description": "The customer-facing business name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "business_type": {"name": "business_type", "description": "The business type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "business_profile_mcc": {"name": "business_profile_mcc", "description": "The merchant category code for the account. MCCs are used to classify businesses based on the goods or services they provide.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "charges_enabled": {"name": "charges_enabled", "description": "Whether the account can create live charges.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_address_city": {"name": "company_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_address_country": {"name": "company_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_address_line_1": {"name": "company_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_address_line_2": {"name": "company_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_address_postal_code": {"name": "company_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_address_state": {"name": "company_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_name": {"name": "company_name", "description": "The company's legal name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "company_phone": {"name": "company_phone", "description": "The company's phone number (used for verification).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "country": {"name": "country", "description": "The account's country.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": ["doc.stripe.created"]}, "default_currency": {"name": "default_currency", "description": "Three-letter ISO currency code representing the default currency for the account. This must be a currency that Stripe supports in the account's country.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "email": {"name": "email", "description": "An email address associated with the account. You can treat this as metadata; it is not used for authentication or messaging account holders.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Boolean of whether account has been deleted. Accounts created using test-mode keys can be deleted at any time. Standard accounts created using live-mode keys cannot be deleted. Custom or Express accounts created using live-mode keys can only be deleted once all balances are zero.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "payouts_enabled": {"name": "payouts_enabled", "description": "Boolean of whether payouts are enabled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "Account type", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"account_data\"", "created_at": 1781130902.7014914, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.transfer": {"database": "postgres", "schema": "public", "name": "transfer", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.transfer", "fqn": ["stripe", "staging", "stripe", "transfer"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "transfer_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "A Transfer object is created when you move funds between Stripe accounts as part of Connect. Before April 6, 2017, transfers also represented movement of funds from a Stripe account to a card or bank account. That has since been moved to the Payout object. The Payout object represents money moving from a Stripe account to an external account (bank or debit card). The Transfer object now only represents money moving between Stripe accounts on a Connect platform.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount in cents to be transferred.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount_reversed": {"name": "amount_reversed", "description": "Amount in cents reversed (can be less than the amount attribute on the transfer if a partial reversal was issued).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "Balance transaction that describes the impact of this transfer on your account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time that this record of the transfer was first created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase. Must be a supported currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "destination": {"name": "destination", "description": "ID of the Stripe account the transfer was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "destination_payment": {"name": "destination_payment", "description": "If the destination is a Stripe account, the payment that the destination account received for the transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "destination_payment_id": {"name": "destination_payment_id", "description": "If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "reversed": {"name": "reversed", "description": "Boolean of whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_transaction": {"name": "source_transaction", "description": "The source transaction related to this transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_transaction_id": {"name": "source_transaction_id", "description": "ID of the charge or payment that was used to fund the transfer. If null, the transfer was funded from the available balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "source_type": {"name": "source_type", "description": "The source balance this transfer came from. One of card, fpx, or bank_account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "transfer_group": {"name": "transfer_group", "description": "A string that identifies this transaction as part of a group. See the Connect documentation for details.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"transfer_data\"", "created_at": 1781130902.7021081, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.product": {"database": "postgres", "schema": "public", "name": "product", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.product", "fqn": ["stripe", "staging", "stripe", "product"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "product_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "A product object represents an individual product to be sold, with various attributes detailing its properties and behaviors.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "active": {"name": "active", "description": "Whether the product is currently available for purchase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "attributes": {"name": "attributes", "description": "Key-value pairs that can be attached to a product object, useful for storing additional structured information.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "caption": {"name": "caption", "description": "A brief explanation or description of the product for display purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "create": {"name": "create", "description": "Timestamp indicating when the product was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "deactivate_on": {"name": "deactivate_on", "description": "List of dates when the product will be deactivated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "description": {"name": "description", "description": "The product's description, meant to be displayable to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "images": {"name": "images", "description": "A list of up to 8 URLs of images for this product, meant to be displayable to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Indicates whether the product has been deleted.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test product.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "name": {"name": "name", "description": "The product's name, meant to be displayable to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "shippable": {"name": "shippable", "description": "Whether this product is shipped (i.e., physical goods).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "Extra information about a product which will appear on your customer's credit card statement.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the product (e.g., good, service).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "unit_label": {"name": "unit_label", "description": "A label that represents units of this product, included in receipts and invoices.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "updated": {"name": "updated", "description": "Time at which the object was last updated, measured in seconds since the Unix epoch.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "url": {"name": "url", "description": "A URL of a publicly-accessible webpage for this product.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"product_data\"", "created_at": 1781130902.7025647, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.discount": {"database": "postgres", "schema": "public", "name": "discount", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.discount", "fqn": ["stripe", "staging", "stripe", "discount"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "discount_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "A discount represents the actual application of a coupon or promotion code. It contains information about when the discount began, when it will end, and what it is applied to.", "columns": {"id": {"name": "id", "description": "The ID of the discount object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type": {"name": "type", "description": "String representing the object's type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "type_id": {"name": "type_id", "description": "Identifier of the related object type (e.g., coupon ID, promotion code).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The amount of discount applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "checkout_session_id": {"name": "checkout_session_id", "description": "The Checkout session that this discount is applied to, if it is applied to a particular session in payment mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "checkout_session_line_item_id": {"name": "checkout_session_line_item_id", "description": "The ID of the specific line item within the checkout session that the discount is applied to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "coupon_id": {"name": "coupon_id", "description": "The ID of the coupon applied to create this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "credit_note_line_item_id": {"name": "credit_note_line_item_id", "description": "The ID of the credit note line item associated with this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the customer associated with this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "end": {"name": "end", "description": "If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The invoice item id (or invoice line item id for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "promotion_code": {"name": "promotion_code", "description": "The promotion code applied to create this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "start": {"name": "start", "description": "The date that the coupon was applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The subscription that this coupon is applied to, if it is applied to a particular subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"discount_data\"", "created_at": 1781130902.7030163, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.subscription_discount": {"database": "postgres", "schema": "public", "name": "subscription_discount", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.subscription_discount", "fqn": ["stripe", "staging", "stripe", "subscription_discount"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "subscription_discount_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "A subscription discount represents the application of a coupon or promotion code specifically applied to a subscription. It contains information about when the discount began, when it will end, and what it is applied to.", "columns": {"id": {"name": "id", "description": "The ID of the subscription discount object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "checkout_session": {"name": "checkout_session", "description": "The Checkout Session that this discount is applied to, if it is applied to a particular session in payment mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "coupon_id": {"name": "coupon_id", "description": "The ID of the coupon applied to create this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the customer associated with this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "end": {"name": "end", "description": "If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The invoice item id (or invoice line item id for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "start": {"name": "start", "description": "The date that the coupon was applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The subscription that this coupon is applied to, if it is applied to a particular subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"subscription_discount_data\"", "created_at": 1781130902.7034554, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.coupon": {"database": "postgres", "schema": "public", "name": "coupon", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.coupon", "fqn": ["stripe", "staging", "stripe", "coupon"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "coupon_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "A coupon represents a discount that can be applied to a subscription or invoice. It contains information about the coupon's duration, amount, and applicability.", "columns": {"id": {"name": "id", "description": "The ID of the coupon.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "amount_off": {"name": "amount_off", "description": "The amount taken off the total price in the selected currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "duration": {"name": "duration", "description": "The duration of the coupon. Typically \"forever,\" \"once,\" or \"repeating.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "duration_in_months": {"name": "duration_in_months", "description": "If the coupon does not last forever, the duration in months you can apply it. For a forever coupon, this attribute is null.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates whether the coupon is in live mode or test mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "max_redemptions": {"name": "max_redemptions", "description": "The maximum number of times this coupon can be redeemed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "name": {"name": "name", "description": "Name of the coupon or promotion.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "percent_off": {"name": "percent_off", "description": "The percentage taken off the total price.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "redeem_by": {"name": "redeem_by", "description": "The date by which the coupon must be redeemed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "times_redeemed": {"name": "times_redeemed", "description": "The number of times this coupon has been redeemed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}, "valid": {"name": "valid", "description": "Indicates whether the coupon can still be applied to a customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"coupon_data\"", "created_at": 1781130902.7038977, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}}, "macros": {"macro.dbt_postgres.postgres__get_catalog_relations": {"name": "postgres__get_catalog_relations", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "unique_id": "macro.dbt_postgres.postgres__get_catalog_relations", "macro_sql": "{% macro postgres__get_catalog_relations(information_schema, relations) -%}\n {%- call statement('catalog', fetch_result=True) -%}\n\n {#\n If the user has multiple databases set and the first one is wrong, this will fail.\n But we won't fail in the case where there are multiple quoting-difference-only dbs, which is better.\n #}\n {% set database = information_schema.database %}\n {{ adapter.verify_database(database) }}\n\n select\n '{{ database }}' as table_database,\n sch.nspname as table_schema,\n tbl.relname as table_name,\n case tbl.relkind\n when 'v' then 'VIEW'\n when 'm' then 'MATERIALIZED VIEW'\n else 'BASE TABLE'\n end as table_type,\n tbl_desc.description as table_comment,\n col.attname as column_name,\n col.attnum as column_index,\n pg_catalog.format_type(col.atttypid, col.atttypmod) as column_type,\n col_desc.description as column_comment,\n pg_get_userbyid(tbl.relowner) as table_owner\n\n from pg_catalog.pg_namespace sch\n join pg_catalog.pg_class tbl on tbl.relnamespace = sch.oid\n join pg_catalog.pg_attribute col on col.attrelid = tbl.oid\n left outer join pg_catalog.pg_description tbl_desc on (tbl_desc.objoid = tbl.oid and tbl_desc.objsubid = 0)\n left outer join pg_catalog.pg_description col_desc on (col_desc.objoid = tbl.oid and col_desc.objsubid = col.attnum)\n where (\n {%- for relation in relations -%}\n {%- if relation.identifier -%}\n (upper(sch.nspname) = upper('{{ relation.schema }}') and\n upper(tbl.relname) = upper('{{ relation.identifier }}'))\n {%- else-%}\n upper(sch.nspname) = upper('{{ relation.schema }}')\n {%- endif -%}\n {%- if not loop.last %} or {% endif -%}\n {%- endfor -%}\n )\n and not pg_is_other_temp_schema(sch.oid) -- not a temporary schema belonging to another session\n and tbl.relpersistence in ('p', 'u') -- [p]ermanent table or [u]nlogged table. Exclude [t]emporary tables\n and tbl.relkind in ('r', 'v', 'f', 'p', 'm') -- o[r]dinary table, [v]iew, [f]oreign table, [p]artitioned table, [m]aterialized view. Other values are [i]ndex, [S]equence, [c]omposite type, [t]OAST table\n and col.attnum > 0 -- negative numbers are used for system columns such as oid\n and not col.attisdropped -- column as not been dropped\n\n order by\n sch.nspname,\n tbl.relname,\n col.attnum\n\n {%- endcall -%}\n\n {{ return(load_result('catalog').table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.145292, "supported_languages": null}, "macro.dbt_postgres.postgres__get_catalog": {"name": "postgres__get_catalog", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "unique_id": "macro.dbt_postgres.postgres__get_catalog", "macro_sql": "{% macro postgres__get_catalog(information_schema, schemas) -%}\n {%- set relations = [] -%}\n {%- for schema in schemas -%}\n {%- set dummy = relations.append({'schema': schema}) -%}\n {%- endfor -%}\n {{ return(postgres__get_catalog_relations(information_schema, relations)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1459699, "supported_languages": null}, "macro.dbt_postgres.postgres__get_relations": {"name": "postgres__get_relations", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations.sql", "original_file_path": "macros/relations.sql", "unique_id": "macro.dbt_postgres.postgres__get_relations", "macro_sql": "{% macro postgres__get_relations() -%}\n\n {#\n -- in pg_depend, objid is the dependent, refobjid is the referenced object\n -- > a pg_depend entry indicates that the referenced object cannot be\n -- > dropped without also dropping the dependent object.\n #}\n\n {%- call statement('relations', fetch_result=True) -%}\n select distinct\n dependent_namespace.nspname as dependent_schema,\n dependent_class.relname as dependent_name,\n referenced_namespace.nspname as referenced_schema,\n referenced_class.relname as referenced_name\n\n -- Query for views: views are entries in pg_class with an entry in pg_rewrite, but we avoid\n -- a seq scan on pg_rewrite by leveraging the fact there is an \"internal\" row in pg_depend for\n -- the view...\n from pg_class as dependent_class\n join pg_namespace as dependent_namespace on dependent_namespace.oid = dependent_class.relnamespace\n join pg_depend as dependent_depend on dependent_depend.refobjid = dependent_class.oid\n and dependent_depend.classid = 'pg_rewrite'::regclass\n and dependent_depend.refclassid = 'pg_class'::regclass\n and dependent_depend.deptype = 'i'\n\n -- ... and via pg_depend (that has a row per column, hence the need for \"distinct\" above, and\n -- making sure to exclude the internal row to avoid a view appearing to depend on itself)...\n join pg_depend as joining_depend on joining_depend.objid = dependent_depend.objid\n and joining_depend.classid = 'pg_rewrite'::regclass\n and joining_depend.refclassid = 'pg_class'::regclass\n and joining_depend.refobjid != dependent_depend.refobjid\n\n -- ... we can find the tables they query from in pg_class, but excluding system tables. Note we\n -- don't need need to exclude _dependent_ system tables, because they only query from other\n -- system tables, and so are automatically excluded by excluding _referenced_ system tables\n join pg_class as referenced_class on referenced_class.oid = joining_depend.refobjid\n join pg_namespace as referenced_namespace on referenced_namespace.oid = referenced_class.relnamespace\n and referenced_namespace.nspname != 'information_schema'\n and referenced_namespace.nspname not like 'pg\\_%'\n\n order by\n dependent_schema, dependent_name, referenced_schema, referenced_name;\n\n {%- endcall -%}\n\n {{ return(load_result('relations').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1469243, "supported_languages": null}, "macro.dbt_postgres.postgres_get_relations": {"name": "postgres_get_relations", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations.sql", "original_file_path": "macros/relations.sql", "unique_id": "macro.dbt_postgres.postgres_get_relations", "macro_sql": "{% macro postgres_get_relations() %}\n {{ return(postgres__get_relations()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1471543, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp": {"name": "postgres__current_timestamp", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp", "macro_sql": "{% macro postgres__current_timestamp() -%}\n now()\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1475382, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_string_as_time": {"name": "postgres__snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_string_as_time", "macro_sql": "{% macro postgres__snapshot_string_as_time(timestamp) -%}\n {%- set result = \"'\" ~ timestamp ~ \"'::timestamp without time zone\" -%}\n {{ return(result) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1479528, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_get_time": {"name": "postgres__snapshot_get_time", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_get_time", "macro_sql": "{% macro postgres__snapshot_get_time() -%}\n {{ current_timestamp() }}::timestamp without time zone\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1481466, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_backcompat": {"name": "postgres__current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp_backcompat", "macro_sql": "{% macro postgres__current_timestamp_backcompat() %}\n current_timestamp::{{ type_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1483285, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat": {"name": "postgres__current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat", "macro_sql": "{% macro postgres__current_timestamp_in_utc_backcompat() %}\n (current_timestamp at time zone 'utc')::{{ type_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.148509, "supported_languages": null}, "macro.dbt_postgres.postgres__create_table_as": {"name": "postgres__create_table_as", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__create_table_as", "macro_sql": "{% macro postgres__create_table_as(temporary, relation, sql) -%}\n {%- set unlogged = config.get('unlogged', default=false) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n\n create {% if temporary -%}\n temporary\n {%- elif unlogged -%}\n unlogged\n {%- endif %} table {{ relation }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {% endif -%}\n {% if contract_config.enforced and (not temporary) -%}\n {{ get_table_columns_and_constraints() }} ;\n insert into {{ relation }} (\n {{ adapter.dispatch('get_column_names', 'dbt')() }}\n )\n {%- set sql = get_select_subquery(sql) %}\n {% else %}\n as\n {% endif %}\n (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_table_columns_and_constraints", "macro.dbt.default__get_column_names", "macro.dbt.get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1524408, "supported_languages": null}, "macro.dbt_postgres.postgres__get_create_index_sql": {"name": "postgres__get_create_index_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_create_index_sql", "macro_sql": "{% macro postgres__get_create_index_sql(relation, index_dict) -%}\n {%- set index_config = adapter.parse_index(index_dict) -%}\n {%- set comma_separated_columns = \", \".join(index_config.columns) -%}\n {%- set index_name = index_config.render(relation) -%}\n\n create {% if index_config.unique -%}\n unique\n {%- endif %} index if not exists\n \"{{ index_name }}\"\n on {{ relation }} {% if index_config.type -%}\n using {{ index_config.type }}\n {%- endif %}\n ({{ comma_separated_columns }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1532934, "supported_languages": null}, "macro.dbt_postgres.postgres__create_schema": {"name": "postgres__create_schema", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__create_schema", "macro_sql": "{% macro postgres__create_schema(relation) -%}\n {% if relation.database -%}\n {{ adapter.verify_database(relation.database) }}\n {%- endif -%}\n {%- call statement('create_schema') -%}\n create schema if not exists {{ relation.without_identifier().include(database=False) }}\n {%- endcall -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1538312, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_schema": {"name": "postgres__drop_schema", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__drop_schema", "macro_sql": "{% macro postgres__drop_schema(relation) -%}\n {% if relation.database -%}\n {{ adapter.verify_database(relation.database) }}\n {%- endif -%}\n {%- call statement('drop_schema') -%}\n drop schema if exists {{ relation.without_identifier().include(database=False) }} cascade\n {%- endcall -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1543367, "supported_languages": null}, "macro.dbt_postgres.postgres__get_columns_in_relation": {"name": "postgres__get_columns_in_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_columns_in_relation", "macro_sql": "{% macro postgres__get_columns_in_relation(relation) -%}\n {% call statement('get_columns_in_relation', fetch_result=True) %}\n select\n column_name,\n data_type,\n character_maximum_length,\n numeric_precision,\n numeric_scale\n\n from {{ relation.information_schema('columns') }}\n where table_name = '{{ relation.identifier }}'\n {% if relation.schema %}\n and table_schema = '{{ relation.schema }}'\n {% endif %}\n order by ordinal_position\n\n {% endcall %}\n {% set table = load_result('get_columns_in_relation').table %}\n {{ return(sql_convert_columns_in_relation(table)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.sql_convert_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1550949, "supported_languages": null}, "macro.dbt_postgres.postgres__list_relations_without_caching": {"name": "postgres__list_relations_without_caching", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__list_relations_without_caching", "macro_sql": "{% macro postgres__list_relations_without_caching(schema_relation) %}\n {% call statement('list_relations_without_caching', fetch_result=True) -%}\n select\n '{{ schema_relation.database }}' as database,\n tablename as name,\n schemaname as schema,\n 'table' as type\n from pg_tables\n where schemaname ilike '{{ schema_relation.schema }}'\n union all\n select\n '{{ schema_relation.database }}' as database,\n viewname as name,\n schemaname as schema,\n 'view' as type\n from pg_views\n where schemaname ilike '{{ schema_relation.schema }}'\n union all\n select\n '{{ schema_relation.database }}' as database,\n matviewname as name,\n schemaname as schema,\n 'materialized_view' as type\n from pg_matviews\n where schemaname ilike '{{ schema_relation.schema }}'\n {% endcall %}\n {{ return(load_result('list_relations_without_caching').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1558125, "supported_languages": null}, "macro.dbt_postgres.postgres__information_schema_name": {"name": "postgres__information_schema_name", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__information_schema_name", "macro_sql": "{% macro postgres__information_schema_name(database) -%}\n {% if database_name -%}\n {{ adapter.verify_database(database_name) }}\n {%- endif -%}\n information_schema\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1561015, "supported_languages": null}, "macro.dbt_postgres.postgres__list_schemas": {"name": "postgres__list_schemas", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__list_schemas", "macro_sql": "{% macro postgres__list_schemas(database) %}\n {% if database -%}\n {{ adapter.verify_database(database) }}\n {%- endif -%}\n {% call statement('list_schemas', fetch_result=True, auto_begin=False) %}\n select distinct nspname from pg_namespace\n {% endcall %}\n {{ return(load_result('list_schemas').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1566718, "supported_languages": null}, "macro.dbt_postgres.postgres__check_schema_exists": {"name": "postgres__check_schema_exists", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__check_schema_exists", "macro_sql": "{% macro postgres__check_schema_exists(information_schema, schema) -%}\n {% if information_schema.database -%}\n {{ adapter.verify_database(information_schema.database) }}\n {%- endif -%}\n {% call statement('check_schema_exists', fetch_result=True, auto_begin=False) %}\n select count(*) from pg_namespace where nspname = '{{ schema }}'\n {% endcall %}\n {{ return(load_result('check_schema_exists').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.157302, "supported_languages": null}, "macro.dbt_postgres.postgres__make_relation_with_suffix": {"name": "postgres__make_relation_with_suffix", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_relation_with_suffix", "macro_sql": "{% macro postgres__make_relation_with_suffix(base_relation, suffix, dstring) %}\n {% if dstring %}\n {% set dt = modules.datetime.datetime.now() %}\n {% set dtstring = dt.strftime(\"%H%M%S%f\") %}\n {% set suffix = suffix ~ dtstring %}\n {% endif %}\n {% set suffix_length = suffix|length %}\n {% set relation_max_name_length = base_relation.relation_max_name_length() %}\n {% if suffix_length > relation_max_name_length %}\n {% do exceptions.raise_compiler_error('Relation suffix is too long (' ~ suffix_length ~ ' characters). Maximum length is ' ~ relation_max_name_length ~ ' characters.') %}\n {% endif %}\n {% set identifier = base_relation.identifier[:relation_max_name_length - suffix_length] ~ suffix %}\n\n {{ return(base_relation.incorporate(path={\"identifier\": identifier })) }}\n\n {% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1588058, "supported_languages": null}, "macro.dbt_postgres.postgres__make_intermediate_relation": {"name": "postgres__make_intermediate_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_intermediate_relation", "macro_sql": "{% macro postgres__make_intermediate_relation(base_relation, suffix) %}\n {{ return(postgres__make_relation_with_suffix(base_relation, suffix, dstring=False)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.159147, "supported_languages": null}, "macro.dbt_postgres.postgres__make_temp_relation": {"name": "postgres__make_temp_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_temp_relation", "macro_sql": "{% macro postgres__make_temp_relation(base_relation, suffix) %}\n {% set temp_relation = postgres__make_relation_with_suffix(base_relation, suffix, dstring=True) %}\n {{ return(temp_relation.incorporate(path={\"schema\": none,\n \"database\": none})) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.159739, "supported_languages": null}, "macro.dbt_postgres.postgres__make_backup_relation": {"name": "postgres__make_backup_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_backup_relation", "macro_sql": "{% macro postgres__make_backup_relation(base_relation, backup_relation_type, suffix) %}\n {% set backup_relation = postgres__make_relation_with_suffix(base_relation, suffix, dstring=False) %}\n {{ return(backup_relation.incorporate(type=backup_relation_type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1602054, "supported_languages": null}, "macro.dbt_postgres.postgres_escape_comment": {"name": "postgres_escape_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres_escape_comment", "macro_sql": "{% macro postgres_escape_comment(comment) -%}\n {% if comment is not string %}\n {% do exceptions.raise_compiler_error('cannot escape a non-string: ' ~ comment) %}\n {% endif %}\n {%- set magic = '$dbt_comment_literal_block$' -%}\n {%- if magic in comment -%}\n {%- do exceptions.raise_compiler_error('The string ' ~ magic ~ ' is not allowed in comments.') -%}\n {%- endif -%}\n {{ magic }}{{ comment }}{{ magic }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1609342, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_relation_comment": {"name": "postgres__alter_relation_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__alter_relation_comment", "macro_sql": "{% macro postgres__alter_relation_comment(relation, comment) %}\n {% set escaped_comment = postgres_escape_comment(comment) %}\n {% if relation.type == 'materialized_view' -%}\n {% set relation_type = \"materialized view\" %}\n {%- else -%}\n {%- set relation_type = relation.type -%}\n {%- endif -%}\n comment on {{ relation_type }} {{ relation }} is {{ escaped_comment }};\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1615775, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_column_comment": {"name": "postgres__alter_column_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__alter_column_comment", "macro_sql": "{% macro postgres__alter_column_comment(relation, column_dict) %}\n {% set existing_columns = adapter.get_columns_in_relation(relation) | map(attribute=\"name\") | list %}\n {% for column_name in column_dict if (column_name in existing_columns) %}\n {% set comment = column_dict[column_name]['description'] %}\n {% set escaped_comment = postgres_escape_comment(comment) %}\n comment on column {{ relation }}.{{ adapter.quote(column_name) if column_dict[column_name]['quote'] else column_name }} is {{ escaped_comment }};\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.162595, "supported_languages": null}, "macro.dbt_postgres.postgres__get_show_grant_sql": {"name": "postgres__get_show_grant_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_show_grant_sql", "macro_sql": "\n\n{%- macro postgres__get_show_grant_sql(relation) -%}\n select grantee, privilege_type\n from {{ relation.information_schema('role_table_grants') }}\n where grantor = current_role\n and grantee != current_role\n and table_schema = '{{ relation.schema }}'\n and table_name = '{{ relation.identifier }}'\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1629567, "supported_languages": null}, "macro.dbt_postgres.postgres__copy_grants": {"name": "postgres__copy_grants", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__copy_grants", "macro_sql": "{% macro postgres__copy_grants() %}\n {{ return(False) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1631644, "supported_languages": null}, "macro.dbt_postgres.postgres__get_show_indexes_sql": {"name": "postgres__get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_show_indexes_sql", "macro_sql": "{% macro postgres__get_show_indexes_sql(relation) %}\n select\n i.relname as name,\n m.amname as method,\n ix.indisunique as \"unique\",\n array_to_string(array_agg(a.attname), ',') as column_names\n from pg_index ix\n join pg_class i\n on i.oid = ix.indexrelid\n join pg_am m\n on m.oid=i.relam\n join pg_class t\n on t.oid = ix.indrelid\n join pg_namespace n\n on n.oid = t.relnamespace\n join pg_attribute a\n on a.attrelid = t.oid\n and a.attnum = ANY(ix.indkey)\n where t.relname = '{{ relation.identifier }}'\n and n.nspname = '{{ relation.schema }}'\n and t.relkind in ('r', 'm')\n group by 1, 2, 3\n order by 1, 2, 3\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1634872, "supported_languages": null}, "macro.dbt_postgres.postgres__get_drop_index_sql": {"name": "postgres__get_drop_index_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_drop_index_sql", "macro_sql": "\n\n\n{%- macro postgres__get_drop_index_sql(relation, index_name) -%}\n drop index if exists \"{{ relation.schema }}\".\"{{ index_name }}\"\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.16377, "supported_languages": null}, "macro.dbt_postgres.postgres__dateadd": {"name": "postgres__dateadd", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt_postgres.postgres__dateadd", "macro_sql": "{% macro postgres__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n {{ from_date_or_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.164167, "supported_languages": null}, "macro.dbt_postgres.postgres__listagg": {"name": "postgres__listagg", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt_postgres.postgres__listagg", "macro_sql": "{% macro postgres__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}\n\n {% if limit_num -%}\n array_to_string(\n (array_agg(\n {{ measure }}\n {% if order_by_clause -%}\n {{ order_by_clause }}\n {%- endif %}\n ))[1:{{ limit_num }}],\n {{ delimiter_text }}\n )\n {%- else %}\n string_agg(\n {{ measure }},\n {{ delimiter_text }}\n {% if order_by_clause -%}\n {{ order_by_clause }}\n {%- endif %}\n )\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1650722, "supported_languages": null}, "macro.dbt_postgres.postgres__any_value": {"name": "postgres__any_value", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt_postgres.postgres__any_value", "macro_sql": "{% macro postgres__any_value(expression) -%}\n\n min({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1653376, "supported_languages": null}, "macro.dbt_postgres.postgres__datediff": {"name": "postgres__datediff", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt_postgres.postgres__datediff", "macro_sql": "{% macro postgres__datediff(first_date, second_date, datepart) -%}\n\n {% if datepart == 'year' %}\n (date_part('year', ({{second_date}})::date) - date_part('year', ({{first_date}})::date))\n {% elif datepart == 'quarter' %}\n ({{ datediff(first_date, second_date, 'year') }} * 4 + date_part('quarter', ({{second_date}})::date) - date_part('quarter', ({{first_date}})::date))\n {% elif datepart == 'month' %}\n ({{ datediff(first_date, second_date, 'year') }} * 12 + date_part('month', ({{second_date}})::date) - date_part('month', ({{first_date}})::date))\n {% elif datepart == 'day' %}\n (({{second_date}})::date - ({{first_date}})::date)\n {% elif datepart == 'week' %}\n ({{ datediff(first_date, second_date, 'day') }} / 7 + case\n when date_part('dow', ({{first_date}})::timestamp) <= date_part('dow', ({{second_date}})::timestamp) then\n case when {{first_date}} <= {{second_date}} then 0 else -1 end\n else\n case when {{first_date}} <= {{second_date}} then 1 else 0 end\n end)\n {% elif datepart == 'hour' %}\n ({{ datediff(first_date, second_date, 'day') }} * 24 + date_part('hour', ({{second_date}})::timestamp) - date_part('hour', ({{first_date}})::timestamp))\n {% elif datepart == 'minute' %}\n ({{ datediff(first_date, second_date, 'hour') }} * 60 + date_part('minute', ({{second_date}})::timestamp) - date_part('minute', ({{first_date}})::timestamp))\n {% elif datepart == 'second' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60 + floor(date_part('second', ({{second_date}})::timestamp)) - floor(date_part('second', ({{first_date}})::timestamp)))\n {% elif datepart == 'millisecond' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60000 + floor(date_part('millisecond', ({{second_date}})::timestamp)) - floor(date_part('millisecond', ({{first_date}})::timestamp)))\n {% elif datepart == 'microsecond' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60000000 + floor(date_part('microsecond', ({{second_date}})::timestamp)) - floor(date_part('microsecond', ({{first_date}})::timestamp)))\n {% else %}\n {{ exceptions.raise_compiler_error(\"Unsupported datepart for macro datediff in postgres: {!r}\".format(datepart)) }}\n {% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1689281, "supported_languages": null}, "macro.dbt_postgres.postgres__last_day": {"name": "postgres__last_day", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt_postgres.postgres__last_day", "macro_sql": "{% macro postgres__last_day(date, datepart) -%}\n\n {%- if datepart == 'quarter' -%}\n -- postgres dateadd does not support quarter interval.\n cast(\n {{dbt.dateadd('day', '-1',\n dbt.dateadd('month', '3', dbt.date_trunc(datepart, date))\n )}}\n as date)\n {%- else -%}\n {{dbt.default_last_day(date, datepart)}}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc", "macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1698399, "supported_languages": null}, "macro.dbt_postgres.postgres__split_part": {"name": "postgres__split_part", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt_postgres.postgres__split_part", "macro_sql": "{% macro postgres__split_part(string_text, delimiter_text, part_number) %}\n\n {% if part_number >= 0 %}\n {{ dbt.default__split_part(string_text, delimiter_text, part_number) }}\n {% else %}\n {{ dbt._split_part_negative(string_text, delimiter_text, part_number) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__split_part", "macro.dbt._split_part_negative"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1705275, "supported_languages": null}, "macro.dbt_postgres.postgres__get_rename_table_sql": {"name": "postgres__get_rename_table_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt_postgres.postgres__get_rename_table_sql", "macro_sql": "{% macro postgres__get_rename_table_sql(relation, new_name) %}\n alter table {{ relation }} rename to {{ new_name }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1708453, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_table": {"name": "postgres__drop_table", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt_postgres.postgres__drop_table", "macro_sql": "{% macro postgres__drop_table(relation) -%}\n drop table if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1710825, "supported_languages": null}, "macro.dbt_postgres.postgres__get_replace_table_sql": {"name": "postgres__get_replace_table_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt_postgres.postgres__get_replace_table_sql", "macro_sql": "{% macro postgres__get_replace_table_sql(relation, sql) -%}\n\n {%- set sql_header = config.get('sql_header', none) -%}\n {{ sql_header if sql_header is not none }}\n\n create or replace table {{ relation }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {{ get_table_columns_and_constraints() }}\n {%- set sql = get_select_subquery(sql) %}\n {% endif %}\n as (\n {{ sql }}\n );\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_table_columns_and_constraints", "macro.dbt.get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1721306, "supported_languages": null}, "macro.dbt_postgres.postgres__get_rename_view_sql": {"name": "postgres__get_rename_view_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt_postgres.postgres__get_rename_view_sql", "macro_sql": "{% macro postgres__get_rename_view_sql(relation, new_name) %}\n alter view {{ relation }} rename to {{ new_name }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1724458, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_view": {"name": "postgres__drop_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt_postgres.postgres__drop_view", "macro_sql": "{% macro postgres__drop_view(relation) -%}\n drop view if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1727552, "supported_languages": null}, "macro.dbt_postgres.postgres__get_replace_view_sql": {"name": "postgres__get_replace_view_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt_postgres.postgres__get_replace_view_sql", "macro_sql": "{% macro postgres__get_replace_view_sql(relation, sql) -%}\n\n {%- set sql_header = config.get('sql_header', none) -%}\n {{ sql_header if sql_header is not none }}\n\n create or replace view {{ relation }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {%- endif %}\n as (\n {{ sql }}\n );\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1736686, "supported_languages": null}, "macro.dbt_postgres.postgres__refresh_materialized_view": {"name": "postgres__refresh_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt_postgres.postgres__refresh_materialized_view", "macro_sql": "{% macro postgres__refresh_materialized_view(relation) %}\n refresh materialized view {{ relation }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1739235, "supported_languages": null}, "macro.dbt_postgres.postgres__describe_materialized_view": {"name": "postgres__describe_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/describe.sql", "original_file_path": "macros/relations/materialized_view/describe.sql", "unique_id": "macro.dbt_postgres.postgres__describe_materialized_view", "macro_sql": "{% macro postgres__describe_materialized_view(relation) %}\n -- for now just get the indexes, we don't need the name or the query yet\n {% set _indexes = run_query(get_show_indexes_sql(relation)) %}\n {% do return({'indexes': _indexes}) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.get_show_indexes_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1744199, "supported_languages": null}, "macro.dbt_postgres.postgres__get_rename_materialized_view_sql": {"name": "postgres__get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt_postgres.postgres__get_rename_materialized_view_sql", "macro_sql": "{% macro postgres__get_rename_materialized_view_sql(relation, new_name) %}\n alter materialized view {{ relation }} rename to {{ new_name }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1747336, "supported_languages": null}, "macro.dbt_postgres.postgres__get_create_materialized_view_as_sql": {"name": "postgres__get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt_postgres.postgres__get_create_materialized_view_as_sql", "macro_sql": "{% macro postgres__get_create_materialized_view_as_sql(relation, sql) %}\n create materialized view if not exists {{ relation }} as {{ sql }};\n\n {% for _index_dict in config.get('indexes', []) -%}\n {{- get_create_index_sql(relation, _index_dict) -}}{{ ';' if not loop.last else \"\" }}\n {%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1754384, "supported_languages": null}, "macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql": {"name": "postgres__get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql", "macro_sql": "{% macro postgres__get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n\n -- apply a full refresh immediately if needed\n {% if configuration_changes.requires_full_refresh %}\n\n {{ get_replace_sql(existing_relation, relation, sql) }}\n\n -- otherwise apply individual changes as needed\n {% else %}\n\n {{ postgres__update_indexes_on_materialized_view(relation, configuration_changes.indexes) }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_replace_sql", "macro.dbt_postgres.postgres__update_indexes_on_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1763885, "supported_languages": null}, "macro.dbt_postgres.postgres__update_indexes_on_materialized_view": {"name": "postgres__update_indexes_on_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt_postgres.postgres__update_indexes_on_materialized_view", "macro_sql": "\n\n\n{%- macro postgres__update_indexes_on_materialized_view(relation, index_changes) -%}\n {{- log(\"Applying UPDATE INDEXES to: \" ~ relation) -}}\n\n {%- for _index_change in index_changes -%}\n {%- set _index = _index_change.context -%}\n\n {%- if _index_change.action == \"drop\" -%}\n\n {{ postgres__get_drop_index_sql(relation, _index.name) }}\n\n {%- elif _index_change.action == \"create\" -%}\n\n {{ postgres__get_create_index_sql(relation, _index.as_node_config) }}\n\n {%- endif -%}\n\t{{ ';' if not loop.last else \"\" }}\n\n {%- endfor -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_drop_index_sql", "macro.dbt_postgres.postgres__get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1774178, "supported_languages": null}, "macro.dbt_postgres.postgres__get_materialized_view_configuration_changes": {"name": "postgres__get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt_postgres.postgres__get_materialized_view_configuration_changes", "macro_sql": "{% macro postgres__get_materialized_view_configuration_changes(existing_relation, new_config) %}\n {% set _existing_materialized_view = postgres__describe_materialized_view(existing_relation) %}\n {% set _configuration_changes = existing_relation.get_materialized_view_config_change_collection(_existing_materialized_view, new_config.model) %}\n {% do return(_configuration_changes) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__describe_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1779323, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_materialized_view": {"name": "postgres__drop_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt_postgres.postgres__drop_materialized_view", "macro_sql": "{% macro postgres__drop_materialized_view(relation) -%}\n drop materialized view if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1781948, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_merge_sql": {"name": "postgres__snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshot_merge.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_merge_sql", "macro_sql": "{% macro postgres__snapshot_merge_sql(target, source, insert_cols) -%}\n {%- set insert_cols_csv = insert_cols | join(', ') -%}\n\n {%- set columns = config.get(\"snapshot_table_column_names\") or get_snapshot_table_column_names() -%}\n\n update {{ target }}\n set {{ columns.dbt_valid_to }} = DBT_INTERNAL_SOURCE.{{ columns.dbt_valid_to }}\n from {{ source }} as DBT_INTERNAL_SOURCE\n where DBT_INTERNAL_SOURCE.{{ columns.dbt_scd_id }}::text = {{ target }}.{{ columns.dbt_scd_id }}::text\n and DBT_INTERNAL_SOURCE.dbt_change_type::text in ('update'::text, 'delete'::text)\n {% if config.get(\"dbt_valid_to_current\") %}\n and ({{ target }}.{{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }} or {{ target }}.{{ columns.dbt_valid_to }} is null);\n {% else %}\n and {{ target }}.{{ columns.dbt_valid_to }} is null;\n {% endif %}\n\n\n insert into {{ target }} ({{ insert_cols_csv }})\n select {% for column in insert_cols -%}\n DBT_INTERNAL_SOURCE.{{ column }} {%- if not loop.last %}, {%- endif %}\n {%- endfor %}\n from {{ source }} as DBT_INTERNAL_SOURCE\n where DBT_INTERNAL_SOURCE.dbt_change_type::text = 'insert'::text;\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1801038, "supported_languages": null}, "macro.dbt_postgres.postgres__get_incremental_default_sql": {"name": "postgres__get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/incremental_strategies.sql", "original_file_path": "macros/materializations/incremental_strategies.sql", "unique_id": "macro.dbt_postgres.postgres__get_incremental_default_sql", "macro_sql": "{% macro postgres__get_incremental_default_sql(arg_dict) %}\n\n {% if arg_dict[\"unique_key\"] %}\n {% do return(get_incremental_delete_insert_sql(arg_dict)) %}\n {% else %}\n {% do return(get_incremental_append_sql(arg_dict)) %}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_incremental_delete_insert_sql", "macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.180895, "supported_languages": null}, "macro.dbt_postgres.postgres__get_incremental_microbatch_sql": {"name": "postgres__get_incremental_microbatch_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/incremental_strategies.sql", "original_file_path": "macros/materializations/incremental_strategies.sql", "unique_id": "macro.dbt_postgres.postgres__get_incremental_microbatch_sql", "macro_sql": "{% macro postgres__get_incremental_microbatch_sql(arg_dict) %}\n\n {% if arg_dict[\"unique_key\"] %}\n {% do return(adapter.dispatch('get_incremental_merge_sql', 'dbt')(arg_dict)) %}\n {% else %}\n {{ exceptions.raise_compiler_error(\"dbt-postgres 'microbatch' requires a `unique_key` config\") }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_incremental_merge_sql", "macro.dbt.default__get_incremental_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.181432, "supported_languages": null}, "macro.dbt_postgres.postgres__formatted_scalar_function_args_sql": {"name": "postgres__formatted_scalar_function_args_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt_postgres.postgres__formatted_scalar_function_args_sql", "macro_sql": "{% macro postgres__formatted_scalar_function_args_sql() %}\n {% set args = [] %}\n {% for arg in model.arguments -%}\n {% set default_value = arg.get('default_value', none) %}\n {% if default_value != none %}\n {%- do args.append(arg.name ~ ' ' ~ arg.data_type ~ ' DEFAULT ' ~ default_value) -%}\n {% else %}\n {%- do args.append(arg.name ~ ' ' ~ arg.data_type) -%}\n {% endif %}\n {%- endfor %}\n {{ args | join(', ') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1826618, "supported_languages": null}, "macro.dbt.date_trunc": {"name": "date_trunc", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "unique_id": "macro.dbt.date_trunc", "macro_sql": "{% macro date_trunc(datepart, date) -%}\n {{ return(adapter.dispatch('date_trunc', 'dbt') (datepart, date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.183147, "supported_languages": null}, "macro.dbt.default__date_trunc": {"name": "default__date_trunc", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "unique_id": "macro.dbt.default__date_trunc", "macro_sql": "{% macro default__date_trunc(datepart, date) -%}\n date_trunc('{{datepart}}', {{date}})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.183374, "supported_languages": null}, "macro.dbt.except": {"name": "except", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "unique_id": "macro.dbt.except", "macro_sql": "{% macro except() %}\n {{ return(adapter.dispatch('except', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1837738, "supported_languages": null}, "macro.dbt.default__except": {"name": "default__except", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "unique_id": "macro.dbt.default__except", "macro_sql": "{% macro default__except() %}\n\n except\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.183914, "supported_languages": null}, "macro.dbt.get_powers_of_two": {"name": "get_powers_of_two", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.get_powers_of_two", "macro_sql": "{% macro get_powers_of_two(upper_bound) %}\n {{ return(adapter.dispatch('get_powers_of_two', 'dbt')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.184657, "supported_languages": null}, "macro.dbt.default__get_powers_of_two": {"name": "default__get_powers_of_two", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.default__get_powers_of_two", "macro_sql": "{% macro default__get_powers_of_two(upper_bound) %}\n\n {% if upper_bound <= 0 %}\n {{ exceptions.raise_compiler_error(\"upper bound must be positive\") }}\n {% endif %}\n\n {% for _ in range(1, 100) %}\n {% if upper_bound <= 2 ** loop.index %}{{ return(loop.index) }}{% endif %}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.185355, "supported_languages": null}, "macro.dbt.generate_series": {"name": "generate_series", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.185687, "supported_languages": null}, "macro.dbt.default__generate_series": {"name": "default__generate_series", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.default__generate_series", "macro_sql": "{% macro default__generate_series(upper_bound) %}\n\n {% set n = dbt.get_powers_of_two(upper_bound) %}\n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n {% for i in range(n) %}\n p{{i}}.generated_number * power(2, {{i}})\n {% if not loop.last %} + {% endif %}\n {% endfor %}\n + 1\n as generated_number\n\n from\n\n {% for i in range(n) %}\n p as p{{i}}\n {% if not loop.last %} cross join {% endif %}\n {% endfor %}\n\n )\n\n select *\n from unioned\n where generated_number <= {{upper_bound}}\n order by generated_number\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.186535, "supported_languages": null}, "macro.dbt.array_concat": {"name": "array_concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "unique_id": "macro.dbt.array_concat", "macro_sql": "{% macro array_concat(array_1, array_2) -%}\n {{ return(adapter.dispatch('array_concat', 'dbt')(array_1, array_2)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1870315, "supported_languages": null}, "macro.dbt.default__array_concat": {"name": "default__array_concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "unique_id": "macro.dbt.default__array_concat", "macro_sql": "{% macro default__array_concat(array_1, array_2) -%}\n array_cat({{ array_1 }}, {{ array_2 }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1872551, "supported_languages": null}, "macro.dbt.intersect": {"name": "intersect", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "unique_id": "macro.dbt.intersect", "macro_sql": "{% macro intersect() %}\n {{ return(adapter.dispatch('intersect', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__intersect"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1876385, "supported_languages": null}, "macro.dbt.default__intersect": {"name": "default__intersect", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "unique_id": "macro.dbt.default__intersect", "macro_sql": "{% macro default__intersect() %}\n\n intersect\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1878934, "supported_languages": null}, "macro.dbt.dateadd": {"name": "dateadd", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt.dateadd", "macro_sql": "{% macro dateadd(datepart, interval, from_date_or_timestamp) %}\n {{ return(adapter.dispatch('dateadd', 'dbt')(datepart, interval, from_date_or_timestamp)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.18841, "supported_languages": null}, "macro.dbt.default__dateadd": {"name": "default__dateadd", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt.default__dateadd", "macro_sql": "{% macro default__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n dateadd(\n {{ datepart }},\n {{ interval }},\n {{ from_date_or_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1887028, "supported_languages": null}, "macro.dbt.position": {"name": "position", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "unique_id": "macro.dbt.position", "macro_sql": "{% macro position(substring_text, string_text) -%}\n {{ return(adapter.dispatch('position', 'dbt') (substring_text, string_text)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__position"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1891646, "supported_languages": null}, "macro.dbt.default__position": {"name": "default__position", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "unique_id": "macro.dbt.default__position", "macro_sql": "{% macro default__position(substring_text, string_text) %}\n\n position(\n {{ substring_text }} in {{ string_text }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1893935, "supported_languages": null}, "macro.dbt.array_construct": {"name": "array_construct", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "unique_id": "macro.dbt.array_construct", "macro_sql": "{% macro array_construct(inputs=[], data_type=api.Column.translate_type('integer')) -%}\n {{ return(adapter.dispatch('array_construct', 'dbt')(inputs, data_type)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_construct"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1900291, "supported_languages": null}, "macro.dbt.default__array_construct": {"name": "default__array_construct", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "unique_id": "macro.dbt.default__array_construct", "macro_sql": "{% macro default__array_construct(inputs, data_type) -%}\n {% if inputs|length > 0 %}\n array[ {{ inputs|join(' , ') }} ]\n {% else %}\n array[]::{{data_type}}[]\n {% endif %}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1904352, "supported_languages": null}, "macro.dbt.equals": {"name": "equals", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/equals.sql", "original_file_path": "macros/utils/equals.sql", "unique_id": "macro.dbt.equals", "macro_sql": "{% macro equals(expr1, expr2) %}\n {{ return(adapter.dispatch('equals', 'dbt') (expr1, expr2)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__equals"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1909916, "supported_languages": null}, "macro.dbt.default__equals": {"name": "default__equals", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/equals.sql", "original_file_path": "macros/utils/equals.sql", "unique_id": "macro.dbt.default__equals", "macro_sql": "{% macro default__equals(expr1, expr2) -%}\n{%- if adapter.behavior.enable_truthy_nulls_equals_macro.no_warn %}\n case when (({{ expr1 }} = {{ expr2 }}) or ({{ expr1 }} is null and {{ expr2 }} is null))\n then 0\n else 1\n end = 0\n{%- else -%}\n ({{ expr1 }} = {{ expr2 }})\n{%- endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1914861, "supported_languages": null}, "macro.dbt.length": {"name": "length", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "unique_id": "macro.dbt.length", "macro_sql": "{% macro length(expression) -%}\n {{ return(adapter.dispatch('length', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__length"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1919312, "supported_languages": null}, "macro.dbt.default__length": {"name": "default__length", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "unique_id": "macro.dbt.default__length", "macro_sql": "{% macro default__length(expression) %}\n\n length(\n {{ expression }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1921098, "supported_languages": null}, "macro.dbt.cast_bool_to_text": {"name": "cast_bool_to_text", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "unique_id": "macro.dbt.cast_bool_to_text", "macro_sql": "{% macro cast_bool_to_text(field) %}\n {{ adapter.dispatch('cast_bool_to_text', 'dbt') (field) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.192515, "supported_languages": null}, "macro.dbt.default__cast_bool_to_text": {"name": "default__cast_bool_to_text", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "unique_id": "macro.dbt.default__cast_bool_to_text", "macro_sql": "{% macro default__cast_bool_to_text(field) %}\n cast({{ field }} as {{ api.Column.translate_type('string') }})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.192795, "supported_languages": null}, "macro.dbt.right": {"name": "right", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "unique_id": "macro.dbt.right", "macro_sql": "{% macro right(string_text, length_expression) -%}\n {{ return(adapter.dispatch('right', 'dbt') (string_text, length_expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__right"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.19325, "supported_languages": null}, "macro.dbt.default__right": {"name": "default__right", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "unique_id": "macro.dbt.default__right", "macro_sql": "{% macro default__right(string_text, length_expression) %}\n\n right(\n {{ string_text }},\n {{ length_expression }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1934822, "supported_languages": null}, "macro.dbt.string_literal": {"name": "string_literal", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "unique_id": "macro.dbt.string_literal", "macro_sql": "{%- macro string_literal(value) -%}\n {{ return(adapter.dispatch('string_literal', 'dbt') (value)) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__string_literal"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.193894, "supported_languages": null}, "macro.dbt.default__string_literal": {"name": "default__string_literal", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "unique_id": "macro.dbt.default__string_literal", "macro_sql": "{% macro default__string_literal(value) -%}\n '{{ value }}'\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1940682, "supported_languages": null}, "macro.dbt.cast": {"name": "cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast.sql", "original_file_path": "macros/utils/cast.sql", "unique_id": "macro.dbt.cast", "macro_sql": "{% macro cast(field, type) %}\n {{ return(adapter.dispatch('cast', 'dbt') (field, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1946447, "supported_languages": null}, "macro.dbt.default__cast": {"name": "default__cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast.sql", "original_file_path": "macros/utils/cast.sql", "unique_id": "macro.dbt.default__cast", "macro_sql": "{% macro default__cast(field, type) %}\n cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1948702, "supported_languages": null}, "macro.dbt.concat": {"name": "concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "unique_id": "macro.dbt.concat", "macro_sql": "{% macro concat(fields) -%}\n {{ return(adapter.dispatch('concat', 'dbt')(fields)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.195279, "supported_languages": null}, "macro.dbt.default__concat": {"name": "default__concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "unique_id": "macro.dbt.default__concat", "macro_sql": "{% macro default__concat(fields) -%}\n {{ fields|join(' || ') }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.195485, "supported_languages": null}, "macro.dbt.listagg": {"name": "listagg", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt.listagg", "macro_sql": "{% macro listagg(measure, delimiter_text=\"','\", order_by_clause=none, limit_num=none) -%}\n {{ return(adapter.dispatch('listagg', 'dbt') (measure, delimiter_text, order_by_clause, limit_num)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__listagg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1962368, "supported_languages": null}, "macro.dbt.default__listagg": {"name": "default__listagg", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt.default__listagg", "macro_sql": "{% macro default__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}\n\n {% if limit_num -%}\n array_to_string(\n array_slice(\n array_agg(\n {{ measure }}\n ){% if order_by_clause -%}\n within group ({{ order_by_clause }})\n {%- endif %}\n ,0\n ,{{ limit_num }}\n ),\n {{ delimiter_text }}\n )\n {%- else %}\n listagg(\n {{ measure }},\n {{ delimiter_text }}\n )\n {% if order_by_clause -%}\n within group ({{ order_by_clause }})\n {%- endif %}\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1969306, "supported_languages": null}, "macro.dbt.escape_single_quotes": {"name": "escape_single_quotes", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "unique_id": "macro.dbt.escape_single_quotes", "macro_sql": "{% macro escape_single_quotes(expression) %}\n {{ return(adapter.dispatch('escape_single_quotes', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__escape_single_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.197394, "supported_languages": null}, "macro.dbt.default__escape_single_quotes": {"name": "default__escape_single_quotes", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "unique_id": "macro.dbt.default__escape_single_quotes", "macro_sql": "{% macro default__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\",\"''\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1976411, "supported_languages": null}, "macro.dbt.any_value": {"name": "any_value", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt.any_value", "macro_sql": "{% macro any_value(expression) -%}\n {{ return(adapter.dispatch('any_value', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__any_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1980555, "supported_languages": null}, "macro.dbt.default__any_value": {"name": "default__any_value", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt.default__any_value", "macro_sql": "{% macro default__any_value(expression) -%}\n\n any_value({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1982336, "supported_languages": null}, "macro.dbt.hash": {"name": "hash", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "unique_id": "macro.dbt.hash", "macro_sql": "{% macro hash(field) -%}\n {{ return(adapter.dispatch('hash', 'dbt') (field)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__hash"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1986563, "supported_languages": null}, "macro.dbt.default__hash": {"name": "default__hash", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "unique_id": "macro.dbt.default__hash", "macro_sql": "{% macro default__hash(field) -%}\n md5(cast({{ field }} as {{ api.Column.translate_type('string') }}))\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1989243, "supported_languages": null}, "macro.dbt.date": {"name": "date", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date.sql", "original_file_path": "macros/utils/date.sql", "unique_id": "macro.dbt.date", "macro_sql": "{% macro date(year, month, day) %}\n {{ return(adapter.dispatch('date', 'dbt') (year, month, day)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__date"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1994424, "supported_languages": null}, "macro.dbt.default__date": {"name": "default__date", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date.sql", "original_file_path": "macros/utils/date.sql", "unique_id": "macro.dbt.default__date", "macro_sql": "{% macro default__date(year, month, day) -%}\n {%- set dt = modules.datetime.date(year, month, day) -%}\n {%- set iso_8601_formatted_date = dt.strftime('%Y-%m-%d') -%}\n to_date('{{ iso_8601_formatted_date }}', 'YYYY-MM-DD')\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.1999342, "supported_languages": null}, "macro.dbt.safe_cast": {"name": "safe_cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "unique_id": "macro.dbt.safe_cast", "macro_sql": "{% macro safe_cast(field, type) %}\n {{ return(adapter.dispatch('safe_cast', 'dbt') (field, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2004185, "supported_languages": null}, "macro.dbt.default__safe_cast": {"name": "default__safe_cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "unique_id": "macro.dbt.default__safe_cast", "macro_sql": "{% macro default__safe_cast(field, type) %}\n {# most databases don't support this function yet\n so we just need to use cast #}\n cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2006705, "supported_languages": null}, "macro.dbt.datediff": {"name": "datediff", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt.datediff", "macro_sql": "{% macro datediff(first_date, second_date, datepart) %}\n {{ return(adapter.dispatch('datediff', 'dbt')(first_date, second_date, datepart)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2011838, "supported_languages": null}, "macro.dbt.default__datediff": {"name": "default__datediff", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt.default__datediff", "macro_sql": "{% macro default__datediff(first_date, second_date, datepart) -%}\n\n datediff(\n {{ datepart }},\n {{ first_date }},\n {{ second_date }}\n )\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2015772, "supported_languages": null}, "macro.dbt.get_intervals_between": {"name": "get_intervals_between", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.get_intervals_between", "macro_sql": "{% macro get_intervals_between(start_date, end_date, datepart) -%}\n {{ return(adapter.dispatch('get_intervals_between', 'dbt')(start_date, end_date, datepart)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2024148, "supported_languages": null}, "macro.dbt.default__get_intervals_between": {"name": "default__get_intervals_between", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.default__get_intervals_between", "macro_sql": "{% macro default__get_intervals_between(start_date, end_date, datepart) -%}\n {%- call statement('get_intervals_between', fetch_result=True) %}\n\n select {{ dbt.datediff(start_date, end_date, datepart) }}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_intervals_between') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values[0]) }}\n {%- else -%}\n {{ return(1) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.203477, "supported_languages": null}, "macro.dbt.date_spine": {"name": "date_spine", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.date_spine", "macro_sql": "{% macro date_spine(datepart, start_date, end_date) %}\n {{ return(adapter.dispatch('date_spine', 'dbt')(datepart, start_date, end_date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2038965, "supported_languages": null}, "macro.dbt.default__date_spine": {"name": "default__date_spine", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.default__date_spine", "macro_sql": "{% macro default__date_spine(datepart, start_date, end_date) %}\n\n\n {# call as follows:\n\n date_spine(\n \"day\",\n \"to_date('01/01/2016', 'mm/dd/yyyy')\",\n \"dbt.dateadd(week, 1, current_date)\"\n ) #}\n\n\n with rawdata as (\n\n {{dbt.generate_series(\n dbt.get_intervals_between(start_date, end_date, datepart)\n )}}\n\n ),\n\n all_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n \"row_number() over (order by 1) - 1\",\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n\n ),\n\n filtered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n )\n\n select * from filtered\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.generate_series", "macro.dbt.get_intervals_between", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2045052, "supported_languages": null}, "macro.dbt.type_string": {"name": "type_string", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_string", "macro_sql": "\n\n{%- macro type_string() -%}\n {{ return(adapter.dispatch('type_string', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2057748, "supported_languages": null}, "macro.dbt.default__type_string": {"name": "default__type_string", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_string", "macro_sql": "{% macro default__type_string() %}\n {{ return(api.Column.translate_type(\"string\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2060382, "supported_languages": null}, "macro.dbt.type_timestamp": {"name": "type_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_timestamp", "macro_sql": "\n\n{%- macro type_timestamp() -%}\n {{ return(adapter.dispatch('type_timestamp', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2063046, "supported_languages": null}, "macro.dbt.default__type_timestamp": {"name": "default__type_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_timestamp", "macro_sql": "{% macro default__type_timestamp() %}\n {{ return(api.Column.translate_type(\"timestamp\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.206552, "supported_languages": null}, "macro.dbt.type_float": {"name": "type_float", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_float", "macro_sql": "\n\n{%- macro type_float() -%}\n {{ return(adapter.dispatch('type_float', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2068315, "supported_languages": null}, "macro.dbt.default__type_float": {"name": "default__type_float", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_float", "macro_sql": "{% macro default__type_float() %}\n {{ return(api.Column.translate_type(\"float\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2070768, "supported_languages": null}, "macro.dbt.type_numeric": {"name": "type_numeric", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_numeric", "macro_sql": "\n\n{%- macro type_numeric() -%}\n {{ return(adapter.dispatch('type_numeric', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2073348, "supported_languages": null}, "macro.dbt.default__type_numeric": {"name": "default__type_numeric", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_numeric", "macro_sql": "{% macro default__type_numeric() %}\n {{ return(api.Column.numeric_type(\"numeric\", 28, 6)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.207634, "supported_languages": null}, "macro.dbt.type_bigint": {"name": "type_bigint", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_bigint", "macro_sql": "\n\n{%- macro type_bigint() -%}\n {{ return(adapter.dispatch('type_bigint', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_bigint"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2078996, "supported_languages": null}, "macro.dbt.default__type_bigint": {"name": "default__type_bigint", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_bigint", "macro_sql": "{% macro default__type_bigint() %}\n {{ return(api.Column.translate_type(\"bigint\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.208141, "supported_languages": null}, "macro.dbt.type_int": {"name": "type_int", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_int", "macro_sql": "\n\n{%- macro type_int() -%}\n {{ return(adapter.dispatch('type_int', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2083986, "supported_languages": null}, "macro.dbt.default__type_int": {"name": "default__type_int", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_int", "macro_sql": "{%- macro default__type_int() -%}\n {{ return(api.Column.translate_type(\"integer\")) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2087595, "supported_languages": null}, "macro.dbt.type_boolean": {"name": "type_boolean", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_boolean", "macro_sql": "\n\n{%- macro type_boolean() -%}\n {{ return(adapter.dispatch('type_boolean', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_boolean"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2090237, "supported_languages": null}, "macro.dbt.default__type_boolean": {"name": "default__type_boolean", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_boolean", "macro_sql": "{%- macro default__type_boolean() -%}\n {{ return(api.Column.translate_type(\"boolean\")) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2092552, "supported_languages": null}, "macro.dbt.bool_or": {"name": "bool_or", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "unique_id": "macro.dbt.bool_or", "macro_sql": "{% macro bool_or(expression) -%}\n {{ return(adapter.dispatch('bool_or', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__bool_or"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2096908, "supported_languages": null}, "macro.dbt.default__bool_or": {"name": "default__bool_or", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "unique_id": "macro.dbt.default__bool_or", "macro_sql": "{% macro default__bool_or(expression) -%}\n\n bool_or({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2098699, "supported_languages": null}, "macro.dbt.array_append": {"name": "array_append", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "unique_id": "macro.dbt.array_append", "macro_sql": "{% macro array_append(array, new_element) -%}\n {{ return(adapter.dispatch('array_append', 'dbt')(array, new_element)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_append"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2104435, "supported_languages": null}, "macro.dbt.default__array_append": {"name": "default__array_append", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "unique_id": "macro.dbt.default__array_append", "macro_sql": "{% macro default__array_append(array, new_element) -%}\n array_append({{ array }}, {{ new_element }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.210778, "supported_languages": null}, "macro.dbt.last_day": {"name": "last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.last_day", "macro_sql": "{% macro last_day(date, datepart) %}\n {{ return(adapter.dispatch('last_day', 'dbt') (date, datepart)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2113185, "supported_languages": null}, "macro.dbt.default_last_day": {"name": "default_last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.default_last_day", "macro_sql": "\n\n{%- macro default_last_day(date, datepart) -%}\n cast(\n {{dbt.dateadd('day', '-1',\n dbt.dateadd(datepart, '1', dbt.date_trunc(datepart, date))\n )}}\n as date)\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2117794, "supported_languages": null}, "macro.dbt.default__last_day": {"name": "default__last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.default__last_day", "macro_sql": "{% macro default__last_day(date, datepart) -%}\n {{dbt.default_last_day(date, datepart)}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2120242, "supported_languages": null}, "macro.dbt.split_part": {"name": "split_part", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt.split_part", "macro_sql": "{% macro split_part(string_text, delimiter_text, part_number) %}\n {{ return(adapter.dispatch('split_part', 'dbt') (string_text, delimiter_text, part_number)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2126546, "supported_languages": null}, "macro.dbt.default__split_part": {"name": "default__split_part", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt.default__split_part", "macro_sql": "{% macro default__split_part(string_text, delimiter_text, part_number) %}\n\n split_part(\n {{ string_text }},\n {{ delimiter_text }},\n {{ part_number }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2129414, "supported_languages": null}, "macro.dbt._split_part_negative": {"name": "_split_part_negative", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt._split_part_negative", "macro_sql": "{% macro _split_part_negative(string_text, delimiter_text, part_number) %}\n\n split_part(\n {{ string_text }},\n {{ delimiter_text }},\n length({{ string_text }})\n - length(\n replace({{ string_text }}, {{ delimiter_text }}, '')\n ) + 2 + {{ part_number }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2133126, "supported_languages": null}, "macro.dbt.replace": {"name": "replace", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "unique_id": "macro.dbt.replace", "macro_sql": "{% macro replace(field, old_chars, new_chars) -%}\n {{ return(adapter.dispatch('replace', 'dbt') (field, old_chars, new_chars)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__replace"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.213839, "supported_languages": null}, "macro.dbt.default__replace": {"name": "default__replace", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "unique_id": "macro.dbt.default__replace", "macro_sql": "{% macro default__replace(field, old_chars, new_chars) %}\n\n replace(\n {{ field }},\n {{ old_chars }},\n {{ new_chars }}\n )\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2141218, "supported_languages": null}, "macro.dbt.statement": {"name": "statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.statement", "macro_sql": "\n{%- macro statement(name=None, fetch_result=False, auto_begin=True, language='sql') -%}\n {%- if execute: -%}\n {%- set compiled_code = caller() -%}\n\n {%- if name == 'main' -%}\n {{ log('Writing runtime {} for node \"{}\"'.format(language, model['unique_id'])) }}\n {{ write(compiled_code) }}\n {%- endif -%}\n {%- if language == 'sql'-%}\n {%- set res, table = adapter.execute(compiled_code, auto_begin=auto_begin, fetch=fetch_result) -%}\n {%- elif language == 'python' -%}\n {%- set res = submit_python_job(model, compiled_code) -%}\n {#-- TODO: What should table be for python models? --#}\n {%- set table = None -%}\n {%- else -%}\n {% do exceptions.raise_compiler_error(\"statement macro didn't get supported language\") %}\n {%- endif -%}\n\n {%- if name is not none -%}\n {{ store_result(name, response=res, agate_table=table) }}\n {%- endif -%}\n\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2164469, "supported_languages": null}, "macro.dbt.noop_statement": {"name": "noop_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.noop_statement", "macro_sql": "{% macro noop_statement(name=None, message=None, code=None, rows_affected=None, res=None) -%}\n {%- set sql = caller() -%}\n\n {%- if name == 'main' -%}\n {{ log('Writing runtime SQL for node \"{}\"'.format(model['unique_id'])) }}\n {{ write(sql) }}\n {%- endif -%}\n\n {%- if name is not none -%}\n {{ store_raw_result(name, message=message, code=code, rows_affected=rows_affected, agate_table=res) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2174222, "supported_languages": null}, "macro.dbt.run_query": {"name": "run_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.run_query", "macro_sql": "{% macro run_query(sql) %}\n {% call statement(\"run_query_statement\", fetch_result=true, auto_begin=false) %}\n {{ sql }}\n {% endcall %}\n\n {% do return(load_result(\"run_query_statement\").table) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2179236, "supported_languages": null}, "macro.dbt.convert_datetime": {"name": "convert_datetime", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.convert_datetime", "macro_sql": "{% macro convert_datetime(date_str, date_fmt) %}\n\n {% set error_msg -%}\n The provided partition date '{{ date_str }}' does not match the expected format '{{ date_fmt }}'\n {%- endset %}\n\n {% set res = try_or_compiler_error(error_msg, modules.datetime.datetime.strptime, date_str.strip(), date_fmt) %}\n {{ return(res) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2191908, "supported_languages": null}, "macro.dbt.dates_in_range": {"name": "dates_in_range", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.dates_in_range", "macro_sql": "{% macro dates_in_range(start_date_str, end_date_str=none, in_fmt=\"%Y%m%d\", out_fmt=\"%Y%m%d\") %}\n {% set end_date_str = start_date_str if end_date_str is none else end_date_str %}\n\n {% set start_date = convert_datetime(start_date_str, in_fmt) %}\n {% set end_date = convert_datetime(end_date_str, in_fmt) %}\n\n {% set day_count = (end_date - start_date).days %}\n {% if day_count < 0 %}\n {% set msg -%}\n Partition start date is after the end date ({{ start_date }}, {{ end_date }})\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg, model) }}\n {% endif %}\n\n {% set date_list = [] %}\n {% for i in range(0, day_count + 1) %}\n {% set the_date = (modules.datetime.timedelta(days=i) + start_date) %}\n {% if not out_fmt %}\n {% set _ = date_list.append(the_date) %}\n {% else %}\n {% set _ = date_list.append(the_date.strftime(out_fmt)) %}\n {% endif %}\n {% endfor %}\n\n {{ return(date_list) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.convert_datetime"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2211497, "supported_languages": null}, "macro.dbt.partition_range": {"name": "partition_range", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.partition_range", "macro_sql": "{% macro partition_range(raw_partition_date, date_fmt='%Y%m%d') %}\n {% set partition_range = (raw_partition_date | string).split(\",\") %}\n\n {% if (partition_range | length) == 1 %}\n {% set start_date = partition_range[0] %}\n {% set end_date = none %}\n {% elif (partition_range | length) == 2 %}\n {% set start_date = partition_range[0] %}\n {% set end_date = partition_range[1] %}\n {% else %}\n {{ exceptions.raise_compiler_error(\"Invalid partition time. Expected format: {Start Date}[,{End Date}]. Got: \" ~ raw_partition_date) }}\n {% endif %}\n\n {{ return(dates_in_range(start_date, end_date, in_fmt=date_fmt)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dates_in_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2223935, "supported_languages": null}, "macro.dbt.py_current_timestring": {"name": "py_current_timestring", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.py_current_timestring", "macro_sql": "{% macro py_current_timestring() %}\n {% set dt = modules.datetime.datetime.now() %}\n {% do return(dt.strftime(\"%Y%m%d%H%M%S%f\")) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.222803, "supported_languages": null}, "macro.dbt.get_drop_backup_sql": {"name": "get_drop_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop_backup.sql", "original_file_path": "macros/relations/drop_backup.sql", "unique_id": "macro.dbt.get_drop_backup_sql", "macro_sql": "{%- macro get_drop_backup_sql(relation) -%}\n {{- log('Applying DROP BACKUP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_drop_backup_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_drop_backup_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2233255, "supported_languages": null}, "macro.dbt.default__get_drop_backup_sql": {"name": "default__get_drop_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop_backup.sql", "original_file_path": "macros/relations/drop_backup.sql", "unique_id": "macro.dbt.default__get_drop_backup_sql", "macro_sql": "{%- macro default__get_drop_backup_sql(relation) -%}\n\n -- get the standard backup name\n {% set backup_relation = make_backup_relation(relation, relation.type) %}\n\n {{ get_drop_sql(backup_relation) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_backup_relation", "macro.dbt.get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.223683, "supported_languages": null}, "macro.dbt.get_rename_sql": {"name": "get_rename_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.get_rename_sql", "macro_sql": "{%- macro get_rename_sql(relation, new_name) -%}\n {{- log('Applying RENAME to: ' ~ relation) -}}\n {{- adapter.dispatch('get_rename_sql', 'dbt')(relation, new_name) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2244573, "supported_languages": null}, "macro.dbt.default__get_rename_sql": {"name": "default__get_rename_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.default__get_rename_sql", "macro_sql": "{%- macro default__get_rename_sql(relation, new_name) -%}\n\n {%- if relation.is_view -%}\n {{ get_rename_view_sql(relation, new_name) }}\n\n {%- elif relation.is_table -%}\n {{ get_rename_table_sql(relation, new_name) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ get_rename_materialized_view_sql(relation, new_name) }}\n\n {%- else -%}\n {{- exceptions.raise_compiler_error(\"`get_rename_sql` has not been implemented for: \" ~ relation.type ) -}}\n\n {%- endif -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.get_rename_view_sql", "macro.dbt.get_rename_table_sql", "macro.dbt.get_rename_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2251785, "supported_languages": null}, "macro.dbt.rename_relation": {"name": "rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.rename_relation", "macro_sql": "{% macro rename_relation(from_relation, to_relation) -%}\n {{ return(adapter.dispatch('rename_relation', 'dbt')(from_relation, to_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__rename_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2255158, "supported_languages": null}, "macro.dbt.default__rename_relation": {"name": "default__rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.default__rename_relation", "macro_sql": "{% macro default__rename_relation(from_relation, to_relation) -%}\n {% set target_name = adapter.quote_as_configured(to_relation.identifier, 'identifier') %}\n {% call statement('rename_relation') -%}\n alter table {{ from_relation.render() }} rename to {{ target_name }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2260222, "supported_languages": null}, "macro.dbt.get_create_sql": {"name": "get_create_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create.sql", "original_file_path": "macros/relations/create.sql", "unique_id": "macro.dbt.get_create_sql", "macro_sql": "{%- macro get_create_sql(relation, sql) -%}\n {{- log('Applying CREATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_sql', 'dbt')(relation, sql) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2266624, "supported_languages": null}, "macro.dbt.default__get_create_sql": {"name": "default__get_create_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create.sql", "original_file_path": "macros/relations/create.sql", "unique_id": "macro.dbt.default__get_create_sql", "macro_sql": "{%- macro default__get_create_sql(relation, sql) -%}\n\n {%- if relation.is_view -%}\n {{ get_create_view_as_sql(relation, sql) }}\n\n {%- elif relation.is_table -%}\n {{ get_create_table_as_sql(False, relation, sql) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ get_create_materialized_view_as_sql(relation, sql) }}\n\n {%- else -%}\n {{- exceptions.raise_compiler_error(\"`get_create_sql` has not been implemented for: \" ~ relation.type ) -}}\n\n {%- endif -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.get_create_view_as_sql", "macro.dbt.get_create_table_as_sql", "macro.dbt.get_create_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2273953, "supported_languages": null}, "macro.dbt.get_create_backup_sql": {"name": "get_create_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_backup.sql", "original_file_path": "macros/relations/create_backup.sql", "unique_id": "macro.dbt.get_create_backup_sql", "macro_sql": "{%- macro get_create_backup_sql(relation) -%}\n {{- log('Applying CREATE BACKUP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_backup_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_backup_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.227929, "supported_languages": null}, "macro.dbt.default__get_create_backup_sql": {"name": "default__get_create_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_backup.sql", "original_file_path": "macros/relations/create_backup.sql", "unique_id": "macro.dbt.default__get_create_backup_sql", "macro_sql": "{%- macro default__get_create_backup_sql(relation) -%}\n\n -- get the standard backup name\n {% set backup_relation = make_backup_relation(relation, relation.type) %}\n\n -- drop any pre-existing backup\n {{ get_drop_sql(backup_relation) }};\n\n {{ get_rename_sql(relation, backup_relation.identifier) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_backup_relation", "macro.dbt.get_drop_sql", "macro.dbt.get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2283714, "supported_languages": null}, "macro.dbt.drop_schema_named": {"name": "drop_schema_named", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/schema.sql", "original_file_path": "macros/relations/schema.sql", "unique_id": "macro.dbt.drop_schema_named", "macro_sql": "{% macro drop_schema_named(schema_name) %}\n {{ return(adapter.dispatch('drop_schema_named', 'dbt') (schema_name)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__drop_schema_named"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2288275, "supported_languages": null}, "macro.dbt.default__drop_schema_named": {"name": "default__drop_schema_named", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/schema.sql", "original_file_path": "macros/relations/schema.sql", "unique_id": "macro.dbt.default__drop_schema_named", "macro_sql": "{% macro default__drop_schema_named(schema_name) %}\n {% set schema_relation = api.Relation.create(schema=schema_name) %}\n {{ adapter.drop_schema(schema_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.229323, "supported_languages": null}, "macro.dbt.get_drop_sql": {"name": "get_drop_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.get_drop_sql", "macro_sql": "{%- macro get_drop_sql(relation) -%}\n {{- log('Applying DROP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_drop_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2300918, "supported_languages": null}, "macro.dbt.default__get_drop_sql": {"name": "default__get_drop_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.default__get_drop_sql", "macro_sql": "{%- macro default__get_drop_sql(relation) -%}\n\n {%- if relation.is_view -%}\n {{ drop_view(relation) }}\n\n {%- elif relation.is_table -%}\n {{ drop_table(relation) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ drop_materialized_view(relation) }}\n\n {%- else -%}\n drop {{ relation.type }} if exists {{ relation.render() }} cascade\n\n {%- endif -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.drop_view", "macro.dbt.drop_table", "macro.dbt.drop_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.230742, "supported_languages": null}, "macro.dbt.drop_relation": {"name": "drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.drop_relation", "macro_sql": "{% macro drop_relation(relation) -%}\n {{ return(adapter.dispatch('drop_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__drop_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2310493, "supported_languages": null}, "macro.dbt.default__drop_relation": {"name": "default__drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.default__drop_relation", "macro_sql": "{% macro default__drop_relation(relation) -%}\n {% call statement('drop_relation', auto_begin=False) -%}\n {{ get_drop_sql(relation) }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.231377, "supported_languages": null}, "macro.dbt.drop_relation_if_exists": {"name": "drop_relation_if_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.drop_relation_if_exists", "macro_sql": "{% macro drop_relation_if_exists(relation) %}\n {% if relation is not none %}\n {{ adapter.drop_relation(relation) }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2317076, "supported_languages": null}, "macro.dbt.get_create_intermediate_sql": {"name": "get_create_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_intermediate.sql", "original_file_path": "macros/relations/create_intermediate.sql", "unique_id": "macro.dbt.get_create_intermediate_sql", "macro_sql": "{%- macro get_create_intermediate_sql(relation, sql) -%}\n {{- log('Applying CREATE INTERMEDIATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_intermediate_sql', 'dbt')(relation, sql) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_intermediate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2322643, "supported_languages": null}, "macro.dbt.default__get_create_intermediate_sql": {"name": "default__get_create_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_intermediate.sql", "original_file_path": "macros/relations/create_intermediate.sql", "unique_id": "macro.dbt.default__get_create_intermediate_sql", "macro_sql": "{%- macro default__get_create_intermediate_sql(relation, sql) -%}\n\n -- get the standard intermediate name\n {% set intermediate_relation = make_intermediate_relation(relation) %}\n\n -- drop any pre-existing intermediate\n {{ get_drop_sql(intermediate_relation) }};\n\n {{ get_create_sql(intermediate_relation, sql) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_intermediate_relation", "macro.dbt.get_drop_sql", "macro.dbt.get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2326832, "supported_languages": null}, "macro.dbt.get_rename_intermediate_sql": {"name": "get_rename_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename_intermediate.sql", "original_file_path": "macros/relations/rename_intermediate.sql", "unique_id": "macro.dbt.get_rename_intermediate_sql", "macro_sql": "{%- macro get_rename_intermediate_sql(relation) -%}\n {{- log('Applying RENAME INTERMEDIATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_rename_intermediate_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_rename_intermediate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.233182, "supported_languages": null}, "macro.dbt.default__get_rename_intermediate_sql": {"name": "default__get_rename_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename_intermediate.sql", "original_file_path": "macros/relations/rename_intermediate.sql", "unique_id": "macro.dbt.default__get_rename_intermediate_sql", "macro_sql": "{%- macro default__get_rename_intermediate_sql(relation) -%}\n\n -- get the standard intermediate name\n {% set intermediate_relation = make_intermediate_relation(relation) %}\n\n {{ get_rename_sql(intermediate_relation, relation.identifier) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_intermediate_relation", "macro.dbt.get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2335243, "supported_languages": null}, "macro.dbt.get_replace_sql": {"name": "get_replace_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/replace.sql", "original_file_path": "macros/relations/replace.sql", "unique_id": "macro.dbt.get_replace_sql", "macro_sql": "{% macro get_replace_sql(existing_relation, target_relation, sql) %}\n {{- log('Applying REPLACE to: ' ~ existing_relation) -}}\n {{- adapter.dispatch('get_replace_sql', 'dbt')(existing_relation, target_relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_replace_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.23445, "supported_languages": null}, "macro.dbt.default__get_replace_sql": {"name": "default__get_replace_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/replace.sql", "original_file_path": "macros/relations/replace.sql", "unique_id": "macro.dbt.default__get_replace_sql", "macro_sql": "{% macro default__get_replace_sql(existing_relation, target_relation, sql) %}\n\n {# /* use a create or replace statement if possible */ #}\n\n {% set is_replaceable = existing_relation.type == target_relation.type and existing_relation.can_be_replaced %}\n\n {% if is_replaceable and existing_relation.is_view %}\n {{ get_replace_view_sql(target_relation, sql) }}\n\n {% elif is_replaceable and existing_relation.is_table %}\n {{ get_replace_table_sql(target_relation, sql) }}\n\n {% elif is_replaceable and existing_relation.is_materialized_view %}\n {{ get_replace_materialized_view_sql(target_relation, sql) }}\n\n {# /* a create or replace statement is not possible, so try to stage and/or backup to be safe */ #}\n\n {# /* create target_relation as an intermediate relation, then swap it out with the existing one using a backup */ #}\n {%- elif target_relation.can_be_renamed and existing_relation.can_be_renamed -%}\n {{ get_create_intermediate_sql(target_relation, sql) }};\n {{ get_create_backup_sql(existing_relation) }};\n {{ get_rename_intermediate_sql(target_relation) }};\n {{ get_drop_backup_sql(existing_relation) }}\n\n {# /* create target_relation as an intermediate relation, then swap it out with the existing one without using a backup */ #}\n {%- elif target_relation.can_be_renamed -%}\n {{ get_create_intermediate_sql(target_relation, sql) }};\n {{ get_drop_sql(existing_relation) }};\n {{ get_rename_intermediate_sql(target_relation) }}\n\n {# /* create target_relation in place by first backing up the existing relation */ #}\n {%- elif existing_relation.can_be_renamed -%}\n {{ get_create_backup_sql(existing_relation) }};\n {{ get_create_sql(target_relation, sql) }};\n {{ get_drop_backup_sql(existing_relation) }}\n\n {# /* no renaming is allowed, so just drop and create */ #}\n {%- else -%}\n {{ get_drop_sql(existing_relation) }};\n {{ get_create_sql(target_relation, sql) }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_replace_view_sql", "macro.dbt.get_replace_table_sql", "macro.dbt.get_replace_materialized_view_sql", "macro.dbt.get_create_intermediate_sql", "macro.dbt.get_create_backup_sql", "macro.dbt.get_rename_intermediate_sql", "macro.dbt.get_drop_backup_sql", "macro.dbt.get_drop_sql", "macro.dbt.get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.237143, "supported_languages": null}, "macro.dbt.get_table_columns_and_constraints": {"name": "get_table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.get_table_columns_and_constraints", "macro_sql": "{%- macro get_table_columns_and_constraints() -%}\n {{ adapter.dispatch('get_table_columns_and_constraints', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__get_table_columns_and_constraints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.238472, "supported_languages": null}, "macro.dbt.default__get_table_columns_and_constraints": {"name": "default__get_table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__get_table_columns_and_constraints", "macro_sql": "{% macro default__get_table_columns_and_constraints() -%}\n {{ return(table_columns_and_constraints()) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.table_columns_and_constraints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2387009, "supported_languages": null}, "macro.dbt.table_columns_and_constraints": {"name": "table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.table_columns_and_constraints", "macro_sql": "{% macro table_columns_and_constraints() %}\n {# loop through user_provided_columns to create DDL with data types and constraints #}\n {%- set raw_column_constraints = adapter.render_raw_columns_constraints(raw_columns=model['columns']) -%}\n {%- set raw_model_constraints = adapter.render_raw_model_constraints(raw_constraints=model['constraints']) -%}\n (\n {% for c in raw_column_constraints -%}\n {{ c }}{{ \",\" if not loop.last or raw_model_constraints }}\n {% endfor %}\n {% for c in raw_model_constraints -%}\n {{ c }}{{ \",\" if not loop.last }}\n {% endfor -%}\n )\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2395823, "supported_languages": null}, "macro.dbt.get_assert_columns_equivalent": {"name": "get_assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.get_assert_columns_equivalent", "macro_sql": "\n\n{%- macro get_assert_columns_equivalent(sql) -%}\n {{ adapter.dispatch('get_assert_columns_equivalent', 'dbt')(sql) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2398796, "supported_languages": null}, "macro.dbt.default__get_assert_columns_equivalent": {"name": "default__get_assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__get_assert_columns_equivalent", "macro_sql": "{% macro default__get_assert_columns_equivalent(sql) -%}\n {{ return(assert_columns_equivalent(sql)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.240107, "supported_languages": null}, "macro.dbt.assert_columns_equivalent": {"name": "assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.assert_columns_equivalent", "macro_sql": "{% macro assert_columns_equivalent(sql) %}\n\n {#-- First ensure the user has defined 'columns' in yaml specification --#}\n {%- set user_defined_columns = model['columns'] -%}\n {%- if not user_defined_columns -%}\n {{ exceptions.raise_contract_error([], []) }}\n {%- endif -%}\n\n {#-- Obtain the column schema provided by sql file. #}\n {%- set sql_file_provided_columns = get_column_schema_from_query(sql, config.get('sql_header', none)) -%}\n {#--Obtain the column schema provided by the schema file by generating an 'empty schema' query from the model's columns. #}\n {%- set schema_file_provided_columns = get_column_schema_from_query(get_empty_schema_sql(user_defined_columns)) -%}\n\n {#-- create dictionaries with name and formatted data type and strings for exception #}\n {%- set sql_columns = format_columns(sql_file_provided_columns) -%}\n {%- set yaml_columns = format_columns(schema_file_provided_columns) -%}\n\n {%- if sql_columns|length != yaml_columns|length -%}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n\n {%- for sql_col in sql_columns -%}\n {%- set yaml_col = [] -%}\n {%- for this_col in yaml_columns -%}\n {%- if this_col['name'] == sql_col['name'] -%}\n {%- do yaml_col.append(this_col) -%}\n {%- break -%}\n {%- endif -%}\n {%- endfor -%}\n {%- if not yaml_col -%}\n {#-- Column with name not found in yaml #}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n {%- if sql_col['formatted'] != yaml_col[0]['formatted'] -%}\n {#-- Column data types don't match #}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n {%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_column_schema_from_query", "macro.dbt.get_empty_schema_sql", "macro.dbt.format_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.242169, "supported_languages": null}, "macro.dbt.format_columns": {"name": "format_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.format_columns", "macro_sql": "{% macro format_columns(columns) %}\n {% set formatted_columns = [] %}\n {% for column in columns %}\n {%- set formatted_column = adapter.dispatch('format_column', 'dbt')(column) -%}\n {%- do formatted_columns.append(formatted_column) -%}\n {% endfor %}\n {{ return(formatted_columns) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__format_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2428198, "supported_languages": null}, "macro.dbt.default__format_column": {"name": "default__format_column", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__format_column", "macro_sql": "{% macro default__format_column(column) -%}\n {% set data_type = column.dtype %}\n {% set formatted = column.column.lower() ~ \" \" ~ data_type %}\n {{ return({'name': column.name, 'data_type': data_type, 'formatted': formatted}) }}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2433941, "supported_languages": null}, "macro.dbt.get_rename_table_sql": {"name": "get_rename_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt.get_rename_table_sql", "macro_sql": "{% macro get_rename_table_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_table_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_rename_table_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2438862, "supported_languages": null}, "macro.dbt.default__get_rename_table_sql": {"name": "default__get_rename_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt.default__get_rename_table_sql", "macro_sql": "{% macro default__get_rename_table_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_table_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2441328, "supported_languages": null}, "macro.dbt.get_create_table_as_sql": {"name": "get_create_table_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.get_create_table_as_sql", "macro_sql": "{% macro get_create_table_as_sql(temporary, relation, sql) -%}\n {{ adapter.dispatch('get_create_table_as_sql', 'dbt')(temporary, relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_create_table_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2451928, "supported_languages": null}, "macro.dbt.default__get_create_table_as_sql": {"name": "default__get_create_table_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_create_table_as_sql", "macro_sql": "{% macro default__get_create_table_as_sql(temporary, relation, sql) -%}\n {{ return(create_table_as(temporary, relation, sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2455, "supported_languages": null}, "macro.dbt.create_table_as": {"name": "create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.create_table_as", "macro_sql": "{% macro create_table_as(temporary, relation, compiled_code, language='sql') -%}\n {# backward compatibility for create_table_as that does not support language #}\n {% if language == \"sql\" %}\n {{ adapter.dispatch('create_table_as', 'dbt')(temporary, relation, compiled_code)}}\n {% else %}\n {{ adapter.dispatch('create_table_as', 'dbt')(temporary, relation, compiled_code, language) }}\n {% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.246259, "supported_languages": null}, "macro.dbt.default__create_table_as": {"name": "default__create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__create_table_as", "macro_sql": "{% macro default__create_table_as(temporary, relation, sql) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n\n create {% if temporary: -%}temporary{%- endif %} table\n {{ relation.include(database=(not temporary), schema=(not temporary)) }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced and (not temporary) %}\n {{ get_assert_columns_equivalent(sql) }}\n {{ get_table_columns_and_constraints() }}\n {%- set sql = get_select_subquery(sql) %}\n {% endif %}\n as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_table_columns_and_constraints", "macro.dbt.get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2475522, "supported_languages": null}, "macro.dbt.default__get_column_names": {"name": "default__get_column_names", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_column_names", "macro_sql": "{% macro default__get_column_names() %}\n {#- loop through user_provided_columns to get column names -#}\n {%- set user_provided_columns = model['columns'] -%}\n {%- for i in user_provided_columns %}\n {%- set col = user_provided_columns[i] -%}\n {%- set col_name = adapter.quote(col['name']) if col.get('quote') else col['name'] -%}\n {{ col_name }}{{ \", \" if not loop.last }}\n {%- endfor -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2483485, "supported_languages": null}, "macro.dbt.get_select_subquery": {"name": "get_select_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.get_select_subquery", "macro_sql": "{% macro get_select_subquery(sql) %}\n {{ return(adapter.dispatch('get_select_subquery', 'dbt')(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2486746, "supported_languages": null}, "macro.dbt.default__get_select_subquery": {"name": "default__get_select_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_select_subquery", "macro_sql": "{% macro default__get_select_subquery(sql) %}\n select {{ adapter.dispatch('get_column_names', 'dbt')() }}\n from (\n {{ sql }}\n ) as model_subq\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_column_names"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2489727, "supported_languages": null}, "macro.dbt.drop_table": {"name": "drop_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt.drop_table", "macro_sql": "{% macro drop_table(relation) -%}\n {{- adapter.dispatch('drop_table', 'dbt')(relation) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2493901, "supported_languages": null}, "macro.dbt.default__drop_table": {"name": "default__drop_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt.default__drop_table", "macro_sql": "{% macro default__drop_table(relation) -%}\n drop table if exists {{ relation.render() }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2495944, "supported_languages": null}, "macro.dbt.get_replace_table_sql": {"name": "get_replace_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt.get_replace_table_sql", "macro_sql": "{% macro get_replace_table_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_table_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_replace_table_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2500474, "supported_languages": null}, "macro.dbt.default__get_replace_table_sql": {"name": "default__get_replace_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt.default__get_replace_table_sql", "macro_sql": "{% macro default__get_replace_table_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_table_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2502887, "supported_languages": null}, "macro.dbt.get_rename_view_sql": {"name": "get_rename_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt.get_rename_view_sql", "macro_sql": "{% macro get_rename_view_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_view_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_rename_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2507317, "supported_languages": null}, "macro.dbt.default__get_rename_view_sql": {"name": "default__get_rename_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt.default__get_rename_view_sql", "macro_sql": "{% macro default__get_rename_view_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2509723, "supported_languages": null}, "macro.dbt.get_create_view_as_sql": {"name": "get_create_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.get_create_view_as_sql", "macro_sql": "{% macro get_create_view_as_sql(relation, sql) -%}\n {{ adapter.dispatch('get_create_view_as_sql', 'dbt')(relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_create_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2515752, "supported_languages": null}, "macro.dbt.default__get_create_view_as_sql": {"name": "default__get_create_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.default__get_create_view_as_sql", "macro_sql": "{% macro default__get_create_view_as_sql(relation, sql) -%}\n {{ return(create_view_as(relation, sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.251864, "supported_languages": null}, "macro.dbt.create_view_as": {"name": "create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.create_view_as", "macro_sql": "{% macro create_view_as(relation, sql) -%}\n {{ adapter.dispatch('create_view_as', 'dbt')(relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2521625, "supported_languages": null}, "macro.dbt.default__create_view_as": {"name": "default__create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.default__create_view_as", "macro_sql": "{% macro default__create_view_as(relation, sql) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n create view {{ relation.render() }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {%- endif %}\n as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2528803, "supported_languages": null}, "macro.dbt.drop_view": {"name": "drop_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt.drop_view", "macro_sql": "{% macro drop_view(relation) -%}\n {{- adapter.dispatch('drop_view', 'dbt')(relation) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2532942, "supported_languages": null}, "macro.dbt.default__drop_view": {"name": "default__drop_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt.default__drop_view", "macro_sql": "{% macro default__drop_view(relation) -%}\n drop view if exists {{ relation.render() }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2535002, "supported_languages": null}, "macro.dbt.get_replace_view_sql": {"name": "get_replace_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.get_replace_view_sql", "macro_sql": "{% macro get_replace_view_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_view_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_replace_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2543652, "supported_languages": null}, "macro.dbt.default__get_replace_view_sql": {"name": "default__get_replace_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.default__get_replace_view_sql", "macro_sql": "{% macro default__get_replace_view_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2546144, "supported_languages": null}, "macro.dbt.create_or_replace_view": {"name": "create_or_replace_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.create_or_replace_view", "macro_sql": "{% macro create_or_replace_view() %}\n {%- set identifier = model['alias'] -%}\n\n {%- set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) -%}\n {%- set exists_as_view = (old_relation is not none and old_relation.is_view) -%}\n\n {%- set target_relation = api.Relation.create(\n identifier=identifier, schema=schema, database=database,\n type='view') -%}\n {% set grant_config = config.get('grants') %}\n\n {{ run_hooks(pre_hooks) }}\n\n -- If there's a table with the same name and we weren't told to full refresh,\n -- that's an error. If we were told to full refresh, drop it. This behavior differs\n -- for Snowflake and BigQuery, so multiple dispatch is used.\n {%- if old_relation is not none and old_relation.is_table -%}\n {{ handle_existing_table(should_full_refresh(), old_relation) }}\n {%- endif -%}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_view_as_sql(target_relation, sql) }}\n {%- endcall %}\n\n {% set should_revoke = should_revoke(exists_as_view, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {{ run_hooks(post_hooks) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.handle_existing_table", "macro.dbt.should_full_refresh", "macro.dbt.statement", "macro.dbt.get_create_view_as_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2566442, "supported_languages": null}, "macro.dbt.handle_existing_table": {"name": "handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.handle_existing_table", "macro_sql": "{% macro handle_existing_table(full_refresh, old_relation) %}\n {{ adapter.dispatch('handle_existing_table', 'dbt')(full_refresh, old_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__handle_existing_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.25699, "supported_languages": null}, "macro.dbt.default__handle_existing_table": {"name": "default__handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.default__handle_existing_table", "macro_sql": "{% macro default__handle_existing_table(full_refresh, old_relation) %}\n {{ log(\"Dropping relation \" ~ old_relation.render() ~ \" because it is of type \" ~ old_relation.type) }}\n {{ adapter.drop_relation(old_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2573817, "supported_languages": null}, "macro.dbt.refresh_materialized_view": {"name": "refresh_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt.refresh_materialized_view", "macro_sql": "{% macro refresh_materialized_view(relation) %}\n {{- log('Applying REFRESH to: ' ~ relation) -}}\n {{- adapter.dispatch('refresh_materialized_view', 'dbt')(relation) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__refresh_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.257911, "supported_languages": null}, "macro.dbt.default__refresh_materialized_view": {"name": "default__refresh_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt.default__refresh_materialized_view", "macro_sql": "{% macro default__refresh_materialized_view(relation) %}\n {{ exceptions.raise_compiler_error(\"`refresh_materialized_view` has not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.258143, "supported_languages": null}, "macro.dbt.get_rename_materialized_view_sql": {"name": "get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt.get_rename_materialized_view_sql", "macro_sql": "{% macro get_rename_materialized_view_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_materialized_view_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_rename_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2585857, "supported_languages": null}, "macro.dbt.default__get_rename_materialized_view_sql": {"name": "default__get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt.default__get_rename_materialized_view_sql", "macro_sql": "{% macro default__get_rename_materialized_view_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_materialized_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.258848, "supported_languages": null}, "macro.dbt.get_create_materialized_view_as_sql": {"name": "get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt.get_create_materialized_view_as_sql", "macro_sql": "{% macro get_create_materialized_view_as_sql(relation, sql) -%}\n {{- adapter.dispatch('get_create_materialized_view_as_sql', 'dbt')(relation, sql) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_create_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2592883, "supported_languages": null}, "macro.dbt.default__get_create_materialized_view_as_sql": {"name": "default__get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt.default__get_create_materialized_view_as_sql", "macro_sql": "{% macro default__get_create_materialized_view_as_sql(relation, sql) -%}\n {{ exceptions.raise_compiler_error(\n \"`get_create_materialized_view_as_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.259529, "supported_languages": null}, "macro.dbt.get_alter_materialized_view_as_sql": {"name": "get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.get_alter_materialized_view_as_sql", "macro_sql": "{% macro get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n {{- log('Applying ALTER to: ' ~ relation) -}}\n {{- adapter.dispatch('get_alter_materialized_view_as_sql', 'dbt')(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n ) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2604296, "supported_languages": null}, "macro.dbt.default__get_alter_materialized_view_as_sql": {"name": "default__get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.default__get_alter_materialized_view_as_sql", "macro_sql": "{% macro default__get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n {{ exceptions.raise_compiler_error(\"Materialized views have not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2607627, "supported_languages": null}, "macro.dbt.get_materialized_view_configuration_changes": {"name": "get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.get_materialized_view_configuration_changes", "macro_sql": "{% macro get_materialized_view_configuration_changes(existing_relation, new_config) %}\n /* {#\n It's recommended that configuration changes be formatted as follows:\n {\"\": [{\"action\": \"\", \"context\": ...}]}\n\n For example:\n {\n \"indexes\": [\n {\"action\": \"drop\", \"context\": \"index_abc\"},\n {\"action\": \"create\", \"context\": {\"columns\": [\"column_1\", \"column_2\"], \"type\": \"hash\", \"unique\": True}},\n ],\n }\n\n Either way, `get_materialized_view_configuration_changes` needs to align with `get_alter_materialized_view_as_sql`.\n #} */\n {{- log('Determining configuration changes on: ' ~ existing_relation) -}}\n {%- do return(adapter.dispatch('get_materialized_view_configuration_changes', 'dbt')(existing_relation, new_config)) -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_materialized_view_configuration_changes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2612255, "supported_languages": null}, "macro.dbt.default__get_materialized_view_configuration_changes": {"name": "default__get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.default__get_materialized_view_configuration_changes", "macro_sql": "{% macro default__get_materialized_view_configuration_changes(existing_relation, new_config) %}\n {{ exceptions.raise_compiler_error(\"Materialized views have not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2614686, "supported_languages": null}, "macro.dbt.drop_materialized_view": {"name": "drop_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt.drop_materialized_view", "macro_sql": "{% macro drop_materialized_view(relation) -%}\n {{- adapter.dispatch('drop_materialized_view', 'dbt')(relation) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2618937, "supported_languages": null}, "macro.dbt.default__drop_materialized_view": {"name": "default__drop_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt.default__drop_materialized_view", "macro_sql": "{% macro default__drop_materialized_view(relation) -%}\n drop materialized view if exists {{ relation.render() }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2621, "supported_languages": null}, "macro.dbt.get_replace_materialized_view_sql": {"name": "get_replace_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/replace.sql", "original_file_path": "macros/relations/materialized_view/replace.sql", "unique_id": "macro.dbt.get_replace_materialized_view_sql", "macro_sql": "{% macro get_replace_materialized_view_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_materialized_view_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_replace_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2625306, "supported_languages": null}, "macro.dbt.default__get_replace_materialized_view_sql": {"name": "default__get_replace_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/replace.sql", "original_file_path": "macros/relations/materialized_view/replace.sql", "unique_id": "macro.dbt.default__get_replace_materialized_view_sql", "macro_sql": "{% macro default__get_replace_materialized_view_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_materialized_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.262789, "supported_languages": null}, "macro.dbt.run_hooks": {"name": "run_hooks", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.run_hooks", "macro_sql": "{% macro run_hooks(hooks, inside_transaction=True) %}\n {% for hook in hooks | selectattr('transaction', 'equalto', inside_transaction) %}\n {% if not inside_transaction and loop.first %}\n {% call statement(auto_begin=inside_transaction) %}\n commit;\n {% endcall %}\n {% endif %}\n {% set rendered = render(hook.get('sql')) | trim %}\n {% if (rendered | length) > 0 %}\n {% call statement(auto_begin=inside_transaction) %}\n {{ rendered }}\n {% endcall %}\n {% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.264384, "supported_languages": null}, "macro.dbt.make_hook_config": {"name": "make_hook_config", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.make_hook_config", "macro_sql": "{% macro make_hook_config(sql, inside_transaction) %}\n {{ tojson({\"sql\": sql, \"transaction\": inside_transaction}) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2647467, "supported_languages": null}, "macro.dbt.before_begin": {"name": "before_begin", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.before_begin", "macro_sql": "{% macro before_begin(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.264992, "supported_languages": null}, "macro.dbt.in_transaction": {"name": "in_transaction", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.in_transaction", "macro_sql": "{% macro in_transaction(sql) %}\n {{ make_hook_config(sql, inside_transaction=True) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2652254, "supported_languages": null}, "macro.dbt.after_commit": {"name": "after_commit", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.after_commit", "macro_sql": "{% macro after_commit(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.265457, "supported_languages": null}, "macro.dbt.set_sql_header": {"name": "set_sql_header", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.set_sql_header", "macro_sql": "{% macro set_sql_header(config) -%}\n {{ config.set('sql_header', caller()) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2659755, "supported_languages": null}, "macro.dbt.should_full_refresh": {"name": "should_full_refresh", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.should_full_refresh", "macro_sql": "{% macro should_full_refresh() %}\n {% set config_full_refresh = config.get('full_refresh') %}\n {% if config_full_refresh is none %}\n {% set config_full_refresh = flags.FULL_REFRESH %}\n {% endif %}\n {% do return(config_full_refresh) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.266479, "supported_languages": null}, "macro.dbt.should_store_failures": {"name": "should_store_failures", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.should_store_failures", "macro_sql": "{% macro should_store_failures() %}\n {% set config_store_failures = config.get('store_failures') %}\n {% if config_store_failures is none %}\n {% set config_store_failures = flags.STORE_FAILURES %}\n {% endif %}\n {% do return(config_store_failures) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2669785, "supported_languages": null}, "macro.dbt.materialization_function_default": {"name": "materialization_function_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/function.sql", "original_file_path": "macros/materializations/functions/function.sql", "unique_id": "macro.dbt.materialization_function_default", "macro_sql": "{% materialization function, default, supported_languages=['sql', 'python', 'javascript'] %}\n {% set existing_relation = load_cached_relation(this) %}\n {% set target_relation = this.incorporate(type=this.Function) %}\n\n {{ run_hooks(pre_hooks) }}\n\n {% set function_config = this.get_function_config(model) %}\n {% set macro_name = this.get_function_macro_name(function_config) %}\n\n {# Doing this aliasing of adapter.dispatch is a hacky way to disable the static analysis of actually calling adapter.dispatch #}\n {# This is necessary because the static analysis breaks being able to dynamically pass a macro_name #}\n {% set _dispatch = adapter.dispatch %}\n\n {% set build_sql = _dispatch(macro_name, 'dbt')(target_relation) %}\n {{ function_execute_build_sql(build_sql, existing_relation, target_relation) }}\n {{ run_hooks(post_hooks) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.run_hooks", "macro.dbt.function_execute_build_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2685595, "supported_languages": ["sql", "python", "javascript"]}, "macro.dbt.scalar_function_sql": {"name": "scalar_function_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_sql", "macro_sql": "{% macro scalar_function_sql(target_relation) %}\n {{ return(adapter.dispatch('scalar_function_sql', 'dbt')(target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2700012, "supported_languages": null}, "macro.dbt.default__scalar_function_sql": {"name": "default__scalar_function_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_sql", "macro_sql": "{% macro default__scalar_function_sql(target_relation) %}\n {{ scalar_function_create_replace_signature_sql(target_relation) }}\n {{ scalar_function_body_sql() }};\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.scalar_function_create_replace_signature_sql", "macro.dbt.scalar_function_body_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2702608, "supported_languages": null}, "macro.dbt.scalar_function_create_replace_signature_sql": {"name": "scalar_function_create_replace_signature_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_create_replace_signature_sql", "macro_sql": "{% macro scalar_function_create_replace_signature_sql(target_relation) %}\n {{ return(adapter.dispatch('scalar_function_create_replace_signature_sql', 'dbt')(target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_create_replace_signature_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2705662, "supported_languages": null}, "macro.dbt.default__scalar_function_create_replace_signature_sql": {"name": "default__scalar_function_create_replace_signature_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_create_replace_signature_sql", "macro_sql": "{% macro default__scalar_function_create_replace_signature_sql(target_relation) %}\n CREATE OR REPLACE FUNCTION {{ target_relation.render() }} ({{ formatted_scalar_function_args_sql()}})\n RETURNS {{ model.returns.data_type }}\n {{ scalar_function_volatility_sql() }}\n AS\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.formatted_scalar_function_args_sql", "macro.dbt.scalar_function_volatility_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2709444, "supported_languages": null}, "macro.dbt.formatted_scalar_function_args_sql": {"name": "formatted_scalar_function_args_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.formatted_scalar_function_args_sql", "macro_sql": "{% macro formatted_scalar_function_args_sql() %}\n {{ return(adapter.dispatch('formatted_scalar_function_args_sql', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__formatted_scalar_function_args_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2712228, "supported_languages": null}, "macro.dbt.formatted_scalar_function_args_javascript": {"name": "formatted_scalar_function_args_javascript", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.formatted_scalar_function_args_javascript", "macro_sql": "{% macro formatted_scalar_function_args_javascript() %}\n {{ return(adapter.dispatch('formatted_scalar_function_args_javascript', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__formatted_scalar_function_args_javascript"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2714922, "supported_languages": null}, "macro.dbt.default__formatted_scalar_function_args_sql": {"name": "default__formatted_scalar_function_args_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__formatted_scalar_function_args_sql", "macro_sql": "{% macro default__formatted_scalar_function_args_sql() %}\n {% set args = [] %}\n {% for arg in model.arguments -%}\n {%- do args.append(arg.name ~ ' ' ~ arg.data_type) -%}\n {%- endfor %}\n {{ args | join(', ') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2720447, "supported_languages": null}, "macro.dbt.default__formatted_scalar_function_args_javascript": {"name": "default__formatted_scalar_function_args_javascript", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__formatted_scalar_function_args_javascript", "macro_sql": "{% macro default__formatted_scalar_function_args_javascript() %}\n {% set msg = \"formatted_scalar_function_args_javascript not implemented for adapter \" ~ adapter.type() %}\n {% do exceptions.raise_compiler_error(msg) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2725177, "supported_languages": null}, "macro.dbt.scalar_function_body_sql": {"name": "scalar_function_body_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_body_sql", "macro_sql": "{% macro scalar_function_body_sql() %}\n {{ return(adapter.dispatch('scalar_function_body_sql', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_body_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2728229, "supported_languages": null}, "macro.dbt.default__scalar_function_body_sql": {"name": "default__scalar_function_body_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_body_sql", "macro_sql": "{% macro default__scalar_function_body_sql() %}\n $$\n {{ model.compiled_code }}\n $$ LANGUAGE SQL\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2730048, "supported_languages": null}, "macro.dbt.scalar_function_volatility_sql": {"name": "scalar_function_volatility_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_volatility_sql", "macro_sql": "{% macro scalar_function_volatility_sql() %}\n {{ return(adapter.dispatch('scalar_function_volatility_sql', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_volatility_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2732747, "supported_languages": null}, "macro.dbt.scalar_function_volatility_javascript": {"name": "scalar_function_volatility_javascript", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_volatility_javascript", "macro_sql": "{% macro scalar_function_volatility_javascript() %}\n {{ return(adapter.dispatch('scalar_function_volatility_javascript', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_volatility_javascript"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2735517, "supported_languages": null}, "macro.dbt.default__scalar_function_volatility_javascript": {"name": "default__scalar_function_volatility_javascript", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_volatility_javascript", "macro_sql": "{% macro default__scalar_function_volatility_javascript() %}\n {% set volatility = model.config.get('volatility') %}\n {% if volatility != none %}\n {% set msg = \"Volatility is not supported by \" ~ adapter.type() ~ \" in javascript UDF and will be ignored\" %}\n {% do exceptions.warn(msg) %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2741623, "supported_languages": null}, "macro.dbt.default__scalar_function_volatility_sql": {"name": "default__scalar_function_volatility_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_volatility_sql", "macro_sql": "{% macro default__scalar_function_volatility_sql() %}\n {% set volatility = model.config.get('volatility') %}\n {% if volatility == 'deterministic' %}\n IMMUTABLE\n {% elif volatility == 'stable' %}\n STABLE\n {% elif volatility == 'non-deterministic' %}\n VOLATILE\n {% elif volatility != none %}\n {# This shouldn't happen unless a new volatility is invented #}\n {% do unsupported_volatility_warning(volatility) %}\n {% endif %}\n {# If no volatility is set, don't add anything and let the data warehouse default it #}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.unsupported_volatility_warning"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2748554, "supported_languages": null}, "macro.dbt.unsupported_volatility_warning": {"name": "unsupported_volatility_warning", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.unsupported_volatility_warning", "macro_sql": "{% macro unsupported_volatility_warning(volatility) %}\n {{ return(adapter.dispatch('unsupported_volatility_warning', 'dbt')(volatility)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__unsupported_volatility_warning"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2751746, "supported_languages": null}, "macro.dbt.default__unsupported_volatility_warning": {"name": "default__unsupported_volatility_warning", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__unsupported_volatility_warning", "macro_sql": "{% macro default__unsupported_volatility_warning(volatility) %}\n {% set msg = \"Found `\" ~ volatility ~ \"` volatility specified on function `\" ~ model.name ~ \"`. This volatility is not supported by \" ~ adapter.type() ~ \", and will be ignored\" %}\n {% do exceptions.warn(msg) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.275608, "supported_languages": null}, "macro.dbt.function_execute_build_sql": {"name": "function_execute_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/helpers.sql", "original_file_path": "macros/materializations/functions/helpers.sql", "unique_id": "macro.dbt.function_execute_build_sql", "macro_sql": "{% macro function_execute_build_sql(build_sql, existing_relation, target_relation) %}\n {{ return(adapter.dispatch('function_execute_build_sql', 'dbt')(build_sql, existing_relation, target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__function_execute_build_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2762616, "supported_languages": null}, "macro.dbt.default__function_execute_build_sql": {"name": "default__function_execute_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/helpers.sql", "original_file_path": "macros/materializations/functions/helpers.sql", "unique_id": "macro.dbt.default__function_execute_build_sql", "macro_sql": "{% macro default__function_execute_build_sql(build_sql, existing_relation, target_relation) %}\n\n {% set grant_config = config.get('grants') %}\n\n {% call statement(name=\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ adapter.commit() }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.277143, "supported_languages": null}, "macro.dbt.get_aggregate_function_create_replace_signature": {"name": "get_aggregate_function_create_replace_signature", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_aggregate_function_create_replace_signature", "macro_sql": "{% macro get_aggregate_function_create_replace_signature(target_relation) %}\n {{ return(adapter.dispatch('get_aggregate_function_create_replace_signature', 'dbt')(target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_aggregate_function_create_replace_signature"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2782638, "supported_languages": null}, "macro.dbt.default__get_aggregate_function_create_replace_signature": {"name": "default__get_aggregate_function_create_replace_signature", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_aggregate_function_create_replace_signature", "macro_sql": "{% macro default__get_aggregate_function_create_replace_signature(target_relation) %}\n CREATE OR REPLACE AGGREGATE FUNCTION {{ target_relation.render() }} ({{ get_formatted_aggregate_function_args()}})\n RETURNS {{ model.returns.data_type }}\n {{ get_function_language_specifier() }}\n {{ get_aggregate_function_volatility_specifier() }}\n {% if model.get('language') == 'python' %}\n {{ get_function_python_options() }}\n {% endif %}\n AS\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_formatted_aggregate_function_args", "macro.dbt.get_function_language_specifier", "macro.dbt.get_aggregate_function_volatility_specifier", "macro.dbt.get_function_python_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2788863, "supported_languages": null}, "macro.dbt.get_formatted_aggregate_function_args": {"name": "get_formatted_aggregate_function_args", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_formatted_aggregate_function_args", "macro_sql": "{% macro get_formatted_aggregate_function_args() %}\n {{ return(adapter.dispatch('get_formatted_aggregate_function_args', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_formatted_aggregate_function_args"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2791698, "supported_languages": null}, "macro.dbt.default__get_formatted_aggregate_function_args": {"name": "default__get_formatted_aggregate_function_args", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_formatted_aggregate_function_args", "macro_sql": "{% macro default__get_formatted_aggregate_function_args() %}\n {# conveniently we can reuse the sql scalar function args #}\n {{ formatted_scalar_function_args_sql() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.formatted_scalar_function_args_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2793603, "supported_languages": null}, "macro.dbt.get_function_language_specifier": {"name": "get_function_language_specifier", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_function_language_specifier", "macro_sql": "{% macro get_function_language_specifier() %}\n {{ return(adapter.dispatch('get_function_language_specifier', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_function_language_specifier"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2796392, "supported_languages": null}, "macro.dbt.default__get_function_language_specifier": {"name": "default__get_function_language_specifier", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_function_language_specifier", "macro_sql": "{% macro default__get_function_language_specifier() %}\n {% set language = model.get('language') %}\n {% if language == 'sql' %}\n {# generally you dont need to specify the language for sql functions #}\n {% elif language == 'python' %}\n LANGUAGE PYTHON\n {% elif language == 'javascript' %}\n LANGUAGE js\n {% else %}\n {{ 'LANGUAGE ' ~ language.upper() }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2803705, "supported_languages": null}, "macro.dbt.get_aggregate_function_volatility_specifier": {"name": "get_aggregate_function_volatility_specifier", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_aggregate_function_volatility_specifier", "macro_sql": "{% macro get_aggregate_function_volatility_specifier() %}\n {{ return(adapter.dispatch('get_aggregate_function_volatility_specifier', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_aggregate_function_volatility_specifier"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2806697, "supported_languages": null}, "macro.dbt.default__get_aggregate_function_volatility_specifier": {"name": "default__get_aggregate_function_volatility_specifier", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_aggregate_function_volatility_specifier", "macro_sql": "{% macro default__get_aggregate_function_volatility_specifier() %}\n {{ scalar_function_volatility_sql() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.scalar_function_volatility_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2808487, "supported_languages": null}, "macro.dbt.get_function_python_options": {"name": "get_function_python_options", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_function_python_options", "macro_sql": "{% macro get_function_python_options() %}\n {{ return(adapter.dispatch('get_function_python_options', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_function_python_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2811139, "supported_languages": null}, "macro.dbt.default__get_function_python_options": {"name": "default__get_function_python_options", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_function_python_options", "macro_sql": "{% macro default__get_function_python_options() %}\n RUNTIME_VERSION = '{{ model.config.get('runtime_version') }}'\n HANDLER = '{{ model.config.get('entry_point') }}'\n {% set packages = model.config.get('packages', []) %}\n {% if packages %}\n PACKAGES = ('{{ packages | join(\"','\") }}')\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2817314, "supported_languages": null}, "macro.dbt.create_csv_table": {"name": "create_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.create_csv_table", "macro_sql": "{% macro create_csv_table(model, agate_table) -%}\n {{ adapter.dispatch('create_csv_table', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2833753, "supported_languages": null}, "macro.dbt.default__create_csv_table": {"name": "default__create_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__create_csv_table", "macro_sql": "{% macro default__create_csv_table(model, agate_table) %}\n {%- set column_override = model['config'].get('column_types', {}) -%}\n {%- set quote_seed_column = model['config'].get('quote_columns', None) -%}\n\n {% set sql %}\n create table {{ this.render() }} (\n {%- for col_name in agate_table.column_names -%}\n {%- set inferred_type = adapter.convert_type(agate_table, loop.index0) -%}\n {%- set type = column_override.get(col_name, inferred_type) -%}\n {%- set column_name = (col_name | string) -%}\n {{ adapter.quote_seed_column(column_name, quote_seed_column) }} {{ type }} {%- if not loop.last -%}, {%- endif -%}\n {%- endfor -%}\n )\n {% endset %}\n\n {% call statement('_') -%}\n {{ sql }}\n {%- endcall %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2848694, "supported_languages": null}, "macro.dbt.reset_csv_table": {"name": "reset_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.reset_csv_table", "macro_sql": "{% macro reset_csv_table(model, full_refresh, old_relation, agate_table) -%}\n {{ adapter.dispatch('reset_csv_table', 'dbt')(model, full_refresh, old_relation, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__reset_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.285263, "supported_languages": null}, "macro.dbt.default__reset_csv_table": {"name": "default__reset_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__reset_csv_table", "macro_sql": "{% macro default__reset_csv_table(model, full_refresh, old_relation, agate_table) %}\n {% set sql = \"\" %}\n {% if full_refresh %}\n {{ adapter.drop_relation(old_relation) }}\n {% set sql = create_csv_table(model, agate_table) %}\n {% else %}\n {{ adapter.truncate_relation(old_relation) }}\n {% set sql = \"truncate table \" ~ old_relation.render() %}\n {% endif %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.286065, "supported_languages": null}, "macro.dbt.get_csv_sql": {"name": "get_csv_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_csv_sql", "macro_sql": "{% macro get_csv_sql(create_or_truncate_sql, insert_sql) %}\n {{ adapter.dispatch('get_csv_sql', 'dbt')(create_or_truncate_sql, insert_sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_csv_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.286373, "supported_languages": null}, "macro.dbt.default__get_csv_sql": {"name": "default__get_csv_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_csv_sql", "macro_sql": "{% macro default__get_csv_sql(create_or_truncate_sql, insert_sql) %}\n {{ create_or_truncate_sql }};\n -- dbt seed --\n {{ insert_sql }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.286592, "supported_languages": null}, "macro.dbt.get_binding_char": {"name": "get_binding_char", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_binding_char", "macro_sql": "{% macro get_binding_char() -%}\n {{ adapter.dispatch('get_binding_char', 'dbt')() }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.286833, "supported_languages": null}, "macro.dbt.default__get_binding_char": {"name": "default__get_binding_char", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_binding_char", "macro_sql": "{% macro default__get_binding_char() %}\n {{ return('%s') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2870252, "supported_languages": null}, "macro.dbt.get_batch_size": {"name": "get_batch_size", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_batch_size", "macro_sql": "{% macro get_batch_size() -%}\n {{ return(adapter.dispatch('get_batch_size', 'dbt')()) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_batch_size"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2872927, "supported_languages": null}, "macro.dbt.default__get_batch_size": {"name": "default__get_batch_size", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_batch_size", "macro_sql": "{% macro default__get_batch_size() %}\n {{ return(10000) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2874844, "supported_languages": null}, "macro.dbt.get_seed_column_quoted_csv": {"name": "get_seed_column_quoted_csv", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_seed_column_quoted_csv", "macro_sql": "{% macro get_seed_column_quoted_csv(model, column_names) %}\n {%- set quote_seed_column = model['config'].get('quote_columns', None) -%}\n {% set quoted = [] %}\n {% for col in column_names -%}\n {%- do quoted.append(adapter.quote_seed_column(col, quote_seed_column)) -%}\n {%- endfor %}\n\n {%- set dest_cols_csv = quoted | join(', ') -%}\n {{ return(dest_cols_csv) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2882822, "supported_languages": null}, "macro.dbt.load_csv_rows": {"name": "load_csv_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.load_csv_rows", "macro_sql": "{% macro load_csv_rows(model, agate_table) -%}\n {{ adapter.dispatch('load_csv_rows', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__load_csv_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2887287, "supported_languages": null}, "macro.dbt.default__load_csv_rows": {"name": "default__load_csv_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__load_csv_rows", "macro_sql": "{% macro default__load_csv_rows(model, agate_table) %}\n\n {% set batch_size = get_batch_size() %}\n\n {% set cols_sql = get_seed_column_quoted_csv(model, agate_table.column_names) %}\n {% set bindings = [] %}\n\n {% set statements = [] %}\n\n {% for chunk in agate_table.rows | batch(batch_size) %}\n {% set bindings = [] %}\n\n {% for row in chunk %}\n {% do bindings.extend(row) %}\n {% endfor %}\n\n {% set sql %}\n insert into {{ this.render() }} ({{ cols_sql }}) values\n {% for row in chunk -%}\n ({%- for column in agate_table.column_names -%}\n {{ get_binding_char() }}\n {%- if not loop.last%},{%- endif %}\n {%- endfor -%})\n {%- if not loop.last%},{%- endif %}\n {%- endfor %}\n {% endset %}\n\n {% do adapter.add_query(sql, bindings=bindings, abridge_sql_log=True) %}\n\n {% if loop.index0 == 0 %}\n {% do statements.append(sql) %}\n {% endif %}\n {% endfor %}\n\n {# Return SQL so we can render it out into the compiled files #}\n {{ return(statements[0]) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_batch_size", "macro.dbt.get_seed_column_quoted_csv", "macro.dbt.get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2907357, "supported_languages": null}, "macro.dbt.materialization_seed_default": {"name": "materialization_seed_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/seed.sql", "original_file_path": "macros/materializations/seeds/seed.sql", "unique_id": "macro.dbt.materialization_seed_default", "macro_sql": "{% materialization seed, default %}\n\n {%- set identifier = model['alias'] -%}\n {%- set full_refresh_mode = (should_full_refresh()) -%}\n\n {%- set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) -%}\n\n {%- set exists_as_table = (old_relation is not none and old_relation.is_table) -%}\n {%- set exists_as_view = (old_relation is not none and old_relation.is_view) -%}\n\n {%- set grant_config = config.get('grants') -%}\n {%- set agate_table = load_agate_table() -%}\n -- grab current tables grants config for comparison later on\n\n {%- do store_result('agate_table', response='OK', agate_table=agate_table) -%}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% set create_table_sql = \"\" %}\n {% if exists_as_view %}\n {{ exceptions.raise_compiler_error(\"Cannot seed to '{}', it is a view\".format(old_relation.render())) }}\n {% elif exists_as_table %}\n {% set create_table_sql = reset_csv_table(model, full_refresh_mode, old_relation, agate_table) %}\n {% else %}\n {% set create_table_sql = create_csv_table(model, agate_table) %}\n {% endif %}\n\n {% set code = 'CREATE' if full_refresh_mode else 'INSERT' %}\n {% set rows_affected = (agate_table.rows | length) %}\n {% set sql = \"\" %}\n {% if rows_affected > 0 %}\n {% set sql = load_csv_rows(model, agate_table) %}\n {% endif %}\n\n {% call noop_statement('main', code ~ ' ' ~ rows_affected, code, rows_affected) %}\n {{ get_csv_sql(create_table_sql, sql) }};\n {% endcall %}\n\n {% set target_relation = this.incorporate(type='table') %}\n\n {% set should_revoke = should_revoke(old_relation, full_refresh_mode) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if full_refresh_mode or not exists_as_table %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n -- `COMMIT` happens here\n {{ adapter.commit() }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh", "macro.dbt.run_hooks", "macro.dbt.reset_csv_table", "macro.dbt.create_csv_table", "macro.dbt.load_csv_rows", "macro.dbt.noop_statement", "macro.dbt.get_csv_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.295184, "supported_languages": ["sql"]}, "macro.dbt.snapshot_merge_sql": {"name": "snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "unique_id": "macro.dbt.snapshot_merge_sql", "macro_sql": "{% macro snapshot_merge_sql(target, source, insert_cols) -%}\n {{ adapter.dispatch('snapshot_merge_sql', 'dbt')(target, source, insert_cols) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.2959788, "supported_languages": null}, "macro.dbt.default__snapshot_merge_sql": {"name": "default__snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "unique_id": "macro.dbt.default__snapshot_merge_sql", "macro_sql": "{% macro default__snapshot_merge_sql(target, source, insert_cols) -%}\n {%- set insert_cols_csv = insert_cols | join(', ') -%}\n\n {%- set columns = config.get(\"snapshot_table_column_names\") or get_snapshot_table_column_names() -%}\n\n merge into {{ target.render() }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on DBT_INTERNAL_SOURCE.{{ columns.dbt_scd_id }} = DBT_INTERNAL_DEST.{{ columns.dbt_scd_id }}\n\n when matched\n {% if config.get(\"dbt_valid_to_current\") %}\n\t{% set source_unique_key = (\"DBT_INTERNAL_DEST.\" ~ columns.dbt_valid_to) | trim %}\n\t{% set target_unique_key = config.get('dbt_valid_to_current') | trim %}\n\tand ({{ equals(source_unique_key, target_unique_key) }} or {{ source_unique_key }} is null)\n\n {% else %}\n and DBT_INTERNAL_DEST.{{ columns.dbt_valid_to }} is null\n {% endif %}\n and DBT_INTERNAL_SOURCE.dbt_change_type in ('update', 'delete')\n then update\n set {{ columns.dbt_valid_to }} = DBT_INTERNAL_SOURCE.{{ columns.dbt_valid_to }}\n\n when not matched\n and DBT_INTERNAL_SOURCE.dbt_change_type = 'insert'\n then insert ({{ insert_cols_csv }})\n values ({{ insert_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.equals"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.297362, "supported_languages": null}, "macro.dbt.materialization_snapshot_default": {"name": "materialization_snapshot_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot.sql", "original_file_path": "macros/materializations/snapshots/snapshot.sql", "unique_id": "macro.dbt.materialization_snapshot_default", "macro_sql": "{% materialization snapshot, default %}\n\n {%- set target_table = model.get('alias', model.get('name')) -%}\n\n {%- set strategy_name = config.get('strategy') -%}\n {%- set unique_key = config.get('unique_key') %}\n -- grab current tables grants config for comparision later on\n {%- set grant_config = config.get('grants') -%}\n\n {% set target_relation_exists, target_relation = get_or_create_relation(\n database=model.database,\n schema=model.schema,\n identifier=target_table,\n type='table') -%}\n\n {%- if not target_relation.is_table -%}\n {% do exceptions.relation_wrong_type(target_relation, 'table') %}\n {%- endif -%}\n\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set strategy_macro = strategy_dispatch(strategy_name) %}\n {# The model['config'] parameter below is no longer used, but passing anyway for compatibility #}\n {# It was a dictionary of config, instead of the config object from the context #}\n {% set strategy = strategy_macro(model, \"snapshotted_data\", \"source_data\", model['config'], target_relation_exists) %}\n\n {% if not target_relation_exists %}\n\n {% set build_sql = build_snapshot_table(strategy, model['compiled_code']) %}\n {% set build_or_select_sql = build_sql %}\n {% set final_sql = create_table_as(False, target_relation, build_sql) %}\n\n {% else %}\n\n {% set columns = config.get(\"snapshot_table_column_names\") or get_snapshot_table_column_names() %}\n\n {{ adapter.assert_valid_snapshot_target_given_strategy(target_relation, columns, strategy) }}\n\n {% set build_or_select_sql = snapshot_staging_table(strategy, sql, target_relation) %}\n {% set staging_table = build_snapshot_staging_table(strategy, sql, target_relation) %}\n\n -- this may no-op if the database does not require column expansion\n {% do adapter.expand_target_column_types(from_relation=staging_table,\n to_relation=target_relation) %}\n\n {% set remove_columns = ['dbt_change_type', 'DBT_CHANGE_TYPE', 'dbt_unique_key', 'DBT_UNIQUE_KEY'] %}\n {% if unique_key | is_list %}\n {% for key in strategy.unique_key %}\n {{ remove_columns.append('dbt_unique_key_' + loop.index|string) }}\n {{ remove_columns.append('DBT_UNIQUE_KEY_' + loop.index|string) }}\n {% endfor %}\n {% endif %}\n\n {% set missing_columns = adapter.get_missing_columns(staging_table, target_relation)\n | rejectattr('name', 'in', remove_columns)\n | list %}\n\n {% do create_columns(target_relation, missing_columns) %}\n\n {% set source_columns = adapter.get_columns_in_relation(staging_table)\n | rejectattr('name', 'in', remove_columns)\n | list %}\n\n {% set quoted_source_columns = [] %}\n {% for column in source_columns %}\n {% do quoted_source_columns.append(adapter.quote(column.name)) %}\n {% endfor %}\n\n {% set final_sql = snapshot_merge_sql(\n target = target_relation,\n source = staging_table,\n insert_cols = quoted_source_columns\n )\n %}\n\n {% endif %}\n\n\n {{ check_time_data_types(build_or_select_sql) }}\n\n {% call statement('main') %}\n {{ final_sql }}\n {% endcall %}\n\n {% set should_revoke = should_revoke(target_relation_exists, full_refresh_mode=False) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if not target_relation_exists %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n {% if staging_table is defined %}\n {% do post_snapshot(staging_table) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.get_or_create_relation", "macro.dbt.run_hooks", "macro.dbt.strategy_dispatch", "macro.dbt.build_snapshot_table", "macro.dbt.create_table_as", "macro.dbt.get_snapshot_table_column_names", "macro.dbt.snapshot_staging_table", "macro.dbt.build_snapshot_staging_table", "macro.dbt.create_columns", "macro.dbt.snapshot_merge_sql", "macro.dbt.check_time_data_types", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes", "macro.dbt.post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.304125, "supported_languages": ["sql"]}, "macro.dbt.create_columns": {"name": "create_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.create_columns", "macro_sql": "{% macro create_columns(relation, columns) %}\n {{ adapter.dispatch('create_columns', 'dbt')(relation, columns) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3079305, "supported_languages": null}, "macro.dbt.default__create_columns": {"name": "default__create_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__create_columns", "macro_sql": "{% macro default__create_columns(relation, columns) %}\n {% for column in columns %}\n {% call statement() %}\n alter table {{ relation.render() }} add column {{ adapter.quote(column.name) }} {{ column.expanded_data_type }};\n {% endcall %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3084838, "supported_languages": null}, "macro.dbt.post_snapshot": {"name": "post_snapshot", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.post_snapshot", "macro_sql": "{% macro post_snapshot(staging_relation) %}\n {{ adapter.dispatch('post_snapshot', 'dbt')(staging_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3087769, "supported_languages": null}, "macro.dbt.default__post_snapshot": {"name": "default__post_snapshot", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__post_snapshot", "macro_sql": "{% macro default__post_snapshot(staging_relation) %}\n {# no-op #}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3089314, "supported_languages": null}, "macro.dbt.get_true_sql": {"name": "get_true_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_true_sql", "macro_sql": "{% macro get_true_sql() %}\n {{ adapter.dispatch('get_true_sql', 'dbt')() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_true_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3091674, "supported_languages": null}, "macro.dbt.default__get_true_sql": {"name": "default__get_true_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__get_true_sql", "macro_sql": "{% macro default__get_true_sql() %}\n {{ return('TRUE') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3093584, "supported_languages": null}, "macro.dbt.snapshot_staging_table": {"name": "snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.snapshot_staging_table", "macro_sql": "{% macro snapshot_staging_table(strategy, source_sql, target_relation) -%}\n {{ adapter.dispatch('snapshot_staging_table', 'dbt')(strategy, source_sql, target_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__snapshot_staging_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3097405, "supported_languages": null}, "macro.dbt.get_snapshot_table_column_names": {"name": "get_snapshot_table_column_names", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_snapshot_table_column_names", "macro_sql": "{% macro get_snapshot_table_column_names() %}\n {{ return({'dbt_valid_to': 'dbt_valid_to', 'dbt_valid_from': 'dbt_valid_from', 'dbt_scd_id': 'dbt_scd_id', 'dbt_updated_at': 'dbt_updated_at', 'dbt_is_deleted': 'dbt_is_deleted'}) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3101666, "supported_languages": null}, "macro.dbt.default__snapshot_staging_table": {"name": "default__snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__snapshot_staging_table", "macro_sql": "{% macro default__snapshot_staging_table(strategy, source_sql, target_relation) -%}\n {% set columns = config.get('snapshot_table_column_names') or get_snapshot_table_column_names() %}\n {% if strategy.hard_deletes == 'new_record' %}\n {% set new_scd_id = snapshot_hash_arguments([columns.dbt_scd_id, snapshot_get_time()]) %}\n {% endif %}\n with snapshot_query as (\n\n {{ source_sql }}\n\n ),\n\n snapshotted_data as (\n\n select *, {{ unique_key_fields(strategy.unique_key) }}\n from {{ target_relation }}\n where\n {% if config.get('dbt_valid_to_current') %}\n\t\t{% set source_unique_key = columns.dbt_valid_to | trim %}\n\t\t{% set target_unique_key = config.get('dbt_valid_to_current') | trim %}\n\n\t\t{# The exact equals semantics between NULL values depends on the current behavior flag set. Also, update records if the source field is null #}\n ( {{ equals(source_unique_key, target_unique_key) }} or {{ source_unique_key }} is null )\n {% else %}\n {{ columns.dbt_valid_to }} is null\n {% endif %}\n\n ),\n\n insertions_source_data as (\n\n select *, {{ unique_key_fields(strategy.unique_key) }},\n {{ strategy.updated_at }} as {{ columns.dbt_updated_at }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_from }},\n {{ get_dbt_valid_to_current(strategy, columns) }},\n {{ strategy.scd_id }} as {{ columns.dbt_scd_id }}\n\n from snapshot_query\n ),\n\n updates_source_data as (\n\n select *, {{ unique_key_fields(strategy.unique_key) }},\n {{ strategy.updated_at }} as {{ columns.dbt_updated_at }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_from }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_to }}\n\n from snapshot_query\n ),\n\n {%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}\n\n deletes_source_data as (\n\n select *, {{ unique_key_fields(strategy.unique_key) }}\n from snapshot_query\n ),\n {% endif %}\n\n insertions as (\n\n select\n 'insert' as dbt_change_type,\n source_data.*\n {%- if strategy.hard_deletes == 'new_record' -%}\n ,'False' as {{ columns.dbt_is_deleted }}\n {%- endif %}\n\n from insertions_source_data as source_data\n left outer join snapshotted_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where {{ unique_key_is_null(strategy.unique_key, \"snapshotted_data\") }}\n or ({{ unique_key_is_not_null(strategy.unique_key, \"snapshotted_data\") }} and (\n {{ strategy.row_changed }} {%- if strategy.hard_deletes == 'new_record' -%} or snapshotted_data.{{ columns.dbt_is_deleted }} = 'True' {% endif %}\n )\n\n )\n\n ),\n\n updates as (\n\n select\n 'update' as dbt_change_type,\n source_data.*,\n snapshotted_data.{{ columns.dbt_scd_id }}\n {%- if strategy.hard_deletes == 'new_record' -%}\n , snapshotted_data.{{ columns.dbt_is_deleted }}\n {%- endif %}\n\n from updates_source_data as source_data\n join snapshotted_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where (\n {{ strategy.row_changed }} {%- if strategy.hard_deletes == 'new_record' -%} or snapshotted_data.{{ columns.dbt_is_deleted }} = 'True' {% endif %}\n )\n )\n\n {%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}\n ,\n deletes as (\n\n select\n 'delete' as dbt_change_type,\n source_data.*,\n {{ snapshot_get_time() }} as {{ columns.dbt_valid_from }},\n {{ snapshot_get_time() }} as {{ columns.dbt_updated_at }},\n {{ snapshot_get_time() }} as {{ columns.dbt_valid_to }},\n snapshotted_data.{{ columns.dbt_scd_id }}\n {%- if strategy.hard_deletes == 'new_record' -%}\n , snapshotted_data.{{ columns.dbt_is_deleted }}\n {%- endif %}\n from snapshotted_data\n left join deletes_source_data as source_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where {{ unique_key_is_null(strategy.unique_key, \"source_data\") }}\n\n {%- if strategy.hard_deletes == 'new_record' %}\n and not (\n --avoid updating the record's valid_to if the latest entry is marked as deleted\n snapshotted_data.{{ columns.dbt_is_deleted }} = 'True'\n and\n {% if config.get('dbt_valid_to_current') -%}\n snapshotted_data.{{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }}\n {%- else -%}\n snapshotted_data.{{ columns.dbt_valid_to }} is null\n {%- endif %}\n )\n {%- endif %}\n )\n {%- endif %}\n\n {%- if strategy.hard_deletes == 'new_record' %}\n {% set snapshotted_cols = get_list_of_column_names(get_columns_in_relation(target_relation)) %}\n {% set source_sql_cols = get_column_schema_from_query(source_sql) %}\n ,\n deletion_records as (\n\n select\n 'insert' as dbt_change_type,\n {#/*\n If a column has been added to the source it won't yet exist in the\n snapshotted table so we insert a null value as a placeholder for the column.\n */#}\n {%- for col in source_sql_cols -%}\n {%- if col.name in snapshotted_cols -%}\n snapshotted_data.{{ adapter.quote(col.column) }},\n {%- else -%}\n {{ safe_cast('NULL', col.dtype) }} as {{ adapter.quote(col.column) }},\n {%- endif -%}\n {% endfor -%}\n {%- if strategy.unique_key | is_list -%}\n {%- for key in strategy.unique_key -%}\n snapshotted_data.{{ key }} as dbt_unique_key_{{ loop.index }},\n {% endfor -%}\n {%- else -%}\n snapshotted_data.dbt_unique_key as dbt_unique_key,\n {% endif -%}\n {{ snapshot_get_time() }} as {{ columns.dbt_valid_from }},\n {{ snapshot_get_time() }} as {{ columns.dbt_updated_at }},\n snapshotted_data.{{ columns.dbt_valid_to }} as {{ columns.dbt_valid_to }},\n {{ new_scd_id }} as {{ columns.dbt_scd_id }},\n 'True' as {{ columns.dbt_is_deleted }}\n from snapshotted_data\n left join deletes_source_data as source_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where {{ unique_key_is_null(strategy.unique_key, \"source_data\") }}\n and not (\n --avoid inserting a new record if the latest one is marked as deleted\n snapshotted_data.{{ columns.dbt_is_deleted }} = 'True'\n and\n {% if config.get('dbt_valid_to_current') -%}\n snapshotted_data.{{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }}\n {%- else -%}\n snapshotted_data.{{ columns.dbt_valid_to }} is null\n {%- endif %}\n )\n\n )\n {%- endif %}\n\n select * from insertions\n union all\n select * from updates\n {%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}\n union all\n select * from deletes\n {%- endif %}\n {%- if strategy.hard_deletes == 'new_record' %}\n union all\n select * from deletion_records\n {%- endif %}\n\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.snapshot_hash_arguments", "macro.dbt.snapshot_get_time", "macro.dbt.unique_key_fields", "macro.dbt.equals", "macro.dbt.get_dbt_valid_to_current", "macro.dbt.unique_key_join_on", "macro.dbt.unique_key_is_null", "macro.dbt.unique_key_is_not_null", "macro.dbt.get_list_of_column_names", "macro.dbt.get_columns_in_relation", "macro.dbt.get_column_schema_from_query", "macro.dbt.safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3176758, "supported_languages": null}, "macro.dbt.build_snapshot_table": {"name": "build_snapshot_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.build_snapshot_table", "macro_sql": "{% macro build_snapshot_table(strategy, sql) -%}\n {{ adapter.dispatch('build_snapshot_table', 'dbt')(strategy, sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__build_snapshot_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3181179, "supported_languages": null}, "macro.dbt.default__build_snapshot_table": {"name": "default__build_snapshot_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__build_snapshot_table", "macro_sql": "{% macro default__build_snapshot_table(strategy, sql) %}\n {% set columns = config.get('snapshot_table_column_names') or get_snapshot_table_column_names() %}\n\n select *,\n {{ strategy.scd_id }} as {{ columns.dbt_scd_id }},\n {{ strategy.updated_at }} as {{ columns.dbt_updated_at }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_from }},\n {{ get_dbt_valid_to_current(strategy, columns) }}\n {%- if strategy.hard_deletes == 'new_record' -%}\n , 'False' as {{ columns.dbt_is_deleted }}\n {% endif -%}\n from (\n {{ sql }}\n ) sbq\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.get_dbt_valid_to_current"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3189976, "supported_languages": null}, "macro.dbt.build_snapshot_staging_table": {"name": "build_snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.build_snapshot_staging_table", "macro_sql": "{% macro build_snapshot_staging_table(strategy, sql, target_relation) %}\n {% set temp_relation = make_temp_relation(target_relation) %}\n\n {% set select = snapshot_staging_table(strategy, sql, target_relation) %}\n\n {% call statement('build_snapshot_staging_relation') %}\n {{ create_table_as(True, temp_relation, select) }}\n {% endcall %}\n\n {% do return(temp_relation) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_temp_relation", "macro.dbt.snapshot_staging_table", "macro.dbt.statement", "macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.31972, "supported_languages": null}, "macro.dbt.get_updated_at_column_data_type": {"name": "get_updated_at_column_data_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_updated_at_column_data_type", "macro_sql": "{% macro get_updated_at_column_data_type(snapshot_sql) %}\n {% set snapshot_sql_column_schema = get_column_schema_from_query(snapshot_sql) %}\n {% set dbt_updated_at_data_type = null %}\n {% set ns = namespace() -%} {#-- handle for-loop scoping with a namespace --#}\n {% set ns.dbt_updated_at_data_type = null -%}\n {% for column in snapshot_sql_column_schema %}\n {% if ((column.column == 'dbt_updated_at') or (column.column == 'DBT_UPDATED_AT')) %}\n {% set ns.dbt_updated_at_data_type = column.dtype %}\n {% endif %}\n {% endfor %}\n {{ return(ns.dbt_updated_at_data_type or none) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_column_schema_from_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3207119, "supported_languages": null}, "macro.dbt.check_time_data_types": {"name": "check_time_data_types", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.check_time_data_types", "macro_sql": "{% macro check_time_data_types(sql) %}\n {% set dbt_updated_at_data_type = get_updated_at_column_data_type(sql) %}\n {% set snapshot_get_time_data_type = get_snapshot_get_time_data_type() %}\n {% if snapshot_get_time_data_type is not none and dbt_updated_at_data_type is not none and snapshot_get_time_data_type != dbt_updated_at_data_type %}\n {% if exceptions.warn_snapshot_timestamp_data_types %}\n {{ exceptions.warn_snapshot_timestamp_data_types(snapshot_get_time_data_type, dbt_updated_at_data_type) }}\n {% endif %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_updated_at_column_data_type", "macro.dbt.get_snapshot_get_time_data_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.32143, "supported_languages": null}, "macro.dbt.get_dbt_valid_to_current": {"name": "get_dbt_valid_to_current", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_dbt_valid_to_current", "macro_sql": "{% macro get_dbt_valid_to_current(strategy, columns) %}\n {% set dbt_valid_to_current = config.get('dbt_valid_to_current') or \"null\" %}\n coalesce(nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}), {{dbt_valid_to_current}})\n as {{ columns.dbt_valid_to }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3219175, "supported_languages": null}, "macro.dbt.unique_key_fields": {"name": "unique_key_fields", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.unique_key_fields", "macro_sql": "{% macro unique_key_fields(unique_key) %}\n {% if unique_key | is_list %}\n {% for key in unique_key %}\n {{ key }} as dbt_unique_key_{{ loop.index }}\n {%- if not loop.last %} , {%- endif %}\n {% endfor %}\n {% else %}\n {{ unique_key }} as dbt_unique_key\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3224797, "supported_languages": null}, "macro.dbt.unique_key_join_on": {"name": "unique_key_join_on", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.unique_key_join_on", "macro_sql": "{% macro unique_key_join_on(unique_key, identifier, from_identifier) %}\n {% if unique_key | is_list %}\n {% for key in unique_key %}\n\t {% set source_unique_key = (identifier ~ \".dbt_unique_key_\" ~ loop.index) | trim %}\n\t {% set target_unique_key = (from_identifier ~ \".dbt_unique_key_\" ~ loop.index) | trim %}\n\t {{ equals(source_unique_key, target_unique_key) }}\n {%- if not loop.last %} and {%- endif %}\n {% endfor %}\n {% else %}\n {{ identifier }}.dbt_unique_key = {{ from_identifier }}.dbt_unique_key\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.equals"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3235028, "supported_languages": null}, "macro.dbt.unique_key_is_null": {"name": "unique_key_is_null", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.unique_key_is_null", "macro_sql": "{% macro unique_key_is_null(unique_key, identifier) %}\n {% if unique_key | is_list %}\n {{ identifier }}.dbt_unique_key_1 is null\n {% else %}\n {{ identifier }}.dbt_unique_key is null\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3238866, "supported_languages": null}, "macro.dbt.unique_key_is_not_null": {"name": "unique_key_is_not_null", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.unique_key_is_not_null", "macro_sql": "{% macro unique_key_is_not_null(unique_key, identifier) %}\n {% if unique_key | is_list %}\n {{ identifier }}.dbt_unique_key_1 is not null\n {% else %}\n {{ identifier }}.dbt_unique_key is not null\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3242307, "supported_languages": null}, "macro.dbt.strategy_dispatch": {"name": "strategy_dispatch", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.strategy_dispatch", "macro_sql": "{% macro strategy_dispatch(name) -%}\n{% set original_name = name %}\n {% if '.' in name %}\n {% set package_name, name = name.split(\".\", 1) %}\n {% else %}\n {% set package_name = none %}\n {% endif %}\n\n {% if package_name is none %}\n {% set package_context = context %}\n {% elif package_name in context %}\n {% set package_context = context[package_name] %}\n {% else %}\n {% set error_msg %}\n Could not find package '{{package_name}}', called with '{{original_name}}'\n {% endset %}\n {{ exceptions.raise_compiler_error(error_msg | trim) }}\n {% endif %}\n\n {%- set search_name = 'snapshot_' ~ name ~ '_strategy' -%}\n\n {% if search_name not in package_context %}\n {% set error_msg %}\n The specified strategy macro '{{name}}' was not found in package '{{ package_name }}'\n {% endset %}\n {{ exceptions.raise_compiler_error(error_msg | trim) }}\n {% endif %}\n {{ return(package_context[search_name]) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3278704, "supported_languages": null}, "macro.dbt.snapshot_hash_arguments": {"name": "snapshot_hash_arguments", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_hash_arguments", "macro_sql": "{% macro snapshot_hash_arguments(args) -%}\n {{ adapter.dispatch('snapshot_hash_arguments', 'dbt')(args) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3281734, "supported_languages": null}, "macro.dbt.default__snapshot_hash_arguments": {"name": "default__snapshot_hash_arguments", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.default__snapshot_hash_arguments", "macro_sql": "{% macro default__snapshot_hash_arguments(args) -%}\n md5({%- for arg in args -%}\n coalesce(cast({{ arg }} as varchar ), '')\n {% if not loop.last %} || '|' || {% endif %}\n {%- endfor -%})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3285441, "supported_languages": null}, "macro.dbt.snapshot_timestamp_strategy": {"name": "snapshot_timestamp_strategy", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_timestamp_strategy", "macro_sql": "{% macro snapshot_timestamp_strategy(node, snapshotted_rel, current_rel, model_config, target_exists) %}\n {# The model_config parameter is no longer used, but is passed in anyway for compatibility. #}\n {% set primary_key = config.get('unique_key') %}\n {% set updated_at = config.get('updated_at') %}\n {% set hard_deletes = adapter.get_hard_deletes_behavior(config) %}\n {% set invalidate_hard_deletes = hard_deletes == 'invalidate' %}\n {% set columns = config.get(\"snapshot_table_column_names\") or get_snapshot_table_column_names() %}\n\n {#/*\n The snapshot relation might not have an {{ updated_at }} value if the\n snapshot strategy is changed from `check` to `timestamp`. We\n should use a dbt-created column for the comparison in the snapshot\n table instead of assuming that the user-supplied {{ updated_at }}\n will be present in the historical data.\n\n See https://github.com/dbt-labs/dbt-core/issues/2350\n */ #}\n {% set row_changed_expr -%}\n ({{ snapshotted_rel }}.{{ columns.dbt_valid_from }} < {{ current_rel }}.{{ updated_at }})\n {%- endset %}\n\n {% set scd_args = api.Relation.scd_args(primary_key, updated_at) %}\n {% set scd_id_expr = snapshot_hash_arguments(scd_args) %}\n\n {% do return({\n \"unique_key\": primary_key,\n \"updated_at\": updated_at,\n \"row_changed\": row_changed_expr,\n \"scd_id\": scd_id_expr,\n \"invalidate_hard_deletes\": invalidate_hard_deletes,\n \"hard_deletes\": hard_deletes\n }) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3303092, "supported_languages": null}, "macro.dbt.snapshot_string_as_time": {"name": "snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_string_as_time", "macro_sql": "{% macro snapshot_string_as_time(timestamp) -%}\n {{ adapter.dispatch('snapshot_string_as_time', 'dbt')(timestamp) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_string_as_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.330601, "supported_languages": null}, "macro.dbt.default__snapshot_string_as_time": {"name": "default__snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.default__snapshot_string_as_time", "macro_sql": "{% macro default__snapshot_string_as_time(timestamp) %}\n {% do exceptions.raise_not_implemented(\n 'snapshot_string_as_time macro not implemented for adapter '+adapter.type()\n ) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3309038, "supported_languages": null}, "macro.dbt.snapshot_check_all_get_existing_columns": {"name": "snapshot_check_all_get_existing_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_check_all_get_existing_columns", "macro_sql": "{% macro snapshot_check_all_get_existing_columns(node, target_exists, check_cols_config) -%}\n {%- if not target_exists -%}\n {#-- no table yet -> return whatever the query does --#}\n {{ return((false, query_columns)) }}\n {%- endif -%}\n\n {#-- handle any schema changes --#}\n {%- set target_relation = adapter.get_relation(database=node.database, schema=node.schema, identifier=node.alias) -%}\n\n {% if check_cols_config == 'all' %}\n {%- set query_columns = get_columns_in_query(node['compiled_code']) -%}\n\n {% elif check_cols_config is iterable and (check_cols_config | length) > 0 %}\n {#-- query for proper casing/quoting, to support comparison below --#}\n {%- set select_check_cols_from_target -%}\n {#-- N.B. The whitespace below is necessary to avoid edge case issue with comments --#}\n {#-- See: https://github.com/dbt-labs/dbt-core/issues/6781 --#}\n select {{ check_cols_config | join(', ') }} from (\n {{ node['compiled_code'] }}\n ) subq\n {%- endset -%}\n {% set query_columns = get_columns_in_query(select_check_cols_from_target) %}\n\n {% else %}\n {% do exceptions.raise_compiler_error(\"Invalid value for 'check_cols': \" ~ check_cols_config) %}\n {% endif %}\n\n {%- set existing_cols = adapter.get_columns_in_relation(target_relation) | map(attribute = 'name') | list -%}\n {%- set ns = namespace() -%} {#-- handle for-loop scoping with a namespace --#}\n {%- set ns.column_added = false -%}\n\n {%- set intersection = [] -%}\n {%- for col in query_columns -%}\n {%- if col in existing_cols -%}\n {%- do intersection.append(adapter.quote(col)) -%}\n {%- else -%}\n {% set ns.column_added = true %}\n {%- endif -%}\n {%- endfor -%}\n {{ return((ns.column_added, intersection)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3332121, "supported_languages": null}, "macro.dbt.snapshot_check_strategy": {"name": "snapshot_check_strategy", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_check_strategy", "macro_sql": "{% macro snapshot_check_strategy(node, snapshotted_rel, current_rel, model_config, target_exists) %}\n {# The model_config parameter is no longer used, but is passed in anyway for compatibility. #}\n {% set check_cols_config = config.get('check_cols') %}\n {% set primary_key = config.get('unique_key') %}\n {% set hard_deletes = adapter.get_hard_deletes_behavior(config) %}\n {% set invalidate_hard_deletes = hard_deletes == 'invalidate' %}\n {% set updated_at = config.get('updated_at') or snapshot_get_time() %}\n\n {% set column_added = false %}\n\n {% set column_added, check_cols = snapshot_check_all_get_existing_columns(node, target_exists, check_cols_config) %}\n\n {%- set row_changed_expr -%}\n (\n {%- if column_added -%}\n {{ get_true_sql() }}\n {%- else -%}\n {%- for col in check_cols -%}\n {{ snapshotted_rel }}.{{ col }} != {{ current_rel }}.{{ col }}\n or\n (\n (({{ snapshotted_rel }}.{{ col }} is null) and not ({{ current_rel }}.{{ col }} is null))\n or\n ((not {{ snapshotted_rel }}.{{ col }} is null) and ({{ current_rel }}.{{ col }} is null))\n )\n {%- if not loop.last %} or {% endif -%}\n {%- endfor -%}\n {%- endif -%}\n )\n {%- endset %}\n\n {% set scd_args = api.Relation.scd_args(primary_key, updated_at) %}\n {% set scd_id_expr = snapshot_hash_arguments(scd_args) %}\n\n {% do return({\n \"unique_key\": primary_key,\n \"updated_at\": updated_at,\n \"row_changed\": row_changed_expr,\n \"scd_id\": scd_id_expr,\n \"invalidate_hard_deletes\": invalidate_hard_deletes,\n \"hard_deletes\": hard_deletes\n }) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_get_time", "macro.dbt.snapshot_check_all_get_existing_columns", "macro.dbt.get_true_sql", "macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3355958, "supported_languages": null}, "macro.dbt.materialization_test_default": {"name": "materialization_test_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/test.sql", "original_file_path": "macros/materializations/tests/test.sql", "unique_id": "macro.dbt.materialization_test_default", "macro_sql": "{%- materialization test, default -%}\n\n {% set relations = [] %}\n {% set limit = config.get('limit') %}\n {% set sql_header = config.get('sql_header') if flags.REQUIRE_SQL_HEADER_IN_TEST_CONFIGS else none %}\n\n {% set sql_with_limit %}\n {{ get_limit_subquery_sql(sql, limit) }}\n {% endset %}\n\n {% if should_store_failures() %}\n\n {% set identifier = model['alias'] %}\n {% set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) %}\n\n {% set store_failures_as = config.get('store_failures_as') %}\n -- if `--store-failures` is invoked via command line and `store_failures_as` is not set,\n -- config.get('store_failures_as', 'table') returns None, not 'table'\n {% if store_failures_as == none %}{% set store_failures_as = 'table' %}{% endif %}\n {% if store_failures_as not in ['table', 'view'] %}\n {{ exceptions.raise_compiler_error(\n \"'\" ~ store_failures_as ~ \"' is not a valid value for `store_failures_as`. \"\n \"Accepted values are: ['ephemeral', 'table', 'view']\"\n ) }}\n {% endif %}\n\n {% set target_relation = api.Relation.create(\n identifier=identifier, schema=schema, database=database, type=store_failures_as) -%} %}\n\n {% if old_relation %}\n {% do adapter.drop_relation(old_relation) %}\n {% endif %}\n\n {% call statement(auto_begin=True) %}\n {% if sql_header %}{{ sql_header }}{% endif %}\n {{ get_create_sql(target_relation, sql_with_limit) }}\n {% endcall %}\n\n {% do relations.append(target_relation) %}\n\n {# Since the test failures have already been saved to the database, reuse that result rather than querying again #}\n {% set main_sql %}\n select *\n from {{ target_relation }}\n {% endset %}\n\n {{ adapter.commit() }}\n\n {% else %}\n\n {% set main_sql = sql_with_limit %}\n\n {% endif %}\n\n {% set fail_calc = config.get('fail_calc') %}\n {% set warn_if = config.get('warn_if') %}\n {% set error_if = config.get('error_if') %}\n\n {% call statement('main', fetch_result=True) -%}\n\n {% if sql_header %}{{ sql_header }}{% endif %}\n {# The limit has already been included above, and we do not want to duplicate it again. We also want to be safe for macro overrides treating `limit` as a required parameter. #}\n {{ get_test_sql(main_sql, fail_calc, warn_if, error_if, limit=none)}}\n\n {%- endcall %}\n\n {{ return({'relations': relations}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.get_limit_subquery_sql", "macro.dbt.should_store_failures", "macro.dbt.statement", "macro.dbt.get_create_sql", "macro.dbt.get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3399463, "supported_languages": ["sql"]}, "macro.dbt.get_test_sql": {"name": "get_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.get_test_sql", "macro_sql": "{% macro get_test_sql(main_sql, fail_calc, warn_if, error_if, limit) -%}\n {{ adapter.dispatch('get_test_sql', 'dbt')(main_sql, fail_calc, warn_if, error_if, limit) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3409712, "supported_languages": null}, "macro.dbt.default__get_test_sql": {"name": "default__get_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.default__get_test_sql", "macro_sql": "{% macro default__get_test_sql(main_sql, fail_calc, warn_if, error_if, limit) -%}\n select\n {{ fail_calc }} as failures,\n {{ fail_calc }} {{ warn_if }} as should_warn,\n {{ fail_calc }} {{ error_if }} as should_error\n from (\n {{ main_sql }}\n {{ \"limit \" ~ limit if limit != none }}\n ) dbt_internal_test\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3414948, "supported_languages": null}, "macro.dbt.get_unit_test_sql": {"name": "get_unit_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.get_unit_test_sql", "macro_sql": "{% macro get_unit_test_sql(main_sql, expected_fixture_sql, expected_column_names) -%}\n {{ adapter.dispatch('get_unit_test_sql', 'dbt')(main_sql, expected_fixture_sql, expected_column_names) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_unit_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3418567, "supported_languages": null}, "macro.dbt.default__get_unit_test_sql": {"name": "default__get_unit_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.default__get_unit_test_sql", "macro_sql": "{% macro default__get_unit_test_sql(main_sql, expected_fixture_sql, expected_column_names) -%}\n-- Build actual result given inputs\nwith dbt_internal_unit_test_actual as (\n select\n {% for expected_column_name in expected_column_names %}{{expected_column_name}}{% if not loop.last -%},{% endif %}{%- endfor -%}, {{ dbt.string_literal(\"actual\") }} as {{ adapter.quote(\"actual_or_expected\") }}\n from (\n {{ main_sql }}\n ) _dbt_internal_unit_test_actual\n),\n-- Build expected result\ndbt_internal_unit_test_expected as (\n select\n {% for expected_column_name in expected_column_names %}{{expected_column_name}}{% if not loop.last -%}, {% endif %}{%- endfor -%}, {{ dbt.string_literal(\"expected\") }} as {{ adapter.quote(\"actual_or_expected\") }}\n from (\n {{ expected_fixture_sql }}\n ) _dbt_internal_unit_test_expected\n)\n-- Union actual and expected results\nselect * from dbt_internal_unit_test_actual\nunion all\nselect * from dbt_internal_unit_test_expected\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.string_literal"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3428597, "supported_languages": null}, "macro.dbt.materialization_unit_default": {"name": "materialization_unit_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/unit.sql", "original_file_path": "macros/materializations/tests/unit.sql", "unique_id": "macro.dbt.materialization_unit_default", "macro_sql": "{%- materialization unit, default -%}\n\n {% set relations = [] %}\n {% set sql_header = config.get('sql_header') if flags.REQUIRE_SQL_HEADER_IN_TEST_CONFIGS else none %}\n\n {% set expected_rows = config.get('expected_rows') %}\n {% set expected_sql = config.get('expected_sql') %}\n {% set tested_expected_column_names = expected_rows[0].keys() if (expected_rows | length ) > 0 else get_columns_in_query(sql) %}\n\n {%- set target_relation = this.incorporate(type='table') -%}\n {%- set temp_relation = make_temp_relation(target_relation)-%}\n {% do run_query(get_create_table_as_sql(True, temp_relation, get_empty_subquery_sql(sql))) %}\n {%- set columns_in_relation = adapter.get_columns_in_relation(temp_relation) -%}\n {%- set column_name_to_data_types = {} -%}\n {%- set column_name_to_quoted = {} -%}\n {%- for column in columns_in_relation -%}\n {%- do column_name_to_data_types.update({column.name|lower: column.data_type}) -%}\n {%- do column_name_to_quoted.update({column.name|lower: column.quoted}) -%}\n {%- endfor -%}\n\n {%- set expected_column_names_quoted = [] -%}\n {%- for column_name in tested_expected_column_names -%}\n {%- do expected_column_names_quoted.append(column_name_to_quoted[column_name|lower]) -%}\n {%- endfor -%}\n\n {% if not expected_sql %}\n {% set expected_sql = get_expected_sql(expected_rows, column_name_to_data_types, column_name_to_quoted) %}\n {% endif %}\n {% set unit_test_sql = get_unit_test_sql(sql, expected_sql, expected_column_names_quoted) %}\n\n {% call statement('main', fetch_result=True) -%}\n\n {% if sql_header %}{{ sql_header }}{% endif %}\n {{ unit_test_sql }}\n\n {%- endcall %}\n\n {% do adapter.drop_relation(temp_relation) %}\n\n {{ return({'relations': relations}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.get_columns_in_query", "macro.dbt.make_temp_relation", "macro.dbt.run_query", "macro.dbt.get_create_table_as_sql", "macro.dbt.get_empty_subquery_sql", "macro.dbt.get_expected_sql", "macro.dbt.get_unit_test_sql", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3464122, "supported_languages": ["sql"]}, "macro.dbt.get_where_subquery": {"name": "get_where_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "unique_id": "macro.dbt.get_where_subquery", "macro_sql": "{% macro get_where_subquery(relation) -%}\n {% do return(adapter.dispatch('get_where_subquery', 'dbt')(relation)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_where_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.347036, "supported_languages": null}, "macro.dbt.default__get_where_subquery": {"name": "default__get_where_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "unique_id": "macro.dbt.default__get_where_subquery", "macro_sql": "{% macro default__get_where_subquery(relation) -%}\n {% set where = config.get('where', '') %}\n {% if where %}\n {%- set filtered -%}\n (select * from {{ relation }} where {{ where }}) dbt_subquery\n {%- endset -%}\n {% do return(filtered) %}\n {%- else -%}\n {% do return(relation) %}\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3476858, "supported_languages": null}, "macro.dbt.materialization_view_default": {"name": "materialization_view_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view.sql", "original_file_path": "macros/materializations/models/view.sql", "unique_id": "macro.dbt.materialization_view_default", "macro_sql": "{%- materialization view, default -%}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='view') -%}\n {%- set intermediate_relation = make_intermediate_relation(target_relation) -%}\n\n -- the intermediate_relation should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) -%}\n /*\n This relation (probably) doesn't exist yet. If it does exist, it's a leftover from\n a previous run, and we're going to try to drop it immediately. At the end of this\n materialization, we're going to rename the \"existing_relation\" to this identifier,\n and then we're going to drop it. In order to make sure we run the correct one of:\n - drop view ...\n - drop table ...\n\n We need to set the type of this relation to be the type of the existing_relation, if it exists,\n or else \"view\" as a sane default if it does not. Note that if the existing_relation does not\n exist, then there is nothing to move out of the way and subsequentally drop. In that case,\n this relation will be effectively unused.\n */\n {%- set backup_relation_type = 'view' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n -- as above, the backup_relation should not already exist\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_view_as_sql(intermediate_relation, sql) }}\n {%- endcall %}\n\n -- cleanup\n -- move the existing view out of the way\n {% if existing_relation is not none %}\n /* Do the equivalent of rename_if_exists. 'existing_relation' could have been dropped\n since the variable was first set. */\n {% set existing_relation = load_cached_relation(existing_relation) %}\n {% if existing_relation is not none %}\n {{ adapter.rename_relation(existing_relation, backup_relation) }}\n {% endif %}\n {% endif %}\n {{ adapter.rename_relation(intermediate_relation, target_relation) }}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n {{ drop_relation_if_exists(backup_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.run_hooks", "macro.dbt.drop_relation_if_exists", "macro.dbt.statement", "macro.dbt.get_create_view_as_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3512146, "supported_languages": ["sql"]}, "macro.dbt.materialization_table_default": {"name": "materialization_table_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/table.sql", "original_file_path": "macros/materializations/models/table.sql", "unique_id": "macro.dbt.materialization_table_default", "macro_sql": "{% materialization table, default %}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='table') %}\n {%- set intermediate_relation = make_intermediate_relation(target_relation) -%}\n -- the intermediate_relation should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) -%}\n /*\n See ../view/view.sql for more information about this relation.\n */\n {%- set backup_relation_type = 'table' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n -- as above, the backup_relation should not already exist\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_table_as_sql(False, intermediate_relation, sql) }}\n {%- endcall %}\n\n {% do create_indexes(intermediate_relation) %}\n\n -- cleanup\n {% if existing_relation is not none %}\n /* Do the equivalent of rename_if_exists. 'existing_relation' could have been dropped\n since the variable was first set. */\n {% set existing_relation = load_cached_relation(existing_relation) %}\n {% if existing_relation is not none %}\n {{ adapter.rename_relation(existing_relation, backup_relation) }}\n {% endif %}\n {% endif %}\n\n {{ adapter.rename_relation(intermediate_relation, target_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n -- `COMMIT` happens here\n {{ adapter.commit() }}\n\n -- finally, drop the existing/backup relation after the commit\n {{ drop_relation_if_exists(backup_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks", "macro.dbt.statement", "macro.dbt.get_create_table_as_sql", "macro.dbt.create_indexes", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3547602, "supported_languages": ["sql"]}, "macro.dbt.materialization_materialized_view_default": {"name": "materialization_materialized_view_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialization_materialized_view_default", "macro_sql": "{% materialization materialized_view, default %}\n {% set existing_relation = load_cached_relation(this) %}\n {% set target_relation = this.incorporate(type=this.MaterializedView) %}\n {% set intermediate_relation = make_intermediate_relation(target_relation) %}\n {% set backup_relation_type = target_relation.MaterializedView if existing_relation is none else existing_relation.type %}\n {% set backup_relation = make_backup_relation(target_relation, backup_relation_type) %}\n\n {{ materialized_view_setup(backup_relation, intermediate_relation, pre_hooks) }}\n\n {% set build_sql = materialized_view_get_build_sql(existing_relation, target_relation, backup_relation, intermediate_relation) %}\n\n {% if build_sql == '' %}\n {{ materialized_view_execute_no_op(target_relation) }}\n {% else %}\n {{ materialized_view_execute_build_sql(build_sql, existing_relation, target_relation, post_hooks) }}\n {% endif %}\n\n {{ materialized_view_teardown(backup_relation, intermediate_relation, post_hooks) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.materialized_view_setup", "macro.dbt.materialized_view_get_build_sql", "macro.dbt.materialized_view_execute_no_op", "macro.dbt.materialized_view_execute_build_sql", "macro.dbt.materialized_view_teardown"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.35744, "supported_languages": ["sql"]}, "macro.dbt.materialized_view_setup": {"name": "materialized_view_setup", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_setup", "macro_sql": "{% macro materialized_view_setup(backup_relation, intermediate_relation, pre_hooks) %}\n\n -- backup_relation and intermediate_relation should not already exist in the database\n -- it's possible these exist because of a previous run that exited unexpectedly\n {% set preexisting_backup_relation = load_cached_relation(backup_relation) %}\n {% set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) %}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3581052, "supported_languages": null}, "macro.dbt.materialized_view_teardown": {"name": "materialized_view_teardown", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_teardown", "macro_sql": "{% macro materialized_view_teardown(backup_relation, intermediate_relation, post_hooks) %}\n\n -- drop the temp relations if they exist to leave the database clean for the next run\n {{ drop_relation_if_exists(backup_relation) }}\n {{ drop_relation_if_exists(intermediate_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3585184, "supported_languages": null}, "macro.dbt.materialized_view_get_build_sql": {"name": "materialized_view_get_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_get_build_sql", "macro_sql": "{% macro materialized_view_get_build_sql(existing_relation, target_relation, backup_relation, intermediate_relation) %}\n\n {% set full_refresh_mode = should_full_refresh() %}\n\n -- determine the scenario we're in: create, full_refresh, alter, refresh data\n {% if existing_relation is none %}\n {% set build_sql = get_create_materialized_view_as_sql(target_relation, sql) %}\n {% elif full_refresh_mode or not existing_relation.is_materialized_view %}\n {% set build_sql = get_replace_sql(existing_relation, target_relation, sql) %}\n {% else %}\n\n -- get config options\n {% set on_configuration_change = config.get('on_configuration_change') %}\n {% set configuration_changes = get_materialized_view_configuration_changes(existing_relation, config) %}\n\n {% if configuration_changes is none %}\n {% set build_sql = refresh_materialized_view(target_relation) %}\n\n {% elif on_configuration_change == 'apply' %}\n {% set build_sql = get_alter_materialized_view_as_sql(target_relation, configuration_changes, sql, existing_relation, backup_relation, intermediate_relation) %}\n {% elif on_configuration_change == 'continue' %}\n {% set build_sql = '' %}\n {{ exceptions.warn(\"Configuration changes were identified and `on_configuration_change` was set to `continue` for `\" ~ target_relation.render() ~ \"`\") }}\n {% elif on_configuration_change == 'fail' %}\n {{ exceptions.raise_fail_fast_error(\"Configuration changes were identified and `on_configuration_change` was set to `fail` for `\" ~ target_relation.render() ~ \"`\") }}\n\n {% else %}\n -- this only happens if the user provides a value other than `apply`, 'skip', 'fail'\n {{ exceptions.raise_compiler_error(\"Unexpected configuration scenario\") }}\n\n {% endif %}\n\n {% endif %}\n\n {% do return(build_sql) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh", "macro.dbt.get_create_materialized_view_as_sql", "macro.dbt.get_replace_sql", "macro.dbt.get_materialized_view_configuration_changes", "macro.dbt.refresh_materialized_view", "macro.dbt.get_alter_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3606725, "supported_languages": null}, "macro.dbt.materialized_view_execute_no_op": {"name": "materialized_view_execute_no_op", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_execute_no_op", "macro_sql": "{% macro materialized_view_execute_no_op(target_relation) %}\n {% do store_raw_result(\n name=\"main\",\n message=\"skip \" ~ target_relation,\n code=\"skip\",\n rows_affected=\"-1\"\n ) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3615603, "supported_languages": null}, "macro.dbt.materialized_view_execute_build_sql": {"name": "materialized_view_execute_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_execute_build_sql", "macro_sql": "{% macro materialized_view_execute_build_sql(build_sql, existing_relation, target_relation, post_hooks) %}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set grant_config = config.get('grants') %}\n\n {% call statement(name=\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3626611, "supported_languages": null}, "macro.dbt.can_clone_table": {"name": "can_clone_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/can_clone_table.sql", "original_file_path": "macros/materializations/models/clone/can_clone_table.sql", "unique_id": "macro.dbt.can_clone_table", "macro_sql": "{% macro can_clone_table() %}\n {{ return(adapter.dispatch('can_clone_table', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__can_clone_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3630931, "supported_languages": null}, "macro.dbt.default__can_clone_table": {"name": "default__can_clone_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/can_clone_table.sql", "original_file_path": "macros/materializations/models/clone/can_clone_table.sql", "unique_id": "macro.dbt.default__can_clone_table", "macro_sql": "{% macro default__can_clone_table() %}\n {{ return(False) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3632936, "supported_languages": null}, "macro.dbt.create_or_replace_clone": {"name": "create_or_replace_clone", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/create_or_replace_clone.sql", "original_file_path": "macros/materializations/models/clone/create_or_replace_clone.sql", "unique_id": "macro.dbt.create_or_replace_clone", "macro_sql": "{% macro create_or_replace_clone(this_relation, defer_relation) %}\n {{ return(adapter.dispatch('create_or_replace_clone', 'dbt')(this_relation, defer_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_or_replace_clone"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3637884, "supported_languages": null}, "macro.dbt.default__create_or_replace_clone": {"name": "default__create_or_replace_clone", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/create_or_replace_clone.sql", "original_file_path": "macros/materializations/models/clone/create_or_replace_clone.sql", "unique_id": "macro.dbt.default__create_or_replace_clone", "macro_sql": "{% macro default__create_or_replace_clone(this_relation, defer_relation) %}\n create or replace table {{ this_relation.render() }} clone {{ defer_relation.render() }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3640726, "supported_languages": null}, "macro.dbt.materialization_clone_default": {"name": "materialization_clone_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/clone.sql", "original_file_path": "macros/materializations/models/clone/clone.sql", "unique_id": "macro.dbt.materialization_clone_default", "macro_sql": "{%- materialization clone, default -%}\n\n {%- set relations = {'relations': []} -%}\n\n {%- if not defer_relation -%}\n -- nothing to do\n {{ log(\"No relation found in state manifest for \" ~ model.unique_id, info=True) }}\n {{ return(relations) }}\n {%- endif -%}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n\n {%- if existing_relation and not flags.FULL_REFRESH -%}\n -- noop!\n {{ log(\"Relation \" ~ existing_relation ~ \" already exists\", info=True) }}\n {{ return(relations) }}\n {%- endif -%}\n\n {%- set other_existing_relation = load_cached_relation(defer_relation) -%}\n\n -- If this is a database that can do zero-copy cloning of tables, and the other relation is a table, then this will be a table\n -- Otherwise, this will be a view\n\n {% set can_clone_table = can_clone_table() %}\n {%- set grant_config = config.get('grants') -%}\n\n {%- if other_existing_relation and other_existing_relation.type == 'table' and can_clone_table -%}\n\n {%- set target_relation = this.incorporate(type='table') -%}\n {% if existing_relation is not none and not existing_relation.is_table %}\n {{ log(\"Dropping relation \" ~ existing_relation.render() ~ \" because it is of type \" ~ existing_relation.type) }}\n {{ drop_relation_if_exists(existing_relation) }}\n {% endif %}\n\n -- as a general rule, data platforms that can clone tables can also do atomic 'create or replace'\n {% if target_relation.database == defer_relation.database and\n target_relation.schema == defer_relation.schema and\n target_relation.identifier == defer_relation.identifier %}\n {{ log(\"Target relation and defer relation are the same, skipping clone for relation: \" ~ target_relation.render()) }}\n {% else %}\n {% call statement('main') %}\n {{ create_or_replace_clone(target_relation, defer_relation) }}\n {% endcall %}\n {% endif %}\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n {% do persist_docs(target_relation, model) %}\n\n {{ return({'relations': [target_relation]}) }}\n\n {%- else -%}\n\n {%- set target_relation = this.incorporate(type='view') -%}\n\n -- reuse the view materialization\n -- TODO: support actual dispatch for materialization macros\n -- Tracking ticket: https://github.com/dbt-labs/dbt-core/issues/7799\n {% set search_name = \"materialization_view_\" ~ adapter.type() %}\n {% if not search_name in context %}\n {% set search_name = \"materialization_view_default\" %}\n {% endif %}\n {% set materialization_macro = context[search_name] %}\n {% set relations = materialization_macro() %}\n {{ return(relations) }}\n\n {%- endif -%}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.can_clone_table", "macro.dbt.drop_relation_if_exists", "macro.dbt.statement", "macro.dbt.create_or_replace_clone", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3684373, "supported_languages": ["sql"]}, "macro.dbt.get_merge_sql": {"name": "get_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_merge_sql", "macro_sql": "{% macro get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates=none) -%}\n -- back compat for old kwarg name\n {% set incremental_predicates = kwargs.get('predicates', incremental_predicates) %}\n {{ adapter.dispatch('get_merge_sql', 'dbt')(target, source, unique_key, dest_columns, incremental_predicates) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.370465, "supported_languages": null}, "macro.dbt.get_merge_unique_key_match": {"name": "get_merge_unique_key_match", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_merge_unique_key_match", "macro_sql": "{% macro get_merge_unique_key_match(source_unique_key, target_unique_key) %}\n {{ return(adapter.dispatch('get_merge_unique_key_match', 'dbt')(source_unique_key, target_unique_key)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_merge_unique_key_match"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3708396, "supported_languages": null}, "macro.dbt.default__get_merge_unique_key_match": {"name": "default__get_merge_unique_key_match", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_merge_unique_key_match", "macro_sql": "{% macro default__get_merge_unique_key_match(source_unique_key, target_unique_key) -%}\n {{ return(equals(source_unique_key, target_unique_key) | trim) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.equals"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3711352, "supported_languages": null}, "macro.dbt.default__get_merge_sql": {"name": "default__get_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_merge_sql", "macro_sql": "{% macro default__get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates=none) -%}\n {%- set predicates = [] if incremental_predicates is none else [] + incremental_predicates -%}\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n {%- set merge_update_columns = config.get('merge_update_columns') -%}\n {%- set merge_exclude_columns = config.get('merge_exclude_columns') -%}\n {%- set update_columns = get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {% if unique_key %}\n {% if unique_key is sequence and unique_key is not mapping and unique_key is not string %}\n {% for key in unique_key %}\n {% set this_key_match %}\n DBT_INTERNAL_SOURCE.{{ key }} = DBT_INTERNAL_DEST.{{ key }}\n {% endset %}\n {% do predicates.append(this_key_match) %}\n {% endfor %}\n {% else %}\n {% set source_unique_key = (\"DBT_INTERNAL_SOURCE.\" ~ unique_key) | trim %}\n {% set target_unique_key = (\"DBT_INTERNAL_DEST.\" ~ unique_key) | trim %}\n {% set unique_key_match = get_merge_unique_key_match(source_unique_key, target_unique_key) %}\n {% do predicates.append(unique_key_match) %}\n {% endif %}\n {% else %}\n {% do predicates.append('FALSE') %}\n {% endif %}\n\n {{ sql_header if sql_header is not none }}\n\n merge into {{ target }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on {{\"(\" ~ predicates | join(\") and (\") ~ \")\"}}\n\n {% if unique_key %}\n when matched then update set\n {% for column_name in update_columns -%}\n {{ column_name }} = DBT_INTERNAL_SOURCE.{{ column_name }}\n {%- if not loop.last %}, {%- endif %}\n {%- endfor %}\n {% endif %}\n\n when not matched then insert\n ({{ dest_cols_csv }})\n values\n ({{ dest_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv", "macro.dbt.get_merge_update_columns", "macro.dbt.get_merge_unique_key_match"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3739688, "supported_languages": null}, "macro.dbt.get_delete_insert_merge_sql": {"name": "get_delete_insert_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_delete_insert_merge_sql", "macro_sql": "{% macro get_delete_insert_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) -%}\n {{ adapter.dispatch('get_delete_insert_merge_sql', 'dbt')(target, source, unique_key, dest_columns, incremental_predicates) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3744216, "supported_languages": null}, "macro.dbt.default__get_delete_insert_merge_sql": {"name": "default__get_delete_insert_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_delete_insert_merge_sql", "macro_sql": "{% macro default__get_delete_insert_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) -%}\n\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n\n {% if unique_key %}\n {% if unique_key is string %}\n {% set unique_key = [unique_key] %}\n {% endif %}\n\n {%- set unique_key_str = unique_key|join(', ') -%}\n\n delete from {{ target }} as DBT_INTERNAL_DEST\n where ({{ unique_key_str }}) in (\n select distinct {{ unique_key_str }}\n from {{ source }} as DBT_INTERNAL_SOURCE\n )\n {%- if incremental_predicates %}\n {% for predicate in incremental_predicates %}\n and {{ predicate }}\n {% endfor %}\n {%- endif -%};\n\n {% endif %}\n\n insert into {{ target }} ({{ dest_cols_csv }})\n (\n select {{ dest_cols_csv }}\n from {{ source }}\n )\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3756127, "supported_languages": null}, "macro.dbt.get_insert_overwrite_merge_sql": {"name": "get_insert_overwrite_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_insert_overwrite_merge_sql", "macro_sql": "{% macro get_insert_overwrite_merge_sql(target, source, dest_columns, predicates, include_sql_header=false) -%}\n {{ adapter.dispatch('get_insert_overwrite_merge_sql', 'dbt')(target, source, dest_columns, predicates, include_sql_header) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3760684, "supported_languages": null}, "macro.dbt.default__get_insert_overwrite_merge_sql": {"name": "default__get_insert_overwrite_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_insert_overwrite_merge_sql", "macro_sql": "{% macro default__get_insert_overwrite_merge_sql(target, source, dest_columns, predicates, include_sql_header) -%}\n {#-- The only time include_sql_header is True: --#}\n {#-- BigQuery + insert_overwrite strategy + \"static\" partitions config --#}\n {#-- We should consider including the sql header at the materialization level instead --#}\n\n {%- set predicates = [] if predicates is none else [] + predicates -%}\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none and include_sql_header }}\n\n merge into {{ target }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on FALSE\n\n when not matched by source\n {% if predicates %} and {{ predicates | join(' and ') }} {% endif %}\n then delete\n\n when not matched then insert\n ({{ dest_cols_csv }})\n values\n ({{ dest_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.377148, "supported_languages": null}, "macro.dbt.materialization_incremental_default": {"name": "materialization_incremental_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/incremental.sql", "original_file_path": "macros/materializations/models/incremental/incremental.sql", "unique_id": "macro.dbt.materialization_incremental_default", "macro_sql": "{% materialization incremental, default -%}\n\n -- relations\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='table') -%}\n {%- set temp_relation = make_temp_relation(target_relation)-%}\n {%- set intermediate_relation = make_intermediate_relation(target_relation)-%}\n {%- set backup_relation_type = 'table' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n\n -- configs\n {%- set unique_key = config.get('unique_key') -%}\n {%- set full_refresh_mode = (should_full_refresh() or existing_relation.is_view) -%}\n {%- set on_schema_change = incremental_validate_on_schema_change(config.get('on_schema_change'), default='ignore') -%}\n\n -- the temp_ and backup_ relations should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation. This has to happen before\n -- BEGIN, in a separate transaction\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation)-%}\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set to_drop = [] %}\n\n {% set incremental_strategy = config.get('incremental_strategy') or 'default' %}\n {% set strategy_sql_macro_func = adapter.get_incremental_strategy_macro(context, incremental_strategy) %}\n\n {% if existing_relation is none %}\n {% set build_sql = get_create_table_as_sql(False, target_relation, sql) %}\n {% set relation_for_indexes = target_relation %}\n {% elif full_refresh_mode %}\n {% set build_sql = get_create_table_as_sql(False, intermediate_relation, sql) %}\n {% set relation_for_indexes = intermediate_relation %}\n {% set need_swap = true %}\n {% else %}\n {% do run_query(get_create_table_as_sql(True, temp_relation, sql)) %}\n {% set relation_for_indexes = temp_relation %}\n {% set contract_config = config.get('contract') %}\n {% if not contract_config or not contract_config.enforced %}\n {% do adapter.expand_target_column_types(\n from_relation=temp_relation,\n to_relation=target_relation) %}\n {% endif %}\n {#-- Process schema changes. Returns dict of changes if successful. Use source columns for upserting/merging --#}\n {% set dest_columns = process_schema_changes(on_schema_change, temp_relation, existing_relation) %}\n {% if not dest_columns %}\n {% set dest_columns = adapter.get_columns_in_relation(existing_relation) %}\n {% endif %}\n\n {#-- Get the incremental_strategy, the macro to use for the strategy, and build the sql --#}\n {% set incremental_predicates = config.get('predicates', none) or config.get('incremental_predicates', none) %}\n {% set strategy_arg_dict = ({'target_relation': target_relation, 'temp_relation': temp_relation, 'unique_key': unique_key, 'dest_columns': dest_columns, 'incremental_predicates': incremental_predicates }) %}\n {% set build_sql = strategy_sql_macro_func(strategy_arg_dict) %}\n\n {% endif %}\n\n {% call statement(\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% if existing_relation is none or existing_relation.is_view or should_full_refresh() %}\n {% do create_indexes(relation_for_indexes) %}\n {% endif %}\n\n {% if need_swap %}\n {% do adapter.rename_relation(target_relation, backup_relation) %}\n {% do adapter.rename_relation(intermediate_relation, target_relation) %}\n {% do to_drop.append(backup_relation) %}\n {% endif %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n -- `COMMIT` happens here\n {% do adapter.commit() %}\n\n {% for rel in to_drop %}\n {% do adapter.drop_relation(rel) %}\n {% endfor %}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{%- endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_temp_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.should_full_refresh", "macro.dbt.incremental_validate_on_schema_change", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks", "macro.dbt.get_create_table_as_sql", "macro.dbt.run_query", "macro.dbt.process_schema_changes", "macro.dbt.statement", "macro.dbt.create_indexes", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3843575, "supported_languages": ["sql"]}, "macro.dbt.incremental_validate_on_schema_change": {"name": "incremental_validate_on_schema_change", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.incremental_validate_on_schema_change", "macro_sql": "{% macro incremental_validate_on_schema_change(on_schema_change, default='ignore') %}\n\n {% if on_schema_change not in ['sync_all_columns', 'append_new_columns', 'fail', 'ignore'] %}\n\n {% set log_message = 'Invalid value for on_schema_change (%s) specified. Setting default value of %s.' % (on_schema_change, default) %}\n {% do log(log_message) %}\n\n {{ return(default) }}\n\n {% else %}\n\n {{ return(on_schema_change) }}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3866692, "supported_languages": null}, "macro.dbt.check_for_schema_changes": {"name": "check_for_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.check_for_schema_changes", "macro_sql": "{% macro check_for_schema_changes(source_relation, target_relation) %}\n {{ return(adapter.dispatch('check_for_schema_changes', 'dbt')(source_relation, target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__check_for_schema_changes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3870318, "supported_languages": null}, "macro.dbt.default__check_for_schema_changes": {"name": "default__check_for_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.default__check_for_schema_changes", "macro_sql": "{% macro default__check_for_schema_changes(source_relation, target_relation) %}\n\n {% set schema_changed = False %}\n\n {%- set source_columns = adapter.get_columns_in_relation(source_relation) -%}\n {%- set target_columns = adapter.get_columns_in_relation(target_relation) -%}\n {%- set source_not_in_target = diff_columns(source_columns, target_columns) -%}\n {%- set target_not_in_source = diff_columns(target_columns, source_columns) -%}\n\n {% set new_target_types = diff_column_data_types(source_columns, target_columns) %}\n\n {% if source_not_in_target != [] %}\n {% set schema_changed = True %}\n {% elif target_not_in_source != [] or new_target_types != [] %}\n {% set schema_changed = True %}\n {% elif new_target_types != [] %}\n {% set schema_changed = True %}\n {% endif %}\n\n {% set changes_dict = {\n 'schema_changed': schema_changed,\n 'source_not_in_target': source_not_in_target,\n 'target_not_in_source': target_not_in_source,\n 'source_columns': source_columns,\n 'target_columns': target_columns,\n 'new_target_types': new_target_types\n } %}\n\n {% set msg %}\n In {{ target_relation }}:\n Schema changed: {{ schema_changed }}\n Source columns not in target: {{ source_not_in_target }}\n Target columns not in source: {{ target_not_in_source }}\n New column types: {{ new_target_types }}\n {% endset %}\n\n {% do log(msg) %}\n\n {{ return(changes_dict) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.diff_columns", "macro.dbt.diff_column_data_types"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3890045, "supported_languages": null}, "macro.dbt.sync_column_schemas": {"name": "sync_column_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.sync_column_schemas", "macro_sql": "{% macro sync_column_schemas(on_schema_change, target_relation, schema_changes_dict) %}\n {{ return(adapter.dispatch('sync_column_schemas', 'dbt')(on_schema_change, target_relation, schema_changes_dict)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__sync_column_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3894022, "supported_languages": null}, "macro.dbt.default__sync_column_schemas": {"name": "default__sync_column_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.default__sync_column_schemas", "macro_sql": "{% macro default__sync_column_schemas(on_schema_change, target_relation, schema_changes_dict) %}\n\n {%- set add_to_target_arr = schema_changes_dict['source_not_in_target'] -%}\n {%- set remove_from_target_arr = schema_changes_dict['target_not_in_source'] -%}\n {%- set new_target_types = schema_changes_dict['new_target_types'] -%}\n\n {%- if on_schema_change == 'append_new_columns'-%}\n {%- if add_to_target_arr | length > 0 -%}\n {%- do alter_relation_add_remove_columns(target_relation, add_to_target_arr, none) -%}\n {%- endif -%}\n\n {% elif on_schema_change == 'sync_all_columns' %}\n\n {% if add_to_target_arr | length > 0 or remove_from_target_arr | length > 0 %}\n {%- do alter_relation_add_remove_columns(target_relation, add_to_target_arr, remove_from_target_arr) -%}\n {% endif %}\n\n {% if new_target_types != [] %}\n {% for ntt in new_target_types %}\n {% set column_name = ntt['column_name'] %}\n {% set new_type = ntt['new_type'] %}\n {% do alter_column_type(target_relation, column_name, new_type) %}\n {% endfor %}\n {% endif %}\n\n {% endif %}\n\n {% set schema_change_message %}\n In {{ target_relation }}:\n Schema change approach: {{ on_schema_change }}\n Columns added: {{ add_to_target_arr }}\n Columns removed: {{ remove_from_target_arr }}\n Data types changed: {{ new_target_types }}\n {% endset %}\n\n {% do log(schema_change_message) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.alter_relation_add_remove_columns", "macro.dbt.alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3913412, "supported_languages": null}, "macro.dbt.process_schema_changes": {"name": "process_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.process_schema_changes", "macro_sql": "{% macro process_schema_changes(on_schema_change, source_relation, target_relation) %}\n {{ return(adapter.dispatch('process_schema_changes', 'dbt')(on_schema_change, source_relation, target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__process_schema_changes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3917534, "supported_languages": null}, "macro.dbt.default__process_schema_changes": {"name": "default__process_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.default__process_schema_changes", "macro_sql": "{% macro default__process_schema_changes(on_schema_change, source_relation, target_relation) %}\n\n {% if on_schema_change == 'ignore' %}\n\n {{ return({}) }}\n\n {% else %}\n\n {% set schema_changes_dict = check_for_schema_changes(source_relation, target_relation) %}\n\n {% if schema_changes_dict['schema_changed'] %}\n\n {% if on_schema_change == 'fail' %}\n\n {% set fail_msg %}\n The source and target schemas on this incremental model are out of sync!\n They can be reconciled in several ways:\n - set the `on_schema_change` config to either append_new_columns or sync_all_columns, depending on your situation.\n - Re-run the incremental model with `full_refresh: True` to update the target schema.\n - update the schema manually and re-run the process.\n\n Additional troubleshooting context:\n Source columns not in target: {{ schema_changes_dict['source_not_in_target'] }}\n Target columns not in source: {{ schema_changes_dict['target_not_in_source'] }}\n New column types: {{ schema_changes_dict['new_target_types'] }}\n {% endset %}\n\n {% do exceptions.raise_compiler_error(fail_msg) %}\n\n {# -- unless we ignore, run the sync operation per the config #}\n {% else %}\n\n {% do sync_column_schemas(on_schema_change, target_relation, schema_changes_dict) %}\n\n {% endif %}\n\n {% endif %}\n\n {{ return(schema_changes_dict['source_columns']) }}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.check_for_schema_changes", "macro.dbt.sync_column_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3931189, "supported_languages": null}, "macro.dbt.is_incremental": {"name": "is_incremental", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/is_incremental.sql", "original_file_path": "macros/materializations/models/incremental/is_incremental.sql", "unique_id": "macro.dbt.is_incremental", "macro_sql": "{% macro is_incremental() %}\n {#-- do not run introspective queries in parsing #}\n {% if not execute %}\n {{ return(False) }}\n {% else %}\n {% set relation = adapter.get_relation(this.database, this.schema, this.table) %}\n {{ return(relation is not none\n and relation.type == 'table'\n and model.config.materialized == 'incremental'\n and not should_full_refresh()) }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3941405, "supported_languages": null}, "macro.dbt.get_incremental_append_sql": {"name": "get_incremental_append_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_append_sql", "macro_sql": "{% macro get_incremental_append_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_append_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3952808, "supported_languages": null}, "macro.dbt.default__get_incremental_append_sql": {"name": "default__get_incremental_append_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_append_sql", "macro_sql": "{% macro default__get_incremental_append_sql(arg_dict) %}\n\n {% do return(get_insert_into_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"dest_columns\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_insert_into_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3956923, "supported_languages": null}, "macro.dbt.get_incremental_delete_insert_sql": {"name": "get_incremental_delete_insert_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_delete_insert_sql", "macro_sql": "{% macro get_incremental_delete_insert_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_delete_insert_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_delete_insert_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3960006, "supported_languages": null}, "macro.dbt.default__get_incremental_delete_insert_sql": {"name": "default__get_incremental_delete_insert_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_delete_insert_sql", "macro_sql": "{% macro default__get_incremental_delete_insert_sql(arg_dict) %}\n\n {% do return(get_delete_insert_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"unique_key\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3964763, "supported_languages": null}, "macro.dbt.get_incremental_merge_sql": {"name": "get_incremental_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_merge_sql", "macro_sql": "{% macro get_incremental_merge_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_merge_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3967967, "supported_languages": null}, "macro.dbt.default__get_incremental_merge_sql": {"name": "default__get_incremental_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_merge_sql", "macro_sql": "{% macro default__get_incremental_merge_sql(arg_dict) %}\n\n {% do return(get_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"unique_key\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.397272, "supported_languages": null}, "macro.dbt.get_incremental_insert_overwrite_sql": {"name": "get_incremental_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_insert_overwrite_sql", "macro_sql": "{% macro get_incremental_insert_overwrite_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_insert_overwrite_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_insert_overwrite_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3976972, "supported_languages": null}, "macro.dbt.default__get_incremental_insert_overwrite_sql": {"name": "default__get_incremental_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_insert_overwrite_sql", "macro_sql": "{% macro default__get_incremental_insert_overwrite_sql(arg_dict) %}\n\n {% do return(get_insert_overwrite_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3981311, "supported_languages": null}, "macro.dbt.get_incremental_default_sql": {"name": "get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_default_sql", "macro_sql": "{% macro get_incremental_default_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_default_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_incremental_default_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3984275, "supported_languages": null}, "macro.dbt.default__get_incremental_default_sql": {"name": "default__get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_default_sql", "macro_sql": "{% macro default__get_incremental_default_sql(arg_dict) %}\n\n {% do return(get_incremental_append_sql(arg_dict)) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3986833, "supported_languages": null}, "macro.dbt.get_incremental_microbatch_sql": {"name": "get_incremental_microbatch_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_microbatch_sql", "macro_sql": "{% macro get_incremental_microbatch_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_microbatch_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_incremental_microbatch_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3989801, "supported_languages": null}, "macro.dbt.default__get_incremental_microbatch_sql": {"name": "default__get_incremental_microbatch_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_microbatch_sql", "macro_sql": "{% macro default__get_incremental_microbatch_sql(arg_dict) %}\n\n {{ exceptions.raise_not_implemented('microbatch materialization strategy not implemented for adapter ' + adapter.type()) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3992443, "supported_languages": null}, "macro.dbt.get_insert_into_sql": {"name": "get_insert_into_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_insert_into_sql", "macro_sql": "{% macro get_insert_into_sql(target_relation, temp_relation, dest_columns) %}\n\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n\n insert into {{ target_relation }} ({{ dest_cols_csv }})\n (\n select {{ dest_cols_csv }}\n from {{ temp_relation }}\n )\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.3997164, "supported_languages": null}, "macro.dbt.get_quoted_csv": {"name": "get_quoted_csv", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.get_quoted_csv", "macro_sql": "{% macro get_quoted_csv(column_names) %}\n\n {% set quoted = [] %}\n {% for col in column_names -%}\n {%- do quoted.append(adapter.quote(col)) -%}\n {%- endfor %}\n\n {%- set dest_cols_csv = quoted | join(', ') -%}\n {{ return(dest_cols_csv) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4011757, "supported_languages": null}, "macro.dbt.diff_columns": {"name": "diff_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.diff_columns", "macro_sql": "{% macro diff_columns(source_columns, target_columns) %}\n\n {% set result = [] %}\n {% set source_names = source_columns | map(attribute = 'column') | list %}\n {% set target_names = target_columns | map(attribute = 'column') | list %}\n\n {# --check whether the name attribute exists in the target - this does not perform a data type check #}\n {% for sc in source_columns %}\n {% if sc.name not in target_names %}\n {{ result.append(sc) }}\n {% endif %}\n {% endfor %}\n\n {{ return(result) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4020867, "supported_languages": null}, "macro.dbt.diff_column_data_types": {"name": "diff_column_data_types", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.diff_column_data_types", "macro_sql": "{% macro diff_column_data_types(source_columns, target_columns) %}\n {{ return(adapter.dispatch('diff_column_data_types', 'dbt')(source_columns, target_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__diff_column_data_types"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.402439, "supported_languages": null}, "macro.dbt.default__diff_column_data_types": {"name": "default__diff_column_data_types", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.default__diff_column_data_types", "macro_sql": "{% macro default__diff_column_data_types(source_columns, target_columns) %}\n {% set result = [] %}\n {% for sc in source_columns %}\n {% set tc = target_columns | selectattr(\"name\", \"equalto\", sc.name) | list | first %}\n {% if tc %}\n {% if sc.expanded_data_type != tc.expanded_data_type and not sc.can_expand_to(other_column=tc) %}\n {{ result.append( { 'column_name': tc.name, 'new_type': sc.expanded_data_type } ) }}\n {% endif %}\n {% endif %}\n {% endfor %}\n\n {{ return(result) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4035761, "supported_languages": null}, "macro.dbt.get_merge_update_columns": {"name": "get_merge_update_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.get_merge_update_columns", "macro_sql": "{% macro get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) %}\n {{ return(adapter.dispatch('get_merge_update_columns', 'dbt')(merge_update_columns, merge_exclude_columns, dest_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_merge_update_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.404, "supported_languages": null}, "macro.dbt.default__get_merge_update_columns": {"name": "default__get_merge_update_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.default__get_merge_update_columns", "macro_sql": "{% macro default__get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) %}\n {%- set default_cols = dest_columns | map(attribute=\"quoted\") | list -%}\n\n {%- if merge_update_columns and merge_exclude_columns -%}\n {{ exceptions.raise_compiler_error(\n 'Model cannot specify merge_update_columns and merge_exclude_columns. Please update model to use only one config'\n )}}\n {%- elif merge_update_columns -%}\n {%- set update_columns = merge_update_columns -%}\n {%- elif merge_exclude_columns -%}\n {%- set update_columns = [] -%}\n {%- for column in dest_columns -%}\n {% if column.column | lower not in merge_exclude_columns | map(\"lower\") | list %}\n {%- do update_columns.append(column.quoted) -%}\n {% endif %}\n {%- endfor -%}\n {%- else -%}\n {%- set update_columns = default_cols -%}\n {%- endif -%}\n\n {{ return(update_columns) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4051847, "supported_languages": null}, "macro.dbt.get_fixture_sql": {"name": "get_fixture_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.get_fixture_sql", "macro_sql": "{% macro get_fixture_sql(rows, column_name_to_data_types) %}\n-- Fixture for {{ model.name }}\n{% set default_row = {} %}\n\n{%- if not column_name_to_data_types -%}\n{#-- Use defer_relation IFF it is available in the manifest and 'this' is missing from the database --#}\n{%- set this_or_defer_relation = defer_relation if (defer_relation and not load_relation(this)) else this -%}\n{%- set columns_in_relation = adapter.get_columns_in_relation(this_or_defer_relation) -%}\n\n{%- set column_name_to_data_types = {} -%}\n{%- set column_name_to_quoted = {} -%}\n{%- for column in columns_in_relation -%}\n\n{#-- This needs to be a case-insensitive comparison --#}\n{%- do column_name_to_data_types.update({column.name|lower: column.data_type}) -%}\n{%- do column_name_to_quoted.update({column.name|lower: column.quoted}) -%}\n{%- endfor -%}\n{%- endif -%}\n\n{%- if not column_name_to_data_types -%}\n {{ exceptions.raise_compiler_error(\"Not able to get columns for unit test '\" ~ model.name ~ \"' from relation \" ~ this ~ \" because the relation doesn't exist\") }}\n{%- endif -%}\n\n{%- for column_name, column_type in column_name_to_data_types.items() -%}\n {%- do default_row.update({column_name: (safe_cast(\"null\", column_type) | trim )}) -%}\n{%- endfor -%}\n\n{{ validate_fixture_rows(rows, row_number) }}\n\n{%- for row in rows -%}\n{%- set formatted_row = format_row(row, column_name_to_data_types) -%}\n{%- set default_row_copy = default_row.copy() -%}\n{%- do default_row_copy.update(formatted_row) -%}\nselect\n{%- for column_name, column_value in default_row_copy.items() %} {{ column_value }} as {{ column_name_to_quoted[column_name] }}{% if not loop.last -%}, {%- endif %}\n{%- endfor %}\n{%- if not loop.last %}\nunion all\n{% endif %}\n{%- endfor -%}\n\n{%- if (rows | length) == 0 -%}\n select\n {%- for column_name, column_value in default_row.items() %} {{ column_value }} as {{ column_name_to_quoted[column_name] }}{% if not loop.last -%},{%- endif %}\n {%- endfor %}\n limit 0\n{%- endif -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_relation", "macro.dbt.safe_cast", "macro.dbt.validate_fixture_rows", "macro.dbt.format_row"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4097812, "supported_languages": null}, "macro.dbt.get_expected_sql": {"name": "get_expected_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.get_expected_sql", "macro_sql": "{% macro get_expected_sql(rows, column_name_to_data_types, column_name_to_quoted) %}\n\n{%- if (rows | length) == 0 -%}\n select * from dbt_internal_unit_test_actual\n limit 0\n{%- else -%}\n{%- for row in rows -%}\n{%- set formatted_row = format_row(row, column_name_to_data_types) -%}\nselect\n{%- for column_name, column_value in formatted_row.items() %} {{ column_value }} as {{ column_name_to_quoted[column_name] }}{% if not loop.last -%}, {%- endif %}\n{%- endfor %}\n{%- if not loop.last %}\nunion all\n{% endif %}\n{%- endfor -%}\n{%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.format_row"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4107969, "supported_languages": null}, "macro.dbt.format_row": {"name": "format_row", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.format_row", "macro_sql": "\n\n{%- macro format_row(row, column_name_to_data_types) -%}\n {#-- generate case-insensitive formatted row --#}\n {% set formatted_row = {} %}\n {%- for column_name, column_value in row.items() -%}\n {% set column_name = column_name|lower %}\n\n {%- if column_name not in column_name_to_data_types %}\n {#-- if user-provided row contains column name that relation does not contain, raise an error --#}\n {% set fixture_name = \"expected output\" if model.resource_type == 'unit_test' else (\"'\" ~ model.name ~ \"'\") %}\n {{ exceptions.raise_compiler_error(\n \"Invalid column name: '\" ~ column_name ~ \"' in unit test fixture for \" ~ fixture_name ~ \".\"\n \"\\nAccepted columns for \" ~ fixture_name ~ \" are: \" ~ (column_name_to_data_types.keys()|list)\n ) }}\n {%- endif -%}\n\n {%- set column_type = column_name_to_data_types[column_name] %}\n\n {#-- For string fixture values, strip varchar length to prevent silent truncation (GH-11974) --#}\n {%- if column_value is string and 'varying' in column_type -%}\n {%- set column_type = column_type.split('(')[0] -%}\n {%- endif -%}\n\n {#-- sanitize column_value: wrap yaml strings in quotes, apply cast --#}\n {%- set column_value_clean = column_value -%}\n {%- if column_value is string -%}\n {%- set column_value_clean = dbt.string_literal(dbt.escape_single_quotes(column_value)) -%}\n {%- elif column_value is none -%}\n {%- set column_value_clean = 'null' -%}\n {%- endif -%}\n\n {%- set row_update = {column_name: safe_cast(column_value_clean, column_type) } -%}\n {%- do formatted_row.update(row_update) -%}\n {%- endfor -%}\n {{ return(formatted_row) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.string_literal", "macro.dbt.escape_single_quotes", "macro.dbt.safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4129298, "supported_languages": null}, "macro.dbt.validate_fixture_rows": {"name": "validate_fixture_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.validate_fixture_rows", "macro_sql": "{%- macro validate_fixture_rows(rows, row_number) -%}\n {{ return(adapter.dispatch('validate_fixture_rows', 'dbt')(rows, row_number)) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__validate_fixture_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4132946, "supported_languages": null}, "macro.dbt.default__validate_fixture_rows": {"name": "default__validate_fixture_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.default__validate_fixture_rows", "macro_sql": "{%- macro default__validate_fixture_rows(rows, row_number) -%}\n {# This is an abstract method for adapter overrides as needed #}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4134593, "supported_languages": null}, "macro.dbt.resolve_model_name": {"name": "resolve_model_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.resolve_model_name", "macro_sql": "{% macro resolve_model_name(input_model_name) %}\n {{ return(adapter.dispatch('resolve_model_name', 'dbt')(input_model_name)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4149375, "supported_languages": null}, "macro.dbt.default__resolve_model_name": {"name": "default__resolve_model_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.default__resolve_model_name", "macro_sql": "\n\n{%- macro default__resolve_model_name(input_model_name) -%}\n {{ input_model_name | string | replace('\"', '\\\"') }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4152083, "supported_languages": null}, "macro.dbt.build_ref_function": {"name": "build_ref_function", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_ref_function", "macro_sql": "{% macro build_ref_function(model) %}\n\n {%- set ref_dict = {} -%}\n {%- for _ref in model.refs -%}\n {% set _ref_args = [_ref.get('package'), _ref['name']] if _ref.get('package') else [_ref['name'],] %}\n {%- set resolved = ref(*_ref_args, v=_ref.get('version')) -%}\n\n {#\n We want to get the string of the returned relation by calling .render() in order to skip sample/empty\n mode rendering logic. However, people override the default ref macro, and often return a string instead\n of a relation (like the ref macro does by default). Thus, to make sure we dont blow things up, we have\n to ensure the resolved relation has a .render() method.\n #}\n {%- if resolved.render is defined and resolved.render is callable -%}\n {%- set resolved = resolved.render() -%}\n {%- endif -%}\n\n {%- if _ref.get('version') -%}\n {% do _ref_args.extend([\"v\" ~ _ref['version']]) %}\n {%- endif -%}\n {%- do ref_dict.update({_ref_args | join('.'): resolve_model_name(resolved)}) -%}\n {%- endfor -%}\n\ndef ref(*args, **kwargs):\n refs = {{ ref_dict | tojson }}\n key = '.'.join(args)\n version = kwargs.get(\"v\") or kwargs.get(\"version\")\n if version:\n key += f\".v{version}\"\n dbt_load_df_function = kwargs.get(\"dbt_load_df_function\")\n return dbt_load_df_function(refs[key])\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.416803, "supported_languages": null}, "macro.dbt.build_source_function": {"name": "build_source_function", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_source_function", "macro_sql": "{% macro build_source_function(model) %}\n\n {%- set source_dict = {} -%}\n {%- for _source in model.sources -%}\n {%- set resolved = source(*_source) -%}\n {%- do source_dict.update({_source | join('.'): resolve_model_name(resolved)}) -%}\n {%- endfor -%}\n\ndef source(*args, dbt_load_df_function):\n sources = {{ source_dict | tojson }}\n key = '.'.join(args)\n return dbt_load_df_function(sources[key])\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4174886, "supported_languages": null}, "macro.dbt.build_config_dict": {"name": "build_config_dict", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_config_dict", "macro_sql": "{% macro build_config_dict(model) %}\n {%- set config_dict = {} -%}\n {% set config_dbt_used = zip(model.config.config_keys_used, model.config.config_keys_defaults) | list %}\n {%- for key, default in config_dbt_used -%}\n {# weird type testing with enum, would be much easier to write this logic in Python! #}\n {%- if key == \"language\" -%}\n {%- set value = \"python\" -%}\n {%- endif -%}\n {%- set value = model.config.get(key, default) -%}\n {%- do config_dict.update({key: value}) -%}\n {%- endfor -%}\n {# Handle dbt.config.meta_get() calls - use separate dict to avoid overwriting native configs #}\n {%- set meta_dict = {} -%}\n {%- if model.config.meta_keys_used -%}\n {% set meta_dbt_used = zip(model.config.meta_keys_used, model.config.meta_keys_defaults) | list %}\n {%- for key, default in meta_dbt_used -%}\n {%- if model.config.meta and key in model.config.meta -%}\n {%- set value = model.config.meta[key] -%}\n {%- else -%}\n {%- set value = default -%}\n {%- endif -%}\n {%- do meta_dict.update({key: value}) -%}\n {%- endfor -%}\n {%- endif -%}\nconfig_dict = {{ config_dict }}\nmeta_dict = {{ meta_dict }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4193614, "supported_languages": null}, "macro.dbt.py_script_postfix": {"name": "py_script_postfix", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.py_script_postfix", "macro_sql": "{% macro py_script_postfix(model) %}\n# This part is user provided model code\n# you will need to copy the next section to run the code\n# COMMAND ----------\n# this part is dbt logic for get ref work, do not modify\n\n{{ build_ref_function(model ) }}\n{{ build_source_function(model ) }}\n{{ build_config_dict(model) }}\n\nclass config:\n def __init__(self, *args, **kwargs):\n pass\n\n @staticmethod\n def get(key, default=None):\n return config_dict.get(key, default)\n\n @staticmethod\n def meta_get(key, default=None):\n return meta_dict.get(key, default)\n\nclass this:\n \"\"\"dbt.this() or dbt.this.identifier\"\"\"\n database = \"{{ this.database }}\"\n schema = \"{{ this.schema }}\"\n identifier = \"{{ this.identifier }}\"\n {% set this_relation_name = resolve_model_name(this) %}\n def __repr__(self):\n return '{{ this_relation_name }}'\n\n\nclass dbtObj:\n def __init__(self, load_df_function) -> None:\n self.source = lambda *args: source(*args, dbt_load_df_function=load_df_function)\n self.ref = lambda *args, **kwargs: ref(*args, **kwargs, dbt_load_df_function=load_df_function)\n self.config = config\n self.this = this()\n self.is_incremental = {{ is_incremental() }}\n\n# COMMAND ----------\n{{py_script_comment()}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.build_ref_function", "macro.dbt.build_source_function", "macro.dbt.build_config_dict", "macro.dbt.resolve_model_name", "macro.dbt.is_incremental", "macro.dbt.py_script_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.420167, "supported_languages": null}, "macro.dbt.py_script_comment": {"name": "py_script_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.py_script_comment", "macro_sql": "{%macro py_script_comment()%}\n{%endmacro%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4203007, "supported_languages": null}, "macro.dbt.default__test_accepted_values": {"name": "default__test_accepted_values", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/accepted_values.sql", "original_file_path": "macros/generic_test_sql/accepted_values.sql", "unique_id": "macro.dbt.default__test_accepted_values", "macro_sql": "{% macro default__test_accepted_values(model, column_name, values, quote=True) %}\n\nwith all_values as (\n\n select\n {{ column_name }} as value_field,\n count(*) as n_records\n\n from {{ model }}\n group by {{ column_name }}\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n {% for value in values -%}\n {% if quote -%}\n '{{ value }}'\n {%- else -%}\n {{ value }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {%- endfor %}\n)\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4211917, "supported_languages": null}, "macro.dbt.default__test_relationships": {"name": "default__test_relationships", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/relationships.sql", "original_file_path": "macros/generic_test_sql/relationships.sql", "unique_id": "macro.dbt.default__test_relationships", "macro_sql": "{% macro default__test_relationships(model, column_name, to, field) %}\n\nwith child as (\n select {{ column_name }} as from_field\n from {{ model }}\n where {{ column_name }} is not null\n),\n\nparent as (\n select {{ field }} as to_field\n from {{ to }}\n)\n\nselect\n from_field\n\nfrom child\nleft join parent\n on child.from_field = parent.to_field\n\nwhere parent.to_field is null\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4217036, "supported_languages": null}, "macro.dbt.default__test_not_null": {"name": "default__test_not_null", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/not_null.sql", "original_file_path": "macros/generic_test_sql/not_null.sql", "unique_id": "macro.dbt.default__test_not_null", "macro_sql": "{% macro default__test_not_null(model, column_name) %}\n\n{% set column_list = '*' if should_store_failures() else column_name %}\n\nselect {{ column_list }}\nfrom {{ model }}\nwhere {{ column_name }} is null\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4222028, "supported_languages": null}, "macro.dbt.default__test_unique": {"name": "default__test_unique", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/unique.sql", "original_file_path": "macros/generic_test_sql/unique.sql", "unique_id": "macro.dbt.default__test_unique", "macro_sql": "{% macro default__test_unique(model, column_name) %}\n\nselect\n {{ column_name }} as unique_field,\n count(*) as n_records\n\nfrom {{ model }}\nwhere {{ column_name }} is not null\ngroup by {{ column_name }}\nhaving count(*) > 1\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4225945, "supported_languages": null}, "macro.dbt.generate_alias_name": {"name": "generate_alias_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "unique_id": "macro.dbt.generate_alias_name", "macro_sql": "{% macro generate_alias_name(custom_alias_name=none, node=none) -%}\n {% do return(adapter.dispatch('generate_alias_name', 'dbt')(custom_alias_name, node)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_alias_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4232333, "supported_languages": null}, "macro.dbt.default__generate_alias_name": {"name": "default__generate_alias_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "unique_id": "macro.dbt.default__generate_alias_name", "macro_sql": "{% macro default__generate_alias_name(custom_alias_name=none, node=none) -%}\n\n {%- if custom_alias_name -%}\n\n {{ custom_alias_name | trim }}\n\n {%- elif node.version -%}\n\n {{ return(node.name ~ \"_v\" ~ (node.version | replace(\".\", \"_\"))) }}\n\n {%- else -%}\n\n {{ node.name }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4238863, "supported_languages": null}, "macro.dbt.generate_latest_version_pointer_alias": {"name": "generate_latest_version_pointer_alias", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_latest_version_pointer_alias.sql", "original_file_path": "macros/get_custom_name/get_latest_version_pointer_alias.sql", "unique_id": "macro.dbt.generate_latest_version_pointer_alias", "macro_sql": "{% macro generate_latest_version_pointer_alias(custom_alias_name=none, node=none) -%}\n {% do return(adapter.dispatch('generate_latest_version_pointer_alias', 'dbt')(custom_alias_name, node)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_latest_version_pointer_alias"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4245129, "supported_languages": null}, "macro.dbt.default__generate_latest_version_pointer_alias": {"name": "default__generate_latest_version_pointer_alias", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_latest_version_pointer_alias.sql", "original_file_path": "macros/get_custom_name/get_latest_version_pointer_alias.sql", "unique_id": "macro.dbt.default__generate_latest_version_pointer_alias", "macro_sql": "{% macro default__generate_latest_version_pointer_alias(custom_alias_name=none, node=none) -%}\n {%- if custom_alias_name -%}\n {{ custom_alias_name | trim }}\n {%- else -%}\n {{ node.name }}\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.424891, "supported_languages": null}, "macro.dbt.generate_database_name": {"name": "generate_database_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "unique_id": "macro.dbt.generate_database_name", "macro_sql": "{% macro generate_database_name(custom_database_name=none, node=none) -%}\n {% do return(adapter.dispatch('generate_database_name', 'dbt')(custom_database_name, node)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_database_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.425497, "supported_languages": null}, "macro.dbt.default__generate_database_name": {"name": "default__generate_database_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "unique_id": "macro.dbt.default__generate_database_name", "macro_sql": "{% macro default__generate_database_name(custom_database_name=none, node=none) -%}\n {%- set default_database = target.database -%}\n {%- if custom_database_name is none -%}\n\n {{ default_database }}\n\n {%- else -%}\n\n {{ custom_database_name }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4261277, "supported_languages": null}, "macro.dbt.generate_schema_name": {"name": "generate_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.generate_schema_name", "macro_sql": "{% macro generate_schema_name(custom_schema_name=none, node=none) -%}\n {{ return(adapter.dispatch('generate_schema_name', 'dbt')(custom_schema_name, node)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4269054, "supported_languages": null}, "macro.dbt.default__generate_schema_name": {"name": "default__generate_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.default__generate_schema_name", "macro_sql": "{% macro default__generate_schema_name(custom_schema_name, node) -%}\n\n {%- set default_schema = target.schema -%}\n {%- if custom_schema_name is none -%}\n\n {{ default_schema }}\n\n {%- else -%}\n\n {{ default_schema }}_{{ custom_schema_name | trim }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4273598, "supported_languages": null}, "macro.dbt.generate_schema_name_for_env": {"name": "generate_schema_name_for_env", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.generate_schema_name_for_env", "macro_sql": "{% macro generate_schema_name_for_env(custom_schema_name, node) -%}\n\n {%- set default_schema = target.schema -%}\n {%- if target.name == 'prod' and custom_schema_name is not none -%}\n\n {{ custom_schema_name | trim }}\n\n {%- else -%}\n\n {{ default_schema }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4278502, "supported_languages": null}, "macro.dbt.collect_freshness": {"name": "collect_freshness", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.collect_freshness", "macro_sql": "{% macro collect_freshness(source, loaded_at_field, filter) %}\n {{ return(adapter.dispatch('collect_freshness', 'dbt')(source, loaded_at_field, filter))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.428643, "supported_languages": null}, "macro.dbt.default__collect_freshness": {"name": "default__collect_freshness", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.default__collect_freshness", "macro_sql": "{% macro default__collect_freshness(source, loaded_at_field, filter) %}\n {% call statement('collect_freshness', fetch_result=True, auto_begin=False) -%}\n select\n max({{ loaded_at_field }}) as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n from {{ source }}\n {% if filter %}\n where {{ filter }}\n {% endif %}\n {% endcall %}\n {{ return(load_result('collect_freshness')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4293377, "supported_languages": null}, "macro.dbt.collect_freshness_custom_sql": {"name": "collect_freshness_custom_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.collect_freshness_custom_sql", "macro_sql": "{% macro collect_freshness_custom_sql(source, loaded_at_query) %}\n {{ return(adapter.dispatch('collect_freshness_custom_sql', 'dbt')(source, loaded_at_query))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__collect_freshness_custom_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4297042, "supported_languages": null}, "macro.dbt.default__collect_freshness_custom_sql": {"name": "default__collect_freshness_custom_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.default__collect_freshness_custom_sql", "macro_sql": "{% macro default__collect_freshness_custom_sql(source, loaded_at_query) %}\n {% call statement('collect_freshness_custom_sql', fetch_result=True, auto_begin=False) -%}\n with source_query as (\n {{ loaded_at_query }}\n )\n select\n (select * from source_query) as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n {% endcall %}\n {{ return(load_result('collect_freshness_custom_sql')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4302216, "supported_languages": null}, "macro.dbt.validate_sql": {"name": "validate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/validate_sql.sql", "original_file_path": "macros/adapters/validate_sql.sql", "unique_id": "macro.dbt.validate_sql", "macro_sql": "{% macro validate_sql(sql) -%}\n {{ return(adapter.dispatch('validate_sql', 'dbt')(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__validate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.430709, "supported_languages": null}, "macro.dbt.default__validate_sql": {"name": "default__validate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/validate_sql.sql", "original_file_path": "macros/adapters/validate_sql.sql", "unique_id": "macro.dbt.default__validate_sql", "macro_sql": "{% macro default__validate_sql(sql) -%}\n {% call statement('validate_sql') -%}\n explain {{ sql }}\n {% endcall %}\n {{ return(load_result('validate_sql')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.43108, "supported_languages": null}, "macro.dbt.get_show_sql": {"name": "get_show_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.get_show_sql", "macro_sql": "{% macro get_show_sql(compiled_code, sql_header, limit) -%}\n {%- if sql_header is not none -%}\n {{ sql_header }}\n {%- endif %}\n {{ get_limit_subquery_sql(compiled_code, limit) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_limit_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4317384, "supported_languages": null}, "macro.dbt.get_limit_subquery_sql": {"name": "get_limit_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.get_limit_subquery_sql", "macro_sql": "\n{%- macro get_limit_subquery_sql(sql, limit) -%}\n {{ adapter.dispatch('get_limit_sql', 'dbt')(sql, limit) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__get_limit_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4320579, "supported_languages": null}, "macro.dbt.default__get_limit_sql": {"name": "default__get_limit_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.default__get_limit_sql", "macro_sql": "{% macro default__get_limit_sql(sql, limit) %}\n {{ sql }}\n {% if limit is not none %}\n limit {{ limit }}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4323854, "supported_languages": null}, "macro.dbt.make_intermediate_relation": {"name": "make_intermediate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_intermediate_relation", "macro_sql": "{% macro make_intermediate_relation(base_relation, suffix='__dbt_tmp') %}\n {{ return(adapter.dispatch('make_intermediate_relation', 'dbt')(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_intermediate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4335783, "supported_languages": null}, "macro.dbt.default__make_intermediate_relation": {"name": "default__make_intermediate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_intermediate_relation", "macro_sql": "{% macro default__make_intermediate_relation(base_relation, suffix) %}\n {{ return(default__make_temp_relation(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4338834, "supported_languages": null}, "macro.dbt.make_temp_relation": {"name": "make_temp_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_temp_relation", "macro_sql": "{% macro make_temp_relation(base_relation, suffix='__dbt_tmp') %}\n {#-- This ensures microbatch batches get unique temp relations to avoid clobbering --#}\n {% if suffix == '__dbt_tmp' and model.batch %}\n {% set suffix = suffix ~ '_' ~ model.batch.id %}\n {% endif %}\n\n {{ return(adapter.dispatch('make_temp_relation', 'dbt')(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4346778, "supported_languages": null}, "macro.dbt.default__make_temp_relation": {"name": "default__make_temp_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_temp_relation", "macro_sql": "{% macro default__make_temp_relation(base_relation, suffix) %}\n {%- set temp_identifier = base_relation.identifier ~ suffix -%}\n {%- set temp_relation = base_relation.incorporate(\n path={\"identifier\": temp_identifier}) -%}\n\n {{ return(temp_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4351811, "supported_languages": null}, "macro.dbt.make_backup_relation": {"name": "make_backup_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_backup_relation", "macro_sql": "{% macro make_backup_relation(base_relation, backup_relation_type, suffix='__dbt_backup') %}\n {{ return(adapter.dispatch('make_backup_relation', 'dbt')(base_relation, backup_relation_type, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_backup_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4355865, "supported_languages": null}, "macro.dbt.default__make_backup_relation": {"name": "default__make_backup_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_backup_relation", "macro_sql": "{% macro default__make_backup_relation(base_relation, backup_relation_type, suffix) %}\n {%- set backup_identifier = base_relation.identifier ~ suffix -%}\n {%- set backup_relation = base_relation.incorporate(\n path={\"identifier\": backup_identifier},\n type=backup_relation_type\n ) -%}\n {{ return(backup_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.436138, "supported_languages": null}, "macro.dbt.truncate_relation": {"name": "truncate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.truncate_relation", "macro_sql": "{% macro truncate_relation(relation) -%}\n {{ return(adapter.dispatch('truncate_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__truncate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4364438, "supported_languages": null}, "macro.dbt.default__truncate_relation": {"name": "default__truncate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__truncate_relation", "macro_sql": "{% macro default__truncate_relation(relation) -%}\n {% call statement('truncate_relation') -%}\n truncate table {{ relation.render() }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.436752, "supported_languages": null}, "macro.dbt.get_or_create_relation": {"name": "get_or_create_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.get_or_create_relation", "macro_sql": "{% macro get_or_create_relation(database, schema, identifier, type) -%}\n {{ return(adapter.dispatch('get_or_create_relation', 'dbt')(database, schema, identifier, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_or_create_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.437158, "supported_languages": null}, "macro.dbt.default__get_or_create_relation": {"name": "default__get_or_create_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__get_or_create_relation", "macro_sql": "{% macro default__get_or_create_relation(database, schema, identifier, type) %}\n {%- set target_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) %}\n\n {% if target_relation %}\n {% do return([true, target_relation]) %}\n {% endif %}\n\n {%- set new_relation = api.Relation.create(\n database=database,\n schema=schema,\n identifier=identifier,\n type=type\n ) -%}\n {% do return([false, new_relation]) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.438085, "supported_languages": null}, "macro.dbt.load_cached_relation": {"name": "load_cached_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.load_cached_relation", "macro_sql": "{% macro load_cached_relation(relation) %}\n {% do return(adapter.get_relation(\n database=relation.database,\n schema=relation.schema,\n identifier=relation.identifier\n )) -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4384708, "supported_languages": null}, "macro.dbt.load_relation": {"name": "load_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.load_relation", "macro_sql": "{% macro load_relation(relation) %}\n {{ return(load_cached_relation(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4387214, "supported_languages": null}, "macro.dbt.current_timestamp": {"name": "current_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp", "macro_sql": "{%- macro current_timestamp() -%}\n {{ adapter.dispatch('current_timestamp', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.439531, "supported_languages": null}, "macro.dbt.default__current_timestamp": {"name": "default__current_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp", "macro_sql": "{% macro default__current_timestamp() -%}\n {{ exceptions.raise_not_implemented(\n 'current_timestamp macro not implemented for adapter ' + adapter.type()) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.439802, "supported_languages": null}, "macro.dbt.snapshot_get_time": {"name": "snapshot_get_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.snapshot_get_time", "macro_sql": "\n\n{%- macro snapshot_get_time() -%}\n {{ adapter.dispatch('snapshot_get_time', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4400432, "supported_languages": null}, "macro.dbt.default__snapshot_get_time": {"name": "default__snapshot_get_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__snapshot_get_time", "macro_sql": "{% macro default__snapshot_get_time() %}\n {{ current_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4402204, "supported_languages": null}, "macro.dbt.get_snapshot_get_time_data_type": {"name": "get_snapshot_get_time_data_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.get_snapshot_get_time_data_type", "macro_sql": "{% macro get_snapshot_get_time_data_type() %}\n {% set snapshot_time = adapter.dispatch('snapshot_get_time', 'dbt')() %}\n {% set time_data_type_sql = 'select ' ~ snapshot_time ~ ' as dbt_snapshot_time' %}\n {% set snapshot_time_column_schema = get_column_schema_from_query(time_data_type_sql) %}\n {% set time_data_type = snapshot_time_column_schema[0].dtype %}\n {{ return(time_data_type or none) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_get_time", "macro.dbt_postgres.postgres__snapshot_get_time", "macro.dbt.get_column_schema_from_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4409268, "supported_languages": null}, "macro.dbt.current_timestamp_backcompat": {"name": "current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp_backcompat", "macro_sql": "{% macro current_timestamp_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4412103, "supported_languages": null}, "macro.dbt.default__current_timestamp_backcompat": {"name": "default__current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp_backcompat", "macro_sql": "{% macro default__current_timestamp_backcompat() %}\n current_timestamp::timestamp\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4413393, "supported_languages": null}, "macro.dbt.current_timestamp_in_utc_backcompat": {"name": "current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp_in_utc_backcompat", "macro_sql": "{% macro current_timestamp_in_utc_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_in_utc_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4416049, "supported_languages": null}, "macro.dbt.default__current_timestamp_in_utc_backcompat": {"name": "default__current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp_in_utc_backcompat", "macro_sql": "{% macro default__current_timestamp_in_utc_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp_backcompat", "macro.dbt_postgres.postgres__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4420311, "supported_languages": null}, "macro.dbt.copy_grants": {"name": "copy_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.copy_grants", "macro_sql": "{% macro copy_grants() %}\n {{ return(adapter.dispatch('copy_grants', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4440193, "supported_languages": null}, "macro.dbt.default__copy_grants": {"name": "default__copy_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__copy_grants", "macro_sql": "{% macro default__copy_grants() %}\n {{ return(True) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4442353, "supported_languages": null}, "macro.dbt.support_multiple_grantees_per_dcl_statement": {"name": "support_multiple_grantees_per_dcl_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.support_multiple_grantees_per_dcl_statement", "macro_sql": "{% macro support_multiple_grantees_per_dcl_statement() %}\n {{ return(adapter.dispatch('support_multiple_grantees_per_dcl_statement', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__support_multiple_grantees_per_dcl_statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.444516, "supported_languages": null}, "macro.dbt.default__support_multiple_grantees_per_dcl_statement": {"name": "default__support_multiple_grantees_per_dcl_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__support_multiple_grantees_per_dcl_statement", "macro_sql": "\n\n{%- macro default__support_multiple_grantees_per_dcl_statement() -%}\n {{ return(True) }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4447188, "supported_languages": null}, "macro.dbt.should_revoke": {"name": "should_revoke", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.should_revoke", "macro_sql": "{% macro should_revoke(existing_relation, full_refresh_mode=True) %}\n\n {% if not existing_relation %}\n {#-- The table doesn't already exist, so no grants to copy over --#}\n {{ return(False) }}\n {% elif full_refresh_mode %}\n {#-- The object is being REPLACED -- whether grants are copied over depends on the value of user config --#}\n {{ return(copy_grants()) }}\n {% else %}\n {#-- The table is being merged/upserted/inserted -- grants will be carried over --#}\n {{ return(True) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4452727, "supported_languages": null}, "macro.dbt.get_show_grant_sql": {"name": "get_show_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_show_grant_sql", "macro_sql": "{% macro get_show_grant_sql(relation) %}\n {{ return(adapter.dispatch(\"get_show_grant_sql\", \"dbt\")(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_show_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4455762, "supported_languages": null}, "macro.dbt.default__get_show_grant_sql": {"name": "default__get_show_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_show_grant_sql", "macro_sql": "{% macro default__get_show_grant_sql(relation) %}\n show grants on {{ relation.render() }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4457889, "supported_languages": null}, "macro.dbt.get_grant_sql": {"name": "get_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_grant_sql", "macro_sql": "{% macro get_grant_sql(relation, privilege, grantees) %}\n {{ return(adapter.dispatch('get_grant_sql', 'dbt')(relation, privilege, grantees)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4461567, "supported_languages": null}, "macro.dbt.default__get_grant_sql": {"name": "default__get_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_grant_sql", "macro_sql": "\n\n{%- macro default__get_grant_sql(relation, privilege, grantees) -%}\n grant {{ privilege }} on {{ relation.render() }} to {{ grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.446499, "supported_languages": null}, "macro.dbt.get_revoke_sql": {"name": "get_revoke_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_revoke_sql", "macro_sql": "{% macro get_revoke_sql(relation, privilege, grantees) %}\n {{ return(adapter.dispatch('get_revoke_sql', 'dbt')(relation, privilege, grantees)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_revoke_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4468894, "supported_languages": null}, "macro.dbt.default__get_revoke_sql": {"name": "default__get_revoke_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_revoke_sql", "macro_sql": "\n\n{%- macro default__get_revoke_sql(relation, privilege, grantees) -%}\n revoke {{ privilege }} on {{ relation.render() }} from {{ grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4472382, "supported_languages": null}, "macro.dbt.get_dcl_statement_list": {"name": "get_dcl_statement_list", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_dcl_statement_list", "macro_sql": "{% macro get_dcl_statement_list(relation, grant_config, get_dcl_macro) %}\n {{ return(adapter.dispatch('get_dcl_statement_list', 'dbt')(relation, grant_config, get_dcl_macro)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_dcl_statement_list"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.447619, "supported_languages": null}, "macro.dbt.default__get_dcl_statement_list": {"name": "default__get_dcl_statement_list", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_dcl_statement_list", "macro_sql": "\n\n{%- macro default__get_dcl_statement_list(relation, grant_config, get_dcl_macro) -%}\n {#\n -- Unpack grant_config into specific privileges and the set of users who need them granted/revoked.\n -- Depending on whether this database supports multiple grantees per statement, pass in the list of\n -- all grantees per privilege, or (if not) template one statement per privilege-grantee pair.\n -- `get_dcl_macro` will be either `get_grant_sql` or `get_revoke_sql`\n #}\n {%- set dcl_statements = [] -%}\n {%- for privilege, grantees in grant_config.items() %}\n {%- if support_multiple_grantees_per_dcl_statement() and grantees -%}\n {%- set dcl = get_dcl_macro(relation, privilege, grantees) -%}\n {%- do dcl_statements.append(dcl) -%}\n {%- else -%}\n {%- for grantee in grantees -%}\n {% set dcl = get_dcl_macro(relation, privilege, [grantee]) %}\n {%- do dcl_statements.append(dcl) -%}\n {% endfor -%}\n {%- endif -%}\n {%- endfor -%}\n {{ return(dcl_statements) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.support_multiple_grantees_per_dcl_statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4488652, "supported_languages": null}, "macro.dbt.call_dcl_statements": {"name": "call_dcl_statements", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.call_dcl_statements", "macro_sql": "{% macro call_dcl_statements(dcl_statement_list) %}\n {{ return(adapter.dispatch(\"call_dcl_statements\", \"dbt\")(dcl_statement_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4491913, "supported_languages": null}, "macro.dbt.default__call_dcl_statements": {"name": "default__call_dcl_statements", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__call_dcl_statements", "macro_sql": "{% macro default__call_dcl_statements(dcl_statement_list) %}\n {#\n -- By default, supply all grant + revoke statements in a single semicolon-separated block,\n -- so that they're all processed together.\n\n -- Some databases do not support this. Those adapters will need to override this macro\n -- to run each statement individually.\n #}\n {% call statement('grants') %}\n {% for dcl_statement in dcl_statement_list %}\n {{ dcl_statement }};\n {% endfor %}\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.449597, "supported_languages": null}, "macro.dbt.apply_grants": {"name": "apply_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.apply_grants", "macro_sql": "{% macro apply_grants(relation, grant_config, should_revoke) %}\n {{ return(adapter.dispatch(\"apply_grants\", \"dbt\")(relation, grant_config, should_revoke)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.449997, "supported_languages": null}, "macro.dbt.default__apply_grants": {"name": "default__apply_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__apply_grants", "macro_sql": "{% macro default__apply_grants(relation, grant_config, should_revoke=True) %}\n {#-- If grant_config is {} or None, this is a no-op --#}\n {% if grant_config %}\n {% if should_revoke %}\n {#-- We think previous grants may have carried over --#}\n {#-- Show current grants and calculate diffs --#}\n {% set current_grants_table = run_query(get_show_grant_sql(relation)) %}\n {% set current_grants_dict = adapter.standardize_grants_dict(current_grants_table) %}\n {% set needs_granting = diff_of_two_dicts(grant_config, current_grants_dict) %}\n {% set needs_revoking = diff_of_two_dicts(current_grants_dict, grant_config) %}\n {% if not (needs_granting or needs_revoking) %}\n {{ log('On ' ~ relation.render() ~': All grants are in place, no revocation or granting needed.')}}\n {% endif %}\n {% else %}\n {#-- We don't think there's any chance of previous grants having carried over. --#}\n {#-- Jump straight to granting what the user has configured. --#}\n {% set needs_revoking = {} %}\n {% set needs_granting = grant_config %}\n {% endif %}\n {% if needs_granting or needs_revoking %}\n {% set revoke_statement_list = get_dcl_statement_list(relation, needs_revoking, get_revoke_sql) %}\n {% set grant_statement_list = get_dcl_statement_list(relation, needs_granting, get_grant_sql) %}\n {% set dcl_statement_list = revoke_statement_list + grant_statement_list %}\n {% if dcl_statement_list %}\n {{ call_dcl_statements(dcl_statement_list) }}\n {% endif %}\n {% endif %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.get_show_grant_sql", "macro.dbt.get_dcl_statement_list", "macro.dbt.call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4518943, "supported_languages": null}, "macro.dbt.get_catalog_relations": {"name": "get_catalog_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog_relations", "macro_sql": "{% macro get_catalog_relations(information_schema, relations) -%}\n {{ return(adapter.dispatch('get_catalog_relations', 'dbt')(information_schema, relations)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4534492, "supported_languages": null}, "macro.dbt.default__get_catalog_relations": {"name": "default__get_catalog_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog_relations", "macro_sql": "{% macro default__get_catalog_relations(information_schema, relations) -%}\n {% set typename = adapter.type() %}\n {% set msg -%}\n get_catalog_relations not implemented for {{ typename }}\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4539087, "supported_languages": null}, "macro.dbt.get_catalog": {"name": "get_catalog", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog", "macro_sql": "{% macro get_catalog(information_schema, schemas) -%}\n {{ return(adapter.dispatch('get_catalog', 'dbt')(information_schema, schemas)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.454249, "supported_languages": null}, "macro.dbt.default__get_catalog": {"name": "default__get_catalog", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog", "macro_sql": "{% macro default__get_catalog(information_schema, schemas) -%}\n\n {% set typename = adapter.type() %}\n {% set msg -%}\n get_catalog not implemented for {{ typename }}\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.454686, "supported_languages": null}, "macro.dbt.information_schema_name": {"name": "information_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.information_schema_name", "macro_sql": "{% macro information_schema_name(database) %}\n {{ return(adapter.dispatch('information_schema_name', 'dbt')(database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__information_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.454997, "supported_languages": null}, "macro.dbt.default__information_schema_name": {"name": "default__information_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__information_schema_name", "macro_sql": "{% macro default__information_schema_name(database) -%}\n {%- if database -%}\n {{ database }}.INFORMATION_SCHEMA\n {%- else -%}\n INFORMATION_SCHEMA\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4552648, "supported_languages": null}, "macro.dbt.list_schemas": {"name": "list_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.list_schemas", "macro_sql": "{% macro list_schemas(database) -%}\n {{ return(adapter.dispatch('list_schemas', 'dbt')(database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__list_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4555614, "supported_languages": null}, "macro.dbt.default__list_schemas": {"name": "default__list_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__list_schemas", "macro_sql": "{% macro default__list_schemas(database) -%}\n {% set sql %}\n select distinct schema_name\n from {{ information_schema_name(database) }}.SCHEMATA\n where catalog_name ilike '{{ database }}'\n {% endset %}\n {{ return(run_query(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.information_schema_name", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.455978, "supported_languages": null}, "macro.dbt.check_schema_exists": {"name": "check_schema_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.check_schema_exists", "macro_sql": "{% macro check_schema_exists(information_schema, schema) -%}\n {{ return(adapter.dispatch('check_schema_exists', 'dbt')(information_schema, schema)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__check_schema_exists"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4563153, "supported_languages": null}, "macro.dbt.default__check_schema_exists": {"name": "default__check_schema_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__check_schema_exists", "macro_sql": "{% macro default__check_schema_exists(information_schema, schema) -%}\n {% set sql -%}\n select count(*)\n from {{ information_schema.replace(information_schema_view='SCHEMATA') }}\n where catalog_name='{{ information_schema.database }}'\n and schema_name='{{ schema }}'\n {%- endset %}\n {{ return(run_query(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4568255, "supported_languages": null}, "macro.dbt.list_relations_without_caching": {"name": "list_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.list_relations_without_caching", "macro_sql": "{% macro list_relations_without_caching(schema_relation) %}\n {{ return(adapter.dispatch('list_relations_without_caching', 'dbt')(schema_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__list_relations_without_caching"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.457143, "supported_languages": null}, "macro.dbt.default__list_relations_without_caching": {"name": "default__list_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__list_relations_without_caching", "macro_sql": "{% macro default__list_relations_without_caching(schema_relation) %}\n {{ exceptions.raise_not_implemented(\n 'list_relations_without_caching macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4574099, "supported_languages": null}, "macro.dbt.list_function_relations_without_caching": {"name": "list_function_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.list_function_relations_without_caching", "macro_sql": "{% macro list_function_relations_without_caching(schema_relation) %}\n {{ return(adapter.dispatch('list_function_relations_without_caching', 'dbt')(schema_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__list_function_relations_without_caching"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4578583, "supported_languages": null}, "macro.dbt.default__list_function_relations_without_caching": {"name": "default__list_function_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__list_function_relations_without_caching", "macro_sql": "{% macro default__list_function_relations_without_caching(schema_relation) %}\n {{ exceptions.raise_not_implemented(\n 'list_function_relations_without_caching macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4581401, "supported_languages": null}, "macro.dbt.get_catalog_for_single_relation": {"name": "get_catalog_for_single_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog_for_single_relation", "macro_sql": "{% macro get_catalog_for_single_relation(relation) %}\n {{ return(adapter.dispatch('get_catalog_for_single_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_catalog_for_single_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4584477, "supported_languages": null}, "macro.dbt.default__get_catalog_for_single_relation": {"name": "default__get_catalog_for_single_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog_for_single_relation", "macro_sql": "{% macro default__get_catalog_for_single_relation(relation) %}\n {{ exceptions.raise_not_implemented(\n 'get_catalog_for_single_relation macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4587286, "supported_languages": null}, "macro.dbt.get_relations": {"name": "get_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_relations", "macro_sql": "{% macro get_relations() %}\n {{ return(adapter.dispatch('get_relations', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4590044, "supported_languages": null}, "macro.dbt.default__get_relations": {"name": "default__get_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_relations", "macro_sql": "{% macro default__get_relations() %}\n {{ exceptions.raise_not_implemented(\n 'get_relations macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4592562, "supported_languages": null}, "macro.dbt.get_relation_last_modified": {"name": "get_relation_last_modified", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_relation_last_modified", "macro_sql": "{% macro get_relation_last_modified(information_schema, relations) %}\n {{ return(adapter.dispatch('get_relation_last_modified', 'dbt')(information_schema, relations)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_relation_last_modified"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4595945, "supported_languages": null}, "macro.dbt.default__get_relation_last_modified": {"name": "default__get_relation_last_modified", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_relation_last_modified", "macro_sql": "{% macro default__get_relation_last_modified(information_schema, relations) %}\n {{ exceptions.raise_not_implemented(\n 'get_relation_last_modified macro not implemented for adapter ' + adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4598956, "supported_languages": null}, "macro.dbt.create_schema": {"name": "create_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.create_schema", "macro_sql": "{% macro create_schema(relation) -%}\n {{ adapter.dispatch('create_schema', 'dbt')(relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.460465, "supported_languages": null}, "macro.dbt.default__create_schema": {"name": "default__create_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.default__create_schema", "macro_sql": "{% macro default__create_schema(relation) -%}\n {%- call statement('create_schema') -%}\n create schema if not exists {{ relation.without_identifier() }}\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4608803, "supported_languages": null}, "macro.dbt.drop_schema": {"name": "drop_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.drop_schema", "macro_sql": "{% macro drop_schema(relation) -%}\n {{ adapter.dispatch('drop_schema', 'dbt')(relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4611733, "supported_languages": null}, "macro.dbt.default__drop_schema": {"name": "default__drop_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.default__drop_schema", "macro_sql": "{% macro default__drop_schema(relation) -%}\n {%- call statement('drop_schema') -%}\n drop schema if exists {{ relation.without_identifier() }} cascade\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4614887, "supported_languages": null}, "macro.dbt.get_columns_in_relation": {"name": "get_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_columns_in_relation", "macro_sql": "{% macro get_columns_in_relation(relation) -%}\n {{ return(adapter.dispatch('get_columns_in_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.463548, "supported_languages": null}, "macro.dbt.default__get_columns_in_relation": {"name": "default__get_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_columns_in_relation", "macro_sql": "{% macro default__get_columns_in_relation(relation) -%}\n {{ exceptions.raise_not_implemented(\n 'get_columns_in_relation macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4638414, "supported_languages": null}, "macro.dbt.sql_convert_columns_in_relation": {"name": "sql_convert_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.sql_convert_columns_in_relation", "macro_sql": "{% macro sql_convert_columns_in_relation(table) -%}\n {% set columns = [] %}\n {% for row in table %}\n {% do columns.append(api.Column(*row)) %}\n {% endfor %}\n {{ return(columns) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4643502, "supported_languages": null}, "macro.dbt.get_list_of_column_names": {"name": "get_list_of_column_names", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_list_of_column_names", "macro_sql": "\n\n{%- macro get_list_of_column_names(columns) -%}\n {% set col_names = [] %}\n {% for col in columns %}\n {% do col_names.append(col.name) %}\n {% endfor %}\n {{ return(col_names) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.464834, "supported_languages": null}, "macro.dbt.get_empty_subquery_sql": {"name": "get_empty_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_empty_subquery_sql", "macro_sql": "{% macro get_empty_subquery_sql(select_sql, select_sql_header=none) -%}\n {{ return(adapter.dispatch('get_empty_subquery_sql', 'dbt')(select_sql, select_sql_header)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.465329, "supported_languages": null}, "macro.dbt.default__get_empty_subquery_sql": {"name": "default__get_empty_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_empty_subquery_sql", "macro_sql": "{% macro default__get_empty_subquery_sql(select_sql, select_sql_header=none) %}\n {%- if select_sql_header is not none -%}\n {{ select_sql_header }}\n {%- endif -%}\n select * from (\n {{ select_sql }}\n ) as __dbt_sbq\n where false\n limit 0\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4656894, "supported_languages": null}, "macro.dbt.get_empty_schema_sql": {"name": "get_empty_schema_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_empty_schema_sql", "macro_sql": "{% macro get_empty_schema_sql(columns) -%}\n {{ return(adapter.dispatch('get_empty_schema_sql', 'dbt')(columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_empty_schema_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.466066, "supported_languages": null}, "macro.dbt.default__get_empty_schema_sql": {"name": "default__get_empty_schema_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_empty_schema_sql", "macro_sql": "{% macro default__get_empty_schema_sql(columns) %}\n {%- set col_err = [] -%}\n {%- set col_naked_numeric = [] -%}\n select\n {% for i in columns %}\n {%- set col = columns[i] -%}\n {%- if col['data_type'] is not defined -%}\n {%- do col_err.append(col['name']) -%}\n {#-- If this column's type is just 'numeric' then it is missing precision/scale, raise a warning --#}\n {%- elif col['data_type'].strip().lower() in ('numeric', 'decimal', 'number') -%}\n {%- do col_naked_numeric.append(col['name']) -%}\n {%- endif -%}\n {% set col_name = adapter.quote(col['name']) if col.get('quote') else col['name'] %}\n {{ cast('null', col['data_type']) }} as {{ col_name }}{{ \", \" if not loop.last }}\n {%- endfor -%}\n {%- if (col_err | length) > 0 -%}\n {{ exceptions.column_type_missing(column_names=col_err) }}\n {%- elif (col_naked_numeric | length) > 0 -%}\n {{ exceptions.warn(\"Detected columns with numeric type and unspecified precision/scale, this can lead to unintended rounding: \" ~ col_naked_numeric ~ \"`\") }}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4680471, "supported_languages": null}, "macro.dbt.get_column_schema_from_query": {"name": "get_column_schema_from_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_column_schema_from_query", "macro_sql": "{% macro get_column_schema_from_query(select_sql, select_sql_header=none) -%}\n {% set columns = [] %}\n {# -- Using an 'empty subquery' here to get the same schema as the given select_sql statement, without necessitating a data scan.#}\n {% set sql = get_empty_subquery_sql(select_sql, select_sql_header) %}\n {% set column_schema = adapter.get_column_schema_from_query(sql) %}\n {{ return(column_schema) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4686546, "supported_languages": null}, "macro.dbt.get_columns_in_query": {"name": "get_columns_in_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_columns_in_query", "macro_sql": "{% macro get_columns_in_query(select_sql) -%}\n {{ return(adapter.dispatch('get_columns_in_query', 'dbt')(select_sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4689722, "supported_languages": null}, "macro.dbt.default__get_columns_in_query": {"name": "default__get_columns_in_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_columns_in_query", "macro_sql": "{% macro default__get_columns_in_query(select_sql) %}\n {% call statement('get_columns_in_query', fetch_result=True, auto_begin=False) -%}\n {{ get_empty_subquery_sql(select_sql) }}\n {% endcall %}\n {{ return(load_result('get_columns_in_query').table.columns | map(attribute='name') | list) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4695396, "supported_languages": null}, "macro.dbt.alter_column_type": {"name": "alter_column_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.alter_column_type", "macro_sql": "{% macro alter_column_type(relation, column_name, new_column_type) -%}\n {{ return(adapter.dispatch('alter_column_type', 'dbt')(relation, column_name, new_column_type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.469936, "supported_languages": null}, "macro.dbt.default__alter_column_type": {"name": "default__alter_column_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__alter_column_type", "macro_sql": "{% macro default__alter_column_type(relation, column_name, new_column_type) -%}\n {#\n 1. Create a new column (w/ temp name and correct type)\n 2. Copy data over to it\n 3. Drop the existing column (cascade!)\n 4. Rename the new column to existing column\n #}\n {%- set tmp_column = column_name + \"__dbt_alter\" -%}\n\n {% call statement('alter_column_type') %}\n alter table {{ relation.render() }} add column {{ adapter.quote(tmp_column) }} {{ new_column_type }};\n update {{ relation.render() }} set {{ adapter.quote(tmp_column) }} = {{ adapter.quote(column_name) }};\n alter table {{ relation.render() }} drop column {{ adapter.quote(column_name) }} cascade;\n alter table {{ relation.render() }} rename column {{ adapter.quote(tmp_column) }} to {{ adapter.quote(column_name) }}\n {% endcall %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4710133, "supported_languages": null}, "macro.dbt.alter_relation_add_remove_columns": {"name": "alter_relation_add_remove_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.alter_relation_add_remove_columns", "macro_sql": "{% macro alter_relation_add_remove_columns(relation, add_columns = none, remove_columns = none) -%}\n {{ return(adapter.dispatch('alter_relation_add_remove_columns', 'dbt')(relation, add_columns, remove_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__alter_relation_add_remove_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4714375, "supported_languages": null}, "macro.dbt.default__alter_relation_add_remove_columns": {"name": "default__alter_relation_add_remove_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__alter_relation_add_remove_columns", "macro_sql": "{% macro default__alter_relation_add_remove_columns(relation, add_columns, remove_columns) %}\n\n {% if add_columns is none %}\n {% set add_columns = [] %}\n {% endif %}\n {% if remove_columns is none %}\n {% set remove_columns = [] %}\n {% endif %}\n\n {% set sql -%}\n\n alter {{ relation.type }} {{ relation.render() }}\n\n {% for column in add_columns %}\n add column {{ column.quoted }} {{ column.expanded_data_type }}{{ ',' if not loop.last }}\n {% endfor %}{{ ',' if add_columns and remove_columns }}\n\n {% for column in remove_columns %}\n drop column {{ column.quoted }}{{ ',' if not loop.last }}\n {% endfor %}\n\n {%- endset -%}\n\n {% do run_query(sql) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4727473, "supported_languages": null}, "macro.dbt.get_create_index_sql": {"name": "get_create_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_create_index_sql", "macro_sql": "{% macro get_create_index_sql(relation, index_dict) -%}\n {{ return(adapter.dispatch('get_create_index_sql', 'dbt')(relation, index_dict)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4736092, "supported_languages": null}, "macro.dbt.default__get_create_index_sql": {"name": "default__get_create_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_create_index_sql", "macro_sql": "{% macro default__get_create_index_sql(relation, index_dict) -%}\n {% do return(None) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.473867, "supported_languages": null}, "macro.dbt.create_indexes": {"name": "create_indexes", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.create_indexes", "macro_sql": "{% macro create_indexes(relation) -%}\n {{ adapter.dispatch('create_indexes', 'dbt')(relation) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4741368, "supported_languages": null}, "macro.dbt.default__create_indexes": {"name": "default__create_indexes", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__create_indexes", "macro_sql": "{% macro default__create_indexes(relation) -%}\n {%- set _indexes = config.get('indexes', default=[]) -%}\n\n {% for _index_dict in _indexes %}\n {% set create_index_sql = get_create_index_sql(relation, _index_dict) %}\n {% if create_index_sql %}\n {% do run_query(create_index_sql) %}\n {% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_create_index_sql", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4747965, "supported_languages": null}, "macro.dbt.get_drop_index_sql": {"name": "get_drop_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_drop_index_sql", "macro_sql": "{% macro get_drop_index_sql(relation, index_name) -%}\n {{ adapter.dispatch('get_drop_index_sql', 'dbt')(relation, index_name) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_drop_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4751043, "supported_languages": null}, "macro.dbt.default__get_drop_index_sql": {"name": "default__get_drop_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_drop_index_sql", "macro_sql": "{% macro default__get_drop_index_sql(relation, index_name) -%}\n {{ exceptions.raise_compiler_error(\"`get_drop_index_sql has not been implemented for this adapter.\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4753273, "supported_languages": null}, "macro.dbt.get_show_indexes_sql": {"name": "get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_show_indexes_sql", "macro_sql": "{% macro get_show_indexes_sql(relation) -%}\n {{ adapter.dispatch('get_show_indexes_sql', 'dbt')(relation) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_show_indexes_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4757185, "supported_languages": null}, "macro.dbt.default__get_show_indexes_sql": {"name": "default__get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_show_indexes_sql", "macro_sql": "{% macro default__get_show_indexes_sql(relation) -%}\n {{ exceptions.raise_compiler_error(\"`get_show_indexes_sql has not been implemented for this adapter.\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4759314, "supported_languages": null}, "macro.dbt.alter_column_comment": {"name": "alter_column_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.alter_column_comment", "macro_sql": "{% macro alter_column_comment(relation, column_dict) -%}\n {{ return(adapter.dispatch('alter_column_comment', 'dbt')(relation, column_dict)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4770882, "supported_languages": null}, "macro.dbt.default__alter_column_comment": {"name": "default__alter_column_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__alter_column_comment", "macro_sql": "{% macro default__alter_column_comment(relation, column_dict) -%}\n {{ exceptions.raise_not_implemented(\n 'alter_column_comment macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4773874, "supported_languages": null}, "macro.dbt.alter_relation_comment": {"name": "alter_relation_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.alter_relation_comment", "macro_sql": "{% macro alter_relation_comment(relation, relation_comment) -%}\n {{ return(adapter.dispatch('alter_relation_comment', 'dbt')(relation, relation_comment)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_relation_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4777799, "supported_languages": null}, "macro.dbt.default__alter_relation_comment": {"name": "default__alter_relation_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__alter_relation_comment", "macro_sql": "{% macro default__alter_relation_comment(relation, relation_comment) -%}\n {{ exceptions.raise_not_implemented(\n 'alter_relation_comment macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4780805, "supported_languages": null}, "macro.dbt.persist_docs": {"name": "persist_docs", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.persist_docs", "macro_sql": "{% macro persist_docs(relation, model, for_relation=true, for_columns=true) -%}\n {{ return(adapter.dispatch('persist_docs', 'dbt')(relation, model, for_relation, for_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4785254, "supported_languages": null}, "macro.dbt.validate_doc_columns": {"name": "validate_doc_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.validate_doc_columns", "macro_sql": "{% macro validate_doc_columns(relation, column_dict, existing_column_names) %}\n {% set existing_lower = existing_column_names | map(\"lower\") | list %}\n {% set missing = [] %}\n {% set filtered = {} %}\n {% for col_name in column_dict %}\n {% set is_quoted = column_dict[col_name]['quote'] %}\n {% if is_quoted %}\n {% set present = col_name in existing_column_names %}\n {% else %}\n {% set present = col_name | lower in existing_lower %}\n {% endif %}\n {% if present %}\n {% do filtered.update({col_name: column_dict[col_name]}) %}\n {% else %}\n {% do missing.append(col_name) %}\n {% endif %}\n {% endfor %}\n {% if missing | length > 0 %}\n {{ exceptions.warn(\"In relation \" ~ relation.render() ~ \": The following columns are specified in the schema but are not present in the database: \" ~ missing | join(\", \")) }}\n {% endif %}\n {{ return(filtered) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4802585, "supported_languages": null}, "macro.dbt.default__persist_docs": {"name": "default__persist_docs", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__persist_docs", "macro_sql": "{% macro default__persist_docs(relation, model, for_relation, for_columns) -%}\n {% if for_relation and config.persist_relation_docs() and model.description %}\n {% do run_query(alter_relation_comment(relation, model.description)) %}\n {% endif %}\n\n {% if for_columns and config.persist_column_docs() and model.columns %}\n {% set existing_columns = adapter.get_columns_in_relation(relation) | map(attribute=\"name\") | list %}\n {% set filtered_columns = validate_doc_columns(relation, model.columns, existing_columns) %}\n {% set alter_comment_sql = alter_column_comment(relation, filtered_columns) %}\n {% if alter_comment_sql and alter_comment_sql | trim | length > 0 %}\n {% do run_query(alter_comment_sql) %}\n {% endif %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.alter_relation_comment", "macro.dbt.validate_doc_columns", "macro.dbt.alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4821072, "supported_languages": null}, "macro.dbt.test_unique": {"name": "test_unique", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_unique", "macro_sql": "{% test unique(model, column_name) %}\n {% set macro = adapter.dispatch('test_unique', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_unique"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4829051, "supported_languages": null}, "macro.dbt.test_not_null": {"name": "test_not_null", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_not_null", "macro_sql": "{% test not_null(model, column_name) %}\n {% set macro = adapter.dispatch('test_not_null', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4833233, "supported_languages": null}, "macro.dbt.test_accepted_values": {"name": "test_accepted_values", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_accepted_values", "macro_sql": "{% test accepted_values(model, column_name, values, quote=True) %}\n {% set macro = adapter.dispatch('test_accepted_values', 'dbt') %}\n {{ macro(model, column_name, values, quote) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4838483, "supported_languages": null}, "macro.dbt.test_relationships": {"name": "test_relationships", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_relationships", "macro_sql": "{% test relationships(model, column_name, to, field) %}\n {% set macro = adapter.dispatch('test_relationships', 'dbt') %}\n {{ macro(model, column_name, to, field) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_relationships"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4843328, "supported_languages": null}, "macro.stripe.date_timezone": {"name": "date_timezone", "resource_type": "macro", "package_name": "stripe", "path": "macros/date_timezone.sql", "original_file_path": "macros/date_timezone.sql", "unique_id": "macro.stripe.date_timezone", "macro_sql": "{% macro date_timezone(column) -%}\n\n{{ adapter.dispatch('date_timezone', 'stripe')(column) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.stripe.postgres__date_timezone"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4853313, "supported_languages": null}, "macro.stripe.bigquery__date_timezone": {"name": "bigquery__date_timezone", "resource_type": "macro", "package_name": "stripe", "path": "macros/date_timezone.sql", "original_file_path": "macros/date_timezone.sql", "unique_id": "macro.stripe.bigquery__date_timezone", "macro_sql": "{% macro bigquery__date_timezone(column) -%}\n\ndate(\n {{ column }}\n {% if var('stripe_timezone', none) %} , \"{{ var('stripe_timezone') }}\" {% endif %}\n )\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4857256, "supported_languages": null}, "macro.stripe.postgres__date_timezone": {"name": "postgres__date_timezone", "resource_type": "macro", "package_name": "stripe", "path": "macros/date_timezone.sql", "original_file_path": "macros/date_timezone.sql", "unique_id": "macro.stripe.postgres__date_timezone", "macro_sql": "{% macro postgres__date_timezone(column) -%}\n\n{% set converted_date %}\n\n{% if var('stripe_timezone', none) %}\n {{ column }} at time zone '{{ var('stripe_timezone') }}'\n{% else %}\n {{ column }}\n{% endif %}\n\n{% endset %}\n\n{{ dbt.date_trunc('day',converted_date) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4863102, "supported_languages": null}, "macro.stripe.redshift__date_timezone": {"name": "redshift__date_timezone", "resource_type": "macro", "package_name": "stripe", "path": "macros/date_timezone.sql", "original_file_path": "macros/date_timezone.sql", "unique_id": "macro.stripe.redshift__date_timezone", "macro_sql": "{% macro redshift__date_timezone(column) -%}\n\n{% set converted_date %}\n\n{% if var('stripe_timezone', none) %}\n convert_timezone('{{ var(\"stripe_timezone\") }}', {{ column }})\n{% else %}\n {{ column }}\n{% endif %}\n\n{% endset %}\n\n{{ dbt.date_trunc('day',converted_date) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4869037, "supported_languages": null}, "macro.stripe.default__date_timezone": {"name": "default__date_timezone", "resource_type": "macro", "package_name": "stripe", "path": "macros/date_timezone.sql", "original_file_path": "macros/date_timezone.sql", "unique_id": "macro.stripe.default__date_timezone", "macro_sql": "{% macro default__date_timezone(column) -%}\n\n{% set converted_date %}\n\n{% if var('stripe_timezone', none) %}\n convert_timezone('{{ var(\"stripe_timezone\") }}', {{ column }})\n{% else %}\n {{ column }}\n{% endif %}\n\n{% endset %}\n\n{{ dbt.date_trunc('day',converted_date) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4875114, "supported_languages": null}, "macro.stripe.spark__date_timezone": {"name": "spark__date_timezone", "resource_type": "macro", "package_name": "stripe", "path": "macros/date_timezone.sql", "original_file_path": "macros/date_timezone.sql", "unique_id": "macro.stripe.spark__date_timezone", "macro_sql": "{% macro spark__date_timezone(column) -%}\n\n{% set converted_date %}\n\n{% if var('stripe_timezone', none) %}\n from_utc_timestamp({{ column }}, '{{ var(\"stripe_timezone\") }}')\n{% else %}\n {{ column }}\n{% endif %}\n\n{% endset %}\n\n{{ dbt.date_trunc('day',converted_date) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.488113, "supported_languages": null}, "macro.stripe.select_metadata_columns": {"name": "select_metadata_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/select_metadata_columns.sql", "original_file_path": "macros/select_metadata_columns.sql", "unique_id": "macro.stripe.select_metadata_columns", "macro_sql": "{% macro select_metadata_columns(relation_alias, var_name, prefix=None) -%}\n\n{{ adapter.dispatch('select_metadata_columns', 'stripe')(relation_alias, var_name, prefix) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.stripe.default__select_metadata_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4887588, "supported_languages": null}, "macro.stripe.default__select_metadata_columns": {"name": "default__select_metadata_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/select_metadata_columns.sql", "original_file_path": "macros/select_metadata_columns.sql", "unique_id": "macro.stripe.default__select_metadata_columns", "macro_sql": "{% macro default__select_metadata_columns(relation_alias, var_name, prefix=None) %}\n {%- set properties = var(var_name, []) -%}\n {%- set prefix = prefix if prefix is not none else relation_alias -%}\n\n {%- for property in properties -%}\n {%- if property is mapping -%}\n {%- set col = property.alias if property.alias else property.name -%}\n {%- else -%}\n {%- set col = property -%}\n {%- endif -%}\n\n{{ relation_alias }}.{{ adapter.quote(col) }} as {{ prefix }}_{{ col }},\n {%- endfor -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4897478, "supported_languages": null}, "macro.stripe.get_transfer_columns": {"name": "get_transfer_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_transfer_columns.sql", "original_file_path": "macros/staging/get_transfer_columns.sql", "unique_id": "macro.stripe.get_transfer_columns", "macro_sql": "{% macro get_transfer_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"amount_reversed\", \"datatype\": dbt.type_int()},\n {\"name\": \"balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination_payment\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination_payment_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"reversed\", \"datatype\": \"boolean\"},\n {\"name\": \"source_transaction\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"transfer_group\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.492909, "supported_languages": null}, "macro.stripe.livemode_predicate": {"name": "livemode_predicate", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/livemode_predicate.sql", "original_file_path": "macros/staging/livemode_predicate.sql", "unique_id": "macro.stripe.livemode_predicate", "macro_sql": "{% macro livemode_predicate() %}\n\n where cast(livemode as {{ dbt.type_boolean() }} ) = {{ var('stripe__using_livemode', true) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_boolean"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4933176, "supported_languages": null}, "macro.stripe.get_refund_columns": {"name": "get_refund_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_refund_columns.sql", "original_file_path": "macros/staging/get_refund_columns.sql", "unique_id": "macro.stripe.get_refund_columns", "macro_sql": "{% macro get_refund_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"charge_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_intent_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"receipt_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4959838, "supported_languages": null}, "macro.stripe.get_balance_transaction_columns": {"name": "get_balance_transaction_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_balance_transaction_columns.sql", "original_file_path": "macros/staging/get_balance_transaction_columns.sql", "unique_id": "macro.stripe.get_balance_transaction_columns", "macro_sql": "{% macro get_balance_transaction_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"available_on\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"connected_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"exchange_rate\", \"datatype\": dbt.type_float()},\n {\"name\": \"fee\", \"datatype\": dbt.type_int()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"net\", \"datatype\": dbt.type_int()},\n {\"name\": \"payout_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"reporting_category\", \"datatype\": dbt.type_string()},\n {\"name\": \"source\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.4988124, "supported_languages": null}, "macro.stripe.get_invoice_columns": {"name": "get_invoice_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_invoice_columns.sql", "original_file_path": "macros/staging/get_invoice_columns.sql", "unique_id": "macro.stripe.get_invoice_columns", "macro_sql": "{% macro get_invoice_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount_due\", \"datatype\": dbt.type_int()},\n {\"name\": \"amount_paid\", \"datatype\": dbt.type_int()},\n {\"name\": \"amount_remaining\", \"datatype\": dbt.type_int()},\n {\"name\": \"application_fee_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"post_payment_credit_notes_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"pre_payment_credit_notes_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"attempt_count\", \"datatype\": dbt.type_int()},\n {\"name\": \"attempted\", \"datatype\": \"boolean\"},\n {\"name\": \"auto_advance\", \"datatype\": \"boolean\"},\n {\"name\": \"billing\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"charge_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"default_source_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"due_date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"ending_balance\", \"datatype\": dbt.type_int()},\n {\"name\": \"finalized_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"footer\", \"datatype\": dbt.type_string()},\n {\"name\": \"hosted_invoice_url\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_pdf\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"next_payment_attempt\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"number\", \"datatype\": dbt.type_string()},\n {\"name\": \"paid\", \"datatype\": \"boolean\"},\n {\"name\": \"default_payment_method_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_intent_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"subscription_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"period_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"period_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"receipt_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"starting_balance\", \"datatype\": dbt.type_int()},\n {\"name\": \"statement_descriptor\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"status_transitions_finalized_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status_transitions_marked_uncollectible_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status_transitions_paid_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status_transitions_voided_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"subscription_proration_date\", \"datatype\": dbt.type_int()},\n {\"name\": \"subtotal\", \"datatype\": dbt.type_int()},\n {\"name\": \"tax\", \"datatype\": dbt.type_int()},\n {\"name\": \"tax_percent\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"threshold_reason_amount_gte\", \"datatype\": dbt.type_int()},\n {\"name\": \"total\", \"datatype\": dbt.type_int()},\n {\"name\": \"webhooks_delivered_at\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string", "macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5070813, "supported_languages": null}, "macro.stripe.get_payment_method_card_columns": {"name": "get_payment_method_card_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_payment_method_card_columns.sql", "original_file_path": "macros/staging/get_payment_method_card_columns.sql", "unique_id": "macro.stripe.get_payment_method_card_columns", "macro_sql": "{% macro get_payment_method_card_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"brand\", \"datatype\": dbt.type_string()},\n {\"name\": \"charge_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"funding\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_method_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"wallet_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"three_d_secure_authentication_flow\", \"datatype\": dbt.type_string()},\n {\"name\": \"three_d_secure_result\", \"datatype\": dbt.type_string()},\n {\"name\": \"three_d_secure_result_reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"three_d_secure_version\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5092275, "supported_languages": null}, "macro.stripe.get_subscription_item_columns": {"name": "get_subscription_item_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_subscription_item_columns.sql", "original_file_path": "macros/staging/get_subscription_item_columns.sql", "unique_id": "macro.stripe.get_subscription_item_columns", "macro_sql": "{% macro get_subscription_item_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"current_period_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"current_period_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"plan_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"quantity\", \"datatype\": dbt.type_int()},\n {\"name\": \"subscription_id\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5110116, "supported_languages": null}, "macro.stripe.convert_values": {"name": "convert_values", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/convert_values.sql", "original_file_path": "macros/staging/convert_values.sql", "unique_id": "macro.stripe.convert_values", "macro_sql": "{% macro convert_values(field_name, divide_by=100.0, divide_var=var('stripe__convert_values',false), alias=None) %}\n\n{{ adapter.dispatch('convert_values', 'stripe')(field_name, divide_by, divide_var, alias ) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.stripe.default__convert_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5117996, "supported_languages": null}, "macro.stripe.default__convert_values": {"name": "default__convert_values", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/convert_values.sql", "original_file_path": "macros/staging/convert_values.sql", "unique_id": "macro.stripe.default__convert_values", "macro_sql": "{% macro default__convert_values(field_name, divide_by=100.0, divide_var=var('stripe__convert_values',false), alias=None) %}\n\n {% if divide_var %}\n {{ field_name }} / {{ divide_by }} as {{ alias if alias else field_name }}\n {% else %}\n {{ field_name }} as {{ alias if alias else field_name }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.512518, "supported_languages": null}, "macro.stripe.get_payout_balance_transaction_columns": {"name": "get_payout_balance_transaction_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_payout_balance_transaction_columns.sql", "original_file_path": "macros/staging/get_payout_balance_transaction_columns.sql", "unique_id": "macro.stripe.get_payout_balance_transaction_columns", "macro_sql": "{% macro get_payout_balance_transaction_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"payout_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"balance_transaction_id\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5134113, "supported_languages": null}, "macro.stripe.get_price_plan_columns": {"name": "get_price_plan_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_price_plan_columns.sql", "original_file_path": "macros/staging/get_price_plan_columns.sql", "unique_id": "macro.stripe.get_price_plan_columns", "macro_sql": "{% macro get_price_plan_columns() %}\n\n{% if var('stripe__using_price', stripe.does_table_exist('price')=='exists') %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"active\", \"datatype\": \"boolean\",\"alias\": \"is_active\"},\n {\"name\": \"billing_scheme\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"nickname\", \"datatype\": dbt.type_string()},\n {\"name\": \"product_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"recurring_aggregate_usage\", \"datatype\": dbt.type_string()},\n {\"name\": \"recurring_interval\", \"datatype\": dbt.type_string()},\n {\"name\": \"recurring_interval_count\", \"datatype\": dbt.type_int()},\n {\"name\": \"recurring_usage_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"unit_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"unit_amount_decimal\", \"datatype\": dbt.type_string()}\n] %}\n\n{% else %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"active\", \"datatype\": \"boolean\",\"alias\": \"is_active\"},\n {\"name\": \"aggregate_usage\", \"datatype\": dbt.type_string(),\"alias\": \"recurring_aggregate_usage\"},\n {\"name\": \"amount\", \"datatype\": dbt.type_int(),\"alias\": \"unit_amount\"},\n {\"name\": \"billing_scheme\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"interval_count\", \"datatype\": dbt.type_int(),\"alias\": \"recurring_interval_count\"},\n {\"name\": \"is_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"nickname\", \"datatype\": dbt.type_string()},\n {\"name\": \"product_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"trial_period_days\", \"datatype\": dbt.type_int()},\n {\"name\": \"usage_type\", \"datatype\": dbt.type_string(),\"alias\": \"recurring_usage_type\"}\n] %}\n\n{% if target.type in ('bigquery', 'spark', 'databricks') %}\n {{ columns.append( {\"name\": 'interval', \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"recurring_interval\" } ) }}\n\n{% else %}\n {{ columns.append( {\"name\": \"interval\", \"datatype\": dbt.type_string(), \"alias\": \"recurring_interval\"} ) }}\n\n{% endif %}\n\n\n{% endif %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.stripe.does_table_exist", "macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5204682, "supported_languages": null}, "macro.stripe.get_payment_intent_columns": {"name": "get_payment_intent_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_payment_intent_columns.sql", "original_file_path": "macros/staging/get_payment_intent_columns.sql", "unique_id": "macro.stripe.get_payment_intent_columns", "macro_sql": "{% macro get_payment_intent_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"amount_capturable\", \"datatype\": dbt.type_int()},\n {\"name\": \"amount_received\", \"datatype\": dbt.type_int()},\n {\"name\": \"application\", \"datatype\": dbt.type_string()},\n {\"name\": \"application_fee_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"canceled_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"cancellation_reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"capture_method\", \"datatype\": dbt.type_string()},\n {\"name\": \"confirmation_method\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_charge_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_decline_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_doc_url\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_message\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_param\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_source_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"on_behalf_of\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_method_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"receipt_email\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"statement_descriptor\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"transfer_data_destination\", \"datatype\": dbt.type_string()},\n {\"name\": \"transfer_group\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5259395, "supported_languages": null}, "macro.stripe.get_payout_columns": {"name": "get_payout_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_payout_columns.sql", "original_file_path": "macros/staging/get_payout_columns.sql", "unique_id": "macro.stripe.get_payout_columns", "macro_sql": "{% macro get_payout_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"arrival_date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"automatic\", \"datatype\": \"boolean\"},\n {\"name\": \"balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"connected_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination_bank_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination_card_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_message\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"method\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"statement_descriptor\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5297186, "supported_languages": null}, "macro.stripe.get_dispute_columns": {"name": "get_dispute_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_dispute_columns.sql", "original_file_path": "macros/staging/get_dispute_columns.sql", "unique_id": "macro.stripe.get_dispute_columns", "macro_sql": "{% macro get_dispute_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"balance_transaction\", \"datatype\": dbt.type_string()},\n {\"name\": \"charge_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"connected_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_access_activity_log\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_billing_address\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_cancellation_policy\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_cancellation_policy_disclosure\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_cancellation_rebuttal\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_customer_communication\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_customer_email_address\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_customer_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_customer_purchase_ip\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_customer_signature\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_details_due_by\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"evidence_details_has_evidence\", \"datatype\": \"boolean\"},\n {\"name\": \"evidence_details_past_due\", \"datatype\": \"boolean\"},\n {\"name\": \"evidence_details_submission_count\", \"datatype\": dbt.type_int()},\n {\"name\": \"evidence_duplicate_charge_documentation\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_duplicate_charge_explanation\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_duplicate_charge_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_product_description\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_receipt\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_refund_policy\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_refund_policy_disclosure\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_refund_refusal_explanation\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_service_date\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_service_documentation\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_shipping_address\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_shipping_carrier\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_shipping_date\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_shipping_documentation\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_shipping_tracking_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_uncategorized_file\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_uncategorized_text\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_charge_refundable\", \"datatype\": \"boolean\"},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5368423, "supported_languages": null}, "macro.stripe.get_fee_columns": {"name": "get_fee_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_fee_columns.sql", "original_file_path": "macros/staging/get_fee_columns.sql", "unique_id": "macro.stripe.get_fee_columns", "macro_sql": "{% macro get_fee_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"application\", \"datatype\": dbt.type_string()},\n {\"name\": \"balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"connected_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"index\", \"datatype\": dbt.type_int()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.538658, "supported_languages": null}, "macro.stripe.get_payment_method_columns": {"name": "get_payment_method_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_payment_method_columns.sql", "original_file_path": "macros/staging/get_payment_method_columns.sql", "unique_id": "macro.stripe.get_payment_method_columns", "macro_sql": "{% macro get_payment_method_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"billing_detail_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_line_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_line_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_postal_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_email\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.541422, "supported_languages": null}, "macro.stripe.get_invoice_line_item_columns": {"name": "get_invoice_line_item_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_invoice_line_item_columns.sql", "original_file_path": "macros/staging/get_invoice_line_item_columns.sql", "unique_id": "macro.stripe.get_invoice_line_item_columns", "macro_sql": "{% macro get_invoice_line_item_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"discountable\", \"datatype\": \"boolean\"},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_item_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"period_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"period_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"plan_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"price_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"proration\", \"datatype\": \"boolean\"},\n {\"name\": \"quantity\", \"datatype\": dbt.type_int()},\n {\"name\": \"subscription_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"subscription_item_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"unique_id\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5448203, "supported_languages": null}, "macro.stripe.get_charge_columns": {"name": "get_charge_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_charge_columns.sql", "original_file_path": "macros/staging/get_charge_columns.sql", "unique_id": "macro.stripe.get_charge_columns", "macro_sql": "{% macro get_charge_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"amount_refunded\", \"datatype\": dbt.type_int()},\n {\"name\": \"application\", \"datatype\": dbt.type_string()},\n {\"name\": \"application_fee_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"bank_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"calculated_statement_descriptor\", \"datatype\": dbt.type_string()},\n {\"name\": \"captured\", \"datatype\": \"boolean\"},\n {\"name\": \"card_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"connected_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_message\", \"datatype\": dbt.type_string()},\n {\"name\": \"fraud_details_stripe_report\", \"datatype\": dbt.type_string()},\n {\"name\": \"fraud_details_user_report\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"on_behalf_of\", \"datatype\": dbt.type_string()},\n {\"name\": \"outcome_network_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"outcome_reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"outcome_risk_level\", \"datatype\": dbt.type_string()},\n {\"name\": \"outcome_risk_score\", \"datatype\": dbt.type_int()},\n {\"name\": \"outcome_seller_message\", \"datatype\": dbt.type_string()},\n {\"name\": \"outcome_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"paid\", \"datatype\": \"boolean\"},\n {\"name\": \"payment_intent_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_method_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"receipt_email\", \"datatype\": dbt.type_string()},\n {\"name\": \"receipt_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"receipt_url\", \"datatype\": dbt.type_string()},\n {\"name\": \"refunded\", \"datatype\": \"boolean\"},\n {\"name\": \"shipping_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_line_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_line_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_postal_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_carrier\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_tracking_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_transfer\", \"datatype\": dbt.type_string()},\n {\"name\": \"statement_descriptor\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"transfer_data_destination\", \"datatype\": dbt.type_string()},\n {\"name\": \"transfer_group\", \"datatype\": dbt.type_string()},\n {\"name\": \"transfer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_line1\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_line2\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_postal_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_email\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_phone\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5549552, "supported_languages": null}, "macro.stripe.get_subscription_columns": {"name": "get_subscription_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_subscription_columns.sql", "original_file_path": "macros/staging/get_subscription_columns.sql", "unique_id": "macro.stripe.get_subscription_columns", "macro_sql": "{% macro get_subscription_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"_fivetran_active\", \"datatype\": \"boolean\"},\n {\"name\": \"application_fee_percent\", \"datatype\": dbt.type_float()},\n {\"name\": \"billing\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_cycle_anchor\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"billing_threshold_amount_gte\", \"datatype\": dbt.type_int()},\n {\"name\": \"billing_threshold_reset_billing_cycle_anchor\", \"datatype\": \"boolean\"},\n {\"name\": \"cancel_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"cancel_at_period_end\", \"datatype\": \"boolean\"},\n {\"name\": \"canceled_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"current_period_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"current_period_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"days_until_due\", \"datatype\": dbt.type_int()},\n {\"name\": \"default_source_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"ended_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"latest_invoice_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"default_payment_method_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"pending_setup_intent_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"quantity\", \"datatype\": dbt.type_int()},\n {\"name\": \"start_date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_percent\", \"datatype\": dbt.type_float()},\n {\"name\": \"trial_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"trial_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"pause_collection_behavior\", \"datatype\": dbt.type_string()},\n {\"name\": \"pause_collection_resumes_at\", \"datatype\": dbt.type_timestamp()},\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_float", "macro.dbt.type_string", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5600286, "supported_languages": null}, "macro.stripe.get_credit_note_columns": {"name": "get_credit_note_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_credit_note_columns.sql", "original_file_path": "macros/staging/get_credit_note_columns.sql", "unique_id": "macro.stripe.get_credit_note_columns", "macro_sql": "{% macro get_credit_note_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"discount_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"subtotal\", \"datatype\": dbt.type_int()},\n {\"name\": \"total\", \"datatype\": dbt.type_int()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"memo\", \"datatype\": dbt.type_string()},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"number\", \"datatype\": dbt.type_string()},\n {\"name\": \"pdf\", \"datatype\": dbt.type_string()},\n {\"name\": \"reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"voided_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"customer_balance_transaction\", \"datatype\": dbt.type_int()},\n {\"name\": \"invoice_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"refund_id\", \"datatype\": dbt.type_string()},\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.563454, "supported_languages": null}, "macro.stripe.get_product_columns": {"name": "get_product_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_product_columns.sql", "original_file_path": "macros/staging/get_product_columns.sql", "unique_id": "macro.stripe.get_product_columns", "macro_sql": "{% macro get_product_columns() %}\n\n{% set columns = [\n {\"name\": \"fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"active\", \"datatype\": \"boolean\",\"alias\": \"is_active\"},\n {\"name\": \"attributes\", \"datatype\": dbt.type_string()},\n {\"name\": \"caption\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"deactivate_on\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"images\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shippable\", \"datatype\": \"boolean\"},\n {\"name\": \"statement_descriptor\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"unit_label\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"url\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5665789, "supported_languages": null}, "macro.stripe.get_credit_note_line_item_columns": {"name": "get_credit_note_line_item_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_credit_note_line_item_columns.sql", "original_file_path": "macros/staging/get_credit_note_line_item_columns.sql", "unique_id": "macro.stripe.get_credit_note_line_item_columns", "macro_sql": "{% macro get_credit_note_line_item_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"credit_note_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"discount_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"quantity\", \"datatype\": dbt.type_int()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"unit_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"unit_amount_decimal\", \"datatype\": dbt.type_int()},\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5686378, "supported_languages": null}, "macro.stripe.get_coupon_columns": {"name": "get_coupon_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_coupon_columns.sql", "original_file_path": "macros/staging/get_coupon_columns.sql", "unique_id": "macro.stripe.get_coupon_columns", "macro_sql": "{% macro get_coupon_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount_off\", \"datatype\": dbt.type_int()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"duration\", \"datatype\": dbt.type_string()},\n {\"name\": \"duration_in_months\", \"datatype\": dbt.type_int()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"max_redemptions\", \"datatype\": dbt.type_int()},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"percent_off\", \"datatype\": dbt.type_float()},\n {\"name\": \"redeem_by\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"times_redeemed\", \"datatype\": dbt.type_int()},\n {\"name\": \"valid\", \"datatype\": \"boolean\"}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.571254, "supported_languages": null}, "macro.stripe.get_account_columns": {"name": "get_account_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_account_columns.sql", "original_file_path": "macros/staging/get_account_columns.sql", "unique_id": "macro.stripe.get_account_columns", "macro_sql": "{% macro get_account_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"business_profile_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"business_profile_mcc\", \"datatype\": dbt.type_string()},\n {\"name\": \"business_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"charges_enabled\", \"datatype\": \"boolean\"},\n {\"name\": \"company_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_address_line_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_address_line_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_address_postal_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"country\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"default_currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"details_submitted\", \"datatype\": \"boolean\"},\n {\"name\": \"email\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"payouts_enabled\", \"datatype\": \"boolean\"},\n {\"name\": \"type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.575126, "supported_languages": null}, "macro.stripe.get_card_columns": {"name": "get_card_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_card_columns.sql", "original_file_path": "macros/staging/get_card_columns.sql", "unique_id": "macro.stripe.get_card_columns", "macro_sql": "{% macro get_card_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_line_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_line_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_zip\", \"datatype\": dbt.type_string()},\n {\"name\": \"brand\", \"datatype\": dbt.type_string()},\n {\"name\": \"country\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"funding\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string(), \"alias\": \"card_metadata\"},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"recipient\", \"datatype\": dbt.type_string()},\n {\"name\": \"wallet_type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('card_pass_through_columns')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.578441, "supported_languages": null}, "macro.stripe.get_subscription_discount_columns": {"name": "get_subscription_discount_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_subscription_discount_columns.sql", "original_file_path": "macros/staging/get_subscription_discount_columns.sql", "unique_id": "macro.stripe.get_subscription_discount_columns", "macro_sql": "{% macro get_subscription_discount_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"checkout_session\", \"datatype\": dbt.type_string()},\n {\"name\": \"coupon_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_item_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"subscription_id\", \"datatype\": dbt.type_string()}\n] %}\n\n{% if target.type == 'snowflake' and not var('fivetran_using_source_casing', false) %}\n {{ columns.append({\"name\": \"END\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"end_at\"}) }},\n {{ columns.append({\"name\": \"START\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"start_at\"}) }}\n{% else %}\n {{ columns.append({\"name\": \"end\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"end_at\"}) }},\n {{ columns.append({\"name\": \"start\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"start_at\"}) }}\n{% endif %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5816064, "supported_languages": null}, "macro.stripe.does_table_exist": {"name": "does_table_exist", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/does_table_exist.sql", "original_file_path": "macros/staging/does_table_exist.sql", "unique_id": "macro.stripe.does_table_exist", "macro_sql": "{%- macro does_table_exist(table_name) -%}\n{{ adapter.dispatch('does_table_exist', 'stripe')(table_name) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.stripe.default__does_table_exist"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5821328, "supported_languages": null}, "macro.stripe.default__does_table_exist": {"name": "default__does_table_exist", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/does_table_exist.sql", "original_file_path": "macros/staging/does_table_exist.sql", "unique_id": "macro.stripe.default__does_table_exist", "macro_sql": "\n\n{%- macro default__does_table_exist(table_name) -%}\n {%- if execute -%}\n {%- set source_relation = adapter.get_relation(\n database=var('stripe_database', target.database),\n schema=var('stripe_schema', 'stripe'),\n identifier=var('stripe_' ~ table_name ~ '_identifier', table_name)\n ) -%}\n {{ return('exists' if source_relation is not none) }}\n {%- endif -%}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5828674, "supported_languages": null}, "macro.stripe.get_customer_columns": {"name": "get_customer_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_customer_columns.sql", "original_file_path": "macros/staging/get_customer_columns.sql", "unique_id": "macro.stripe.get_customer_columns", "macro_sql": "{% macro get_customer_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"account_balance\", \"datatype\": dbt.type_int()},\n {\"name\": \"address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_line_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_line_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_postal_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"balance\", \"datatype\": dbt.type_int()},\n {\"name\": \"bank_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"default_card_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"delinquent\", \"datatype\": \"boolean\"},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"email\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_prefix\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_settings_default_payment_method\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_settings_footer\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_line_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_line_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_postal_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_carrier\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_tracking_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_exempt\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_info_tax_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_info_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_info_verification_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_info_verification_verified_name\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.589619, "supported_languages": null}, "macro.stripe.get_discount_columns": {"name": "get_discount_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_discount_columns.sql", "original_file_path": "macros/staging/get_discount_columns.sql", "unique_id": "macro.stripe.get_discount_columns", "macro_sql": "{% macro get_discount_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_string() },\n {\"name\": \"type\", \"datatype\": dbt.type_string() },\n {\"name\": \"type_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp() },\n {\"name\": \"amount\", \"datatype\": dbt.type_int() },\n {\"name\": \"checkout_session_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"checkout_session_line_item_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"coupon_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"credit_note_line_item_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"invoice_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"invoice_item_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"promotion_code\", \"datatype\": dbt.type_string() },\n {\"name\": \"subscription_id\", \"datatype\": dbt.type_string() }\n] %}\n\n{% if target.type == 'snowflake' and not var('fivetran_using_source_casing', false) %}\n {{ columns.append({\"name\": \"END\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"end_at\"}) }},\n {{ columns.append({\"name\": \"START\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"start_at\"}) }}\n{% else %}\n {{ columns.append({\"name\": \"end\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"end_at\"}) }},\n {{ columns.append({\"name\": \"start\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"start_at\"}) }}\n{% endif %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string", "macro.dbt.type_timestamp", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5938294, "supported_languages": null}, "macro.fivetran_utils.partition_by_source_relation": {"name": "partition_by_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/partition_by_source_relation.sql", "original_file_path": "macros/partition_by_source_relation.sql", "unique_id": "macro.fivetran_utils.partition_by_source_relation", "macro_sql": "{% macro partition_by_source_relation(package_name, has_other_partitions='yes', alias=None, package_prefix_union_variable=true) %}\n {{ return(adapter.dispatch('partition_by_source_relation', 'fivetran_utils')(package_name, has_other_partitions, alias, package_prefix_union_variable)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__partition_by_source_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5948074, "supported_languages": null}, "macro.fivetran_utils.default__partition_by_source_relation": {"name": "default__partition_by_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/partition_by_source_relation.sql", "original_file_path": "macros/partition_by_source_relation.sql", "unique_id": "macro.fivetran_utils.default__partition_by_source_relation", "macro_sql": "{% macro default__partition_by_source_relation(package_name, has_other_partitions='yes', alias=None, package_prefix_union_variable=true) -%}\n\n{%- if package_prefix_union_variable %}\n {%- set union_schemas_var = package_name ~ '_union_schemas' -%}\n {%- set union_databases_var = package_name ~ '_union_databases' -%}\n{%- else %}\n {%- set union_schemas_var = 'union_schemas' -%}\n {%- set union_databases_var = 'union_databases' -%}\n{%- endif -%}\n\n{%- set is_unioning = var(union_schemas_var, [])|length > 1 or var(union_databases_var, [])|length > 1 or var(package_name ~ '_sources', [])|length > 1 -%}\n{%- set prefix = '' if alias is none else alias ~ '.' -%}\n\n{%- if has_other_partitions == 'no' -%}\n {{- 'partition by ' ~ prefix ~ 'source_relation' if is_unioning else '' -}}\n{%- else -%}\n {{- ', ' ~ prefix ~ 'source_relation' if is_unioning else '' -}}\n{%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5963197, "supported_languages": null}, "macro.fivetran_utils.fill_pass_through_columns": {"name": "fill_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_pass_through_columns.sql", "original_file_path": "macros/fill_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.fill_pass_through_columns", "macro_sql": "{% macro fill_pass_through_columns(pass_through_variable) %}\n\n{% if var(pass_through_variable) %}\n {% for field in var(pass_through_variable) %}\n {% if field is mapping %}\n {% if field.transform_sql %}\n , {{ field.transform_sql }} as {{ field.alias if field.alias else field.name }}\n {% else %}\n , {{ field.alias if field.alias else field.name }}\n {% endif %}\n {% else %}\n , {{ field }}\n {% endif %}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.597515, "supported_languages": null}, "macro.fivetran_utils.wrap_in_quotes": {"name": "wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.wrap_in_quotes", "macro_sql": "{%- macro wrap_in_quotes(object_to_quote) -%}\n\n{{ return(adapter.dispatch('wrap_in_quotes', 'fivetran_utils')(object_to_quote)) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.fivetran_utils.postgres__wrap_in_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5980868, "supported_languages": null}, "macro.fivetran_utils.default__wrap_in_quotes": {"name": "default__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.default__wrap_in_quotes", "macro_sql": "{%- macro default__wrap_in_quotes(object_to_quote) -%}\n{# bigquery, spark, databricks #}\n `{{ object_to_quote }}`\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.598285, "supported_languages": null}, "macro.fivetran_utils.snowflake__wrap_in_quotes": {"name": "snowflake__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.snowflake__wrap_in_quotes", "macro_sql": "{%- macro snowflake__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote | upper }}\"\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5984828, "supported_languages": null}, "macro.fivetran_utils.redshift__wrap_in_quotes": {"name": "redshift__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.redshift__wrap_in_quotes", "macro_sql": "{%- macro redshift__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote }}\"\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5986705, "supported_languages": null}, "macro.fivetran_utils.postgres__wrap_in_quotes": {"name": "postgres__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.postgres__wrap_in_quotes", "macro_sql": "{%- macro postgres__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote }}\"\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5988421, "supported_languages": null}, "macro.fivetran_utils.json_parse": {"name": "json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.json_parse", "macro_sql": "{% macro json_parse(string, string_path) -%}\n\n{{ adapter.dispatch('json_parse', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_parse"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.5998724, "supported_languages": null}, "macro.fivetran_utils.default__json_parse": {"name": "default__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.default__json_parse", "macro_sql": "{% macro default__json_parse(string, string_path) %}\n\n json_extract_path_text({{string}}, {%- for s in string_path -%}'{{ s }}'{%- if not loop.last -%},{%- endif -%}{%- endfor -%} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6002953, "supported_languages": null}, "macro.fivetran_utils.redshift__json_parse": {"name": "redshift__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.redshift__json_parse", "macro_sql": "{% macro redshift__json_parse(string, string_path) %}\n\n json_extract_path_text({{string}}, {%- for s in string_path -%}'{{ s }}'{%- if not loop.last -%},{%- endif -%}{%- endfor -%} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6007245, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_parse": {"name": "bigquery__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.bigquery__json_parse", "macro_sql": "{% macro bigquery__json_parse(string, string_path) %}\n\n \n json_extract_scalar({{string}}, '$.{%- for s in string_path -%}{{ s }}{%- if not loop.last -%}.{%- endif -%}{%- endfor -%} ')\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.601121, "supported_languages": null}, "macro.fivetran_utils.postgres__json_parse": {"name": "postgres__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.postgres__json_parse", "macro_sql": "{% macro postgres__json_parse(string, string_path) %}\n\n {{string}}::json #>> '{ {%- for s in string_path -%}{{ s }}{%- if not loop.last -%},{%- endif -%}{%- endfor -%} }'\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.601509, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_parse": {"name": "snowflake__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.snowflake__json_parse", "macro_sql": "{% macro snowflake__json_parse(string, string_path) %}\n\n parse_json( {{string}} ) {%- for s in string_path -%}{% if s is number %}[{{ s }}]{% else %}['{{ s }}']{% endif %}{%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.602098, "supported_languages": null}, "macro.fivetran_utils.spark__json_parse": {"name": "spark__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.spark__json_parse", "macro_sql": "{% macro spark__json_parse(string, string_path) %}\n\n {{string}} : {%- for s in string_path -%}{% if s is number %}[{{ s }}]{% else %}['{{ s }}']{% endif %}{%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6025498, "supported_languages": null}, "macro.fivetran_utils.sqlserver__json_parse": {"name": "sqlserver__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.sqlserver__json_parse", "macro_sql": "{% macro sqlserver__json_parse(string, string_path) %}\n\n json_value({{string}}, '$.{%- for s in string_path -%}{{ s }}{%- if not loop.last -%}.{%- endif -%}{%- endfor -%} ')\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6029584, "supported_languages": null}, "macro.fivetran_utils.fivetran_date_spine": {"name": "fivetran_date_spine", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fivetran_date_spine.sql", "original_file_path": "macros/fivetran_date_spine.sql", "unique_id": "macro.fivetran_utils.fivetran_date_spine", "macro_sql": "{% macro fivetran_date_spine(datepart, start_date, end_date) -%}\n\n{{ return(adapter.dispatch('fivetran_date_spine', 'fivetran_utils') (datepart, start_date, end_date)) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__fivetran_date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6039355, "supported_languages": null}, "macro.fivetran_utils.default__fivetran_date_spine": {"name": "default__fivetran_date_spine", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fivetran_date_spine.sql", "original_file_path": "macros/fivetran_date_spine.sql", "unique_id": "macro.fivetran_utils.default__fivetran_date_spine", "macro_sql": "{% macro default__fivetran_date_spine(datepart, start_date, end_date) %}\n\n {{ dbt_utils.date_spine(datepart, start_date, end_date) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6042402, "supported_languages": null}, "macro.fivetran_utils.sqlserver__fivetran_date_spine": {"name": "sqlserver__fivetran_date_spine", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fivetran_date_spine.sql", "original_file_path": "macros/fivetran_date_spine.sql", "unique_id": "macro.fivetran_utils.sqlserver__fivetran_date_spine", "macro_sql": "{% macro sqlserver__fivetran_date_spine(datepart, start_date, end_date) -%}\n\n {% set date_spine_query %}\n with\n\n l0 as (\n\n select c\n from (select 1 union all select 1) as d(c)\n\n ),\n l1 as (\n\n select\n 1 as c\n from l0 as a\n cross join l0 as b\n\n ),\n\n l2 as (\n\n select 1 as c\n from l1 as a\n cross join l1 as b\n ),\n\n l3 as (\n\n select 1 as c\n from l2 as a\n cross join l2 as b\n ),\n\n l4 as (\n\n select 1 as c\n from l3 as a\n cross join l3 as b\n ),\n\n l5 as (\n\n select 1 as c\n from l4 as a\n cross join l4 as b\n ),\n\n nums as (\n\n select row_number() over (order by (select null)) as rownum\n from l5\n ),\n\n rawdata as (\n\n select top ({{dbt.datediff(start_date, end_date, datepart)}}) rownum -1 as n\n from nums\n order by rownum\n ),\n\n all_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n 'n',\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n ),\n\n filtered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n )\n\n select * from filtered\n order by 1\n\n {% endset %}\n\n {% set results = run_query(date_spine_query) %}\n\n {% if execute %}\n\n {% set results_list = results.columns[0].values() %}\n \n {% else %}\n\n {% set results_list = [] %}\n\n {% endif %}\n\n {%- for date_field in results_list %}\n select cast('{{ date_field }}' as date) as date_{{datepart}} {{ 'union all ' if not loop.last else '' }}\n {% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff", "macro.dbt.dateadd", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.605618, "supported_languages": null}, "macro.fivetran_utils.snowflake_seed_data": {"name": "snowflake_seed_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/snowflake_seed_data.sql", "original_file_path": "macros/snowflake_seed_data.sql", "unique_id": "macro.fivetran_utils.snowflake_seed_data", "macro_sql": "{% macro snowflake_seed_data(seed_name) %}\n\n{% if target.type == 'snowflake' %}\n{{ return(ref(seed_name ~ '_snowflake')) }}\n{% else %}\n{{ return(ref(seed_name)) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.606279, "supported_languages": null}, "macro.fivetran_utils.empty_variable_warning": {"name": "empty_variable_warning", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/empty_variable_warning.sql", "original_file_path": "macros/empty_variable_warning.sql", "unique_id": "macro.fivetran_utils.empty_variable_warning", "macro_sql": "{% macro empty_variable_warning(variable, downstream_model) %}\n\n{% if not var(variable) %}\n{{ log(\n \"\"\"\n Warning: You have passed an empty list to the \"\"\" ~ variable ~ \"\"\".\n As a result, you won't see the history of any columns in the \"\"\" ~ downstream_model ~ \"\"\" model.\n \"\"\",\n info=True\n) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6069508, "supported_languages": null}, "macro.fivetran_utils.remove_prefix_from_columns": {"name": "remove_prefix_from_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/remove_prefix_from_columns.sql", "original_file_path": "macros/remove_prefix_from_columns.sql", "unique_id": "macro.fivetran_utils.remove_prefix_from_columns", "macro_sql": "{% macro remove_prefix_from_columns(columns, prefix='', exclude=[]) %}\n\n {%- for col in columns if col.name not in exclude -%}\n {%- if col.name[:prefix|length]|lower == prefix -%}\n {{ col.name }} as {{ col.name[prefix|length:] }}\n {%- else -%}\n {{ col.name }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6079693, "supported_languages": null}, "macro.fivetran_utils.dummy_coalesce_value": {"name": "dummy_coalesce_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/dummy_coalesce_value.sql", "original_file_path": "macros/dummy_coalesce_value.sql", "unique_id": "macro.fivetran_utils.dummy_coalesce_value", "macro_sql": "{% macro dummy_coalesce_value(column) %}\n\n{% set coalesce_value = {\n 'STRING': \"'DUMMY_STRING'\",\n 'BOOLEAN': 'null',\n 'INT': 999999999,\n 'FLOAT': 999999999.99,\n 'TIMESTAMP': 'cast(\"2099-12-31\" as timestamp)',\n 'DATE': 'cast(\"2099-12-31\" as date)',\n} %}\n\n{% if column.is_float() %}\n{{ return(coalesce_value['FLOAT']) }}\n\n{% elif column.is_numeric() %}\n{{ return(coalesce_value['INT']) }}\n\n{% elif column.is_string() %}\n{{ return(coalesce_value['STRING']) }}\n\n{% elif column.data_type|lower == 'boolean' %}\n{{ return(coalesce_value['BOOLEAN']) }}\n\n{% elif 'timestamp' in column.data_type|lower %}\n{{ return(coalesce_value['TIMESTAMP']) }}\n\n{% elif 'date' in column.data_type|lower %}\n{{ return(coalesce_value['DATE']) }}\n\n{% elif 'int' in column.data_type|lower %}\n{{ return(coalesce_value['INT']) }}\n\n{% endif %}\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.610192, "supported_languages": null}, "macro.fivetran_utils.max_bool": {"name": "max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.max_bool", "macro_sql": "{% macro max_bool(boolean_field) -%}\n\n{{ adapter.dispatch('max_bool', 'fivetran_utils') (boolean_field) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__max_bool"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6107018, "supported_languages": null}, "macro.fivetran_utils.default__max_bool": {"name": "default__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.default__max_bool", "macro_sql": "{% macro default__max_bool(boolean_field) %}\n\n bool_or( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6108842, "supported_languages": null}, "macro.fivetran_utils.snowflake__max_bool": {"name": "snowflake__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.snowflake__max_bool", "macro_sql": "{% macro snowflake__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6110616, "supported_languages": null}, "macro.fivetran_utils.bigquery__max_bool": {"name": "bigquery__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.bigquery__max_bool", "macro_sql": "{% macro bigquery__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6112401, "supported_languages": null}, "macro.fivetran_utils.string_agg": {"name": "string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.string_agg", "macro_sql": "{% macro string_agg(field_to_agg, delimiter) -%}\n\n{{ adapter.dispatch('string_agg', 'fivetran_utils') (field_to_agg, delimiter) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__string_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6118307, "supported_languages": null}, "macro.fivetran_utils.default__string_agg": {"name": "default__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.default__string_agg", "macro_sql": "{% macro default__string_agg(field_to_agg, delimiter) %}\n string_agg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6120667, "supported_languages": null}, "macro.fivetran_utils.snowflake__string_agg": {"name": "snowflake__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.snowflake__string_agg", "macro_sql": "{% macro snowflake__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.61229, "supported_languages": null}, "macro.fivetran_utils.redshift__string_agg": {"name": "redshift__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.redshift__string_agg", "macro_sql": "{% macro redshift__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.612642, "supported_languages": null}, "macro.fivetran_utils.spark__string_agg": {"name": "spark__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.spark__string_agg", "macro_sql": "{% macro spark__string_agg(field_to_agg, delimiter) %}\n -- collect set will remove duplicates\n replace(replace(replace(cast( collect_set({{ field_to_agg }}) as string), '[', ''), ']', ''), ', ', {{ delimiter }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6128802, "supported_languages": null}, "macro.fivetran_utils.enabled_vars_one_true": {"name": "enabled_vars_one_true", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/enabled_vars_one_true.sql", "original_file_path": "macros/enabled_vars_one_true.sql", "unique_id": "macro.fivetran_utils.enabled_vars_one_true", "macro_sql": "{% macro enabled_vars_one_true(vars) %}\n\n{% for v in vars %}\n \n {% if var(v, False) == True %}\n {{ return(True) }}\n {% endif %}\n\n{% endfor %}\n\n{{ return(False) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.613528, "supported_languages": null}, "macro.fivetran_utils.source_relation": {"name": "source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "unique_id": "macro.fivetran_utils.source_relation", "macro_sql": "{% macro source_relation(union_schema_variable='union_schemas', union_database_variable='union_databases') -%}\n\n{{ adapter.dispatch('source_relation', 'fivetran_utils') (union_schema_variable, union_database_variable) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__source_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6141849, "supported_languages": null}, "macro.fivetran_utils.default__source_relation": {"name": "default__source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "unique_id": "macro.fivetran_utils.default__source_relation", "macro_sql": "{% macro default__source_relation(union_schema_variable, union_database_variable) %}\n\n{% if var(union_schema_variable, none) %}\n, case\n {% for schema in var(union_schema_variable) %}\n when lower(replace(replace(_dbt_source_relation,'\"',''),'`','')) like '%.{{ schema|lower }}.%' then '{{ schema|lower }}'\n {% endfor %}\n end as source_relation\n{% elif var(union_database_variable, none) %}\n, case\n {% for database in var(union_database_variable) %}\n when lower(replace(replace(_dbt_source_relation,'\"',''),'`','')) like '%{{ database|lower }}.%' then '{{ database|lower }}'\n {% endfor %}\n end as source_relation\n{% else %}\n, cast('' as {{ dbt.type_string() }}) as source_relation\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6151505, "supported_languages": null}, "macro.fivetran_utils.add_pass_through_columns": {"name": "add_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/add_pass_through_columns.sql", "original_file_path": "macros/add_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.add_pass_through_columns", "macro_sql": "{% macro add_pass_through_columns(base_columns, pass_through_var) %}\n\n {% if pass_through_var %}\n\n {% for column in pass_through_var %}\n\n {% if column is mapping %}\n\n {% if column.alias %}\n\n {% do base_columns.append({ \"name\": column.name, \"alias\": column.alias, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n\n {% else %}\n\n {% do base_columns.append({ \"name\": column.name, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n \n {% endif %}\n\n {% else %}\n\n {% do base_columns.append({ \"name\": column, \"datatype\": dbt.type_string()}) %}\n\n {% endif %}\n\n {% endfor %}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.61684, "supported_languages": null}, "macro.fivetran_utils.array_agg": {"name": "array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.array_agg", "macro_sql": "{% macro array_agg(field_to_agg) -%}\n\n{{ adapter.dispatch('array_agg', 'fivetran_utils') (field_to_agg) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__array_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6172824, "supported_languages": null}, "macro.fivetran_utils.default__array_agg": {"name": "default__array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.default__array_agg", "macro_sql": "{% macro default__array_agg(field_to_agg) %}\n array_agg({{ field_to_agg }})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6174612, "supported_languages": null}, "macro.fivetran_utils.redshift__array_agg": {"name": "redshift__array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.redshift__array_agg", "macro_sql": "{% macro redshift__array_agg(field_to_agg) %}\n listagg({{ field_to_agg }}, ',')\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6176472, "supported_languages": null}, "macro.fivetran_utils.try_cast": {"name": "try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.try_cast", "macro_sql": "{% macro try_cast(field, type) %}\n {{ adapter.dispatch('try_cast', 'fivetran_utils') (field, type) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__try_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6185024, "supported_languages": null}, "macro.fivetran_utils.default__try_cast": {"name": "default__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.default__try_cast", "macro_sql": "{% macro default__try_cast(field, type) %}\n {# most databases don't support this function yet\n so we just need to use cast #}\n cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.618751, "supported_languages": null}, "macro.fivetran_utils.redshift__try_cast": {"name": "redshift__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.redshift__try_cast", "macro_sql": "{% macro redshift__try_cast(field, type) %}\n{%- if type == 'numeric' -%}\n\n case\n when trim({{field}}) ~ '^(0|[1-9][0-9]*)$' then trim({{field}})\n else null\n end::{{type}}\n\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"non-numeric datatypes are not currently supported\") }}\n\n{% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6192093, "supported_languages": null}, "macro.fivetran_utils.postgres__try_cast": {"name": "postgres__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.postgres__try_cast", "macro_sql": "{% macro postgres__try_cast(field, type) %}\n{%- if type == 'numeric' -%}\n\n case\n when replace(cast({{field}} as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast({{field}} as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::{{type}}\n\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"non-numeric datatypes are not currently supported\") }}\n\n{% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6196933, "supported_languages": null}, "macro.fivetran_utils.snowflake__try_cast": {"name": "snowflake__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.snowflake__try_cast", "macro_sql": "{% macro snowflake__try_cast(field, type) %}\n try_cast(cast({{field}} as varchar) as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6199145, "supported_languages": null}, "macro.fivetran_utils.bigquery__try_cast": {"name": "bigquery__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.bigquery__try_cast", "macro_sql": "{% macro bigquery__try_cast(field, type) %}\n safe_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6201227, "supported_languages": null}, "macro.fivetran_utils.spark__try_cast": {"name": "spark__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.spark__try_cast", "macro_sql": "{% macro spark__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6203308, "supported_languages": null}, "macro.fivetran_utils.sqlserver__try_cast": {"name": "sqlserver__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.sqlserver__try_cast", "macro_sql": "{% macro sqlserver__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6205387, "supported_languages": null}, "macro.fivetran_utils.apply_source_relation": {"name": "apply_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/apply_source_relation.sql", "original_file_path": "macros/apply_source_relation.sql", "unique_id": "macro.fivetran_utils.apply_source_relation", "macro_sql": "{% macro apply_source_relation(package_name, use_package_prefix=true) -%}\n\n{{ adapter.dispatch('apply_source_relation', 'fivetran_utils') (package_name, use_package_prefix) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__apply_source_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6213894, "supported_languages": null}, "macro.fivetran_utils.default__apply_source_relation": {"name": "default__apply_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/apply_source_relation.sql", "original_file_path": "macros/apply_source_relation.sql", "unique_id": "macro.fivetran_utils.default__apply_source_relation", "macro_sql": "{% macro default__apply_source_relation(package_name, use_package_prefix=true) -%}\n\n{% set sources_var = package_name ~ '_sources' %}\n{% set database_var = package_name ~ '_database' %}\n{% set schema_var = package_name ~ '_schema' %}\n\n{% if use_package_prefix %}\n {% set union_schemas_var = package_name ~ '_union_schemas' %}\n {% set union_databases_var = package_name ~ '_union_databases' %}\n{% else %}\n {% set union_schemas_var = 'union_schemas' %}\n {% set union_databases_var = 'union_databases' %}\n{% endif %}\n\n{% if var(sources_var, []) | length > 0 %}\n, _dbt_source_relation as source_relation\n{% elif var(union_schemas_var, []) | length > 0 or var(union_databases_var, []) | length > 0 %}\n{{ fivetran_utils.source_relation(union_schema_variable=union_schemas_var, union_database_variable=union_databases_var) }}\n{% else %}\n{% set database = var(database_var, target.database) %}\n{% set schema = var(schema_var, package_name) %}\n, cast('{{ database ~ \".\" ~ schema }}' as {{ dbt.type_string() }}) as source_relation\n{% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.source_relation", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6231964, "supported_languages": null}, "macro.fivetran_utils.union_connections": {"name": "union_connections", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_connections.sql", "original_file_path": "macros/union_connections.sql", "unique_id": "macro.fivetran_utils.union_connections", "macro_sql": "{% macro union_connections(connection_dictionary, single_source_name, single_table_name, default_identifier=single_table_name) %}\n\n{{ adapter.dispatch('union_connections', 'fivetran_utils') (connection_dictionary, single_source_name, single_table_name, default_identifier) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__union_connections"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6246045, "supported_languages": null}, "macro.fivetran_utils.default__union_connections": {"name": "default__union_connections", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_connections.sql", "original_file_path": "macros/union_connections.sql", "unique_id": "macro.fivetran_utils.default__union_connections", "macro_sql": "{% macro default__union_connections(connection_dictionary, single_source_name, single_table_name, default_identifier=single_table_name) %}\n\n{%- set exception_warning = \"\\n\\nPlease be aware: The \" ~ single_source_name|upper ~ \".\" ~ single_table_name|upper ~ \" table was not found in your schema(s). The Fivetran Data Model will create a completely empty staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\"%}\n{%- set using_empty_table_warnings = (execute and not var('fivetran__remove_empty_table_warnings', false)) %}\n{%- set connections = var(connection_dictionary, []) %}\n{%- set using_unioning = connections | length > 0 %}\n{%- set identifier_var = single_source_name + \"_\" + single_table_name + \"_identifier\" %}\n\n{%- if using_unioning %}\n{# For unioning #}\n {%- set relations = [] -%}\n {%- for connection in connections -%}\n\n {% if var('has_defined_sources', false) %}\n {%- set database = source(connection.name, single_table_name).database %}\n {%- set schema = source(connection.name, single_table_name).schema %}\n {%- set identifier = source(connection.name, single_table_name).identifier %}\n {%- else %}\n {%- set database = connection.database if connection.database else target.database %}\n {%- set schema = connection.schema if connection.schema else single_source_name %}\n {%- set identifier = var(identifier_var, default_identifier) %}\n {%- endif %}\n \n {%- set relation=adapter.get_relation(\n database=database,\n schema=schema,\n identifier=identifier\n )\n -%}\n\n {%- if relation is not none -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n -- ** Values passed to adapter.get_relation:\n {{ '-- database: ' ~ database }}\n {{ '-- schema: ' ~ schema }}\n {{ '-- identifier: ' ~ identifier ~ '\\n' }}\n\n {%- endfor -%}\n\n {%- if relations | length > 0 -%}\n {{ fivetran_utils.union_relations_custom(relations, source_column_name='_dbt_source_relation') }}\n\n {%- else -%}\n {{ exceptions.warn(exception_warning) if using_empty_table_warnings }}\n\n select\n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit {{ '0' if target.type != 'redshift' else '1' }}\n {%- endif -%}\n\n{% else %}\n{# Not unioning #}\n\n {%- set database = source(single_source_name, single_table_name).database %}\n {%- set schema = source(single_source_name, single_table_name).schema %}\n {%- set identifier = var(identifier_var, default_identifier) %}\n\n {%- set relation=adapter.get_relation(\n database=database,\n schema=schema,\n identifier=identifier\n )\n -%}\n\n -- ** Values passed to adapter.get_relation:\n {{ '-- full-identifier_var: ' ~ identifier_var }}\n {{ '-- database: ' ~ database }} \n {{ '-- schema: ' ~ schema }}\n {{ '-- identifier: ' ~ identifier ~ '\\n' }}\n\n {% if relation is not none -%}\n select\n {{ dbt_utils.star(from=source(single_source_name, single_table_name)) }}\n , '{{ database ~ \".\" ~ schema }}' as _dbt_source_relation\n from {{ source(single_source_name, single_table_name) }} as source_table\n\n {% else %}\n {{ exceptions.warn(exception_warning) if using_empty_table_warnings }}\n\n select\n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit {{ '0' if target.type != 'redshift' else '1' }}\n {%- endif -%}\n{% endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.union_relations_custom", "macro.dbt.type_string", "macro.dbt_utils.star"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6292887, "supported_languages": null}, "macro.fivetran_utils.union_data": {"name": "union_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "unique_id": "macro.fivetran_utils.union_data", "macro_sql": "{%- macro union_data(table_identifier, database_variable, schema_variable, default_database, default_schema, default_variable, union_schema_variable='union_schemas', union_database_variable='union_databases') -%}\n\n{{ adapter.dispatch('union_data', 'fivetran_utils') (\n table_identifier, \n database_variable, \n schema_variable, \n default_database, \n default_schema, \n default_variable,\n union_schema_variable,\n union_database_variable\n ) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.fivetran_utils.default__union_data"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6314144, "supported_languages": null}, "macro.fivetran_utils.default__union_data": {"name": "default__union_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "unique_id": "macro.fivetran_utils.default__union_data", "macro_sql": "{%- macro default__union_data(\n table_identifier, \n database_variable, \n schema_variable, \n default_database, \n default_schema, \n default_variable,\n union_schema_variable,\n union_database_variable\n ) -%}\n\n{%- if var(union_schema_variable, none) -%}\n\n {%- set relations = [] -%}\n \n {%- if var(union_schema_variable) is string -%}\n {%- set trimmed = var(union_schema_variable)|trim('[')|trim(']') -%}\n {%- set schemas = trimmed.split(',')|map('trim',\" \")|map('trim','\"')|map('trim',\"'\") -%}\n {%- else -%}\n {%- set schemas = var(union_schema_variable) -%}\n {%- endif -%}\n\n {%- for schema in var(union_schema_variable) -%}\n {%- set relation=adapter.get_relation(\n database=source(schema, table_identifier).database if var('has_defined_sources', false) else var(database_variable, default_database),\n schema=source(schema, table_identifier).schema if var('has_defined_sources', false) else schema,\n identifier=source(schema, table_identifier).identifier if var('has_defined_sources', false) else table_identifier\n ) -%}\n \n {%- set relation_exists=relation is not none -%}\n\n {%- if relation_exists -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n {%- endfor -%}\n \n {%- if relations != [] -%}\n {{ dbt_utils.union_relations(relations) }}\n {%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n {%- endif -%}\n\n{%- elif var(union_database_variable, none) -%}\n\n {%- set relations = [] -%}\n\n {%- for database in var(union_database_variable) -%}\n {%- set relation=adapter.get_relation(\n database=source(schema, table_identifier).database if var('has_defined_sources', false) else database,\n schema=source(schema, table_identifier).schema if var('has_defined_sources', false) else var(schema_variable, default_schema),\n identifier=source(schema, table_identifier).identifier if var('has_defined_sources', false) else table_identifier\n ) -%}\n\n {%- set relation_exists=relation is not none -%}\n\n {%- if relation_exists -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n {%- endfor -%}\n\n {%- if relations != [] -%}\n {{ dbt_utils.union_relations(relations) }}\n {%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n {%- endif -%}\n\n{%- else -%}\n {% set exception_schemas = {\"linkedin_company_pages\": \"linkedin_pages\", \"instagram_business_pages\": \"instagram_business\"} %}\n {% set relation = namespace(value=\"\") %}\n {% if default_schema in exception_schemas.keys() %}\n {% for corrected_schema_name in exception_schemas.items() %} \n {% if default_schema in corrected_schema_name %}\n {# In order for this macro to effectively work within upstream integration tests (mainly used by the Fivetran dbt package maintainers), this identifier variable selection is required to use the macro with different identifier names. #}\n {% set identifier_var = corrected_schema_name[1] + \"_\" + table_identifier + \"_identifier\" %}\n {%- set relation.value=adapter.get_relation(\n database=source(corrected_schema_name[1], table_identifier).database,\n schema=source(corrected_schema_name[1], table_identifier).schema,\n identifier=var(identifier_var, table_identifier)\n ) -%}\n {% endif %}\n {% endfor %}\n {% else %}\n {# In order for this macro to effectively work within upstream integration tests (mainly used by the Fivetran dbt package maintainers), this identifier variable selection is required to use the macro with different identifier names. #}\n {% set identifier_var = default_schema + \"_\" + table_identifier + \"_identifier\" %}\n {# Unfortunately the Twitter Organic identifiers were misspelled. As such, we will need to account for this in the model. This will be adjusted in the Twitter Organic package, but to ensure backwards compatibility, this needs to be included. #}\n {% if var(identifier_var, none) is none %} \n {% set identifier_var = default_schema + \"_\" + table_identifier + \"_identifer\" %}\n {% endif %}\n {%- set relation.value=adapter.get_relation(\n database=source(default_schema, table_identifier).database,\n schema=source(default_schema, table_identifier).schema,\n identifier=var(identifier_var, table_identifier)\n ) -%}\n {% endif %}\n{%- set table_exists=relation.value is not none -%}\n\n{%- if table_exists -%}\n select * \n from {{ relation.value }}\n{%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n{%- endif -%}\n{%- endif -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils.union_relations", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.638894, "supported_languages": null}, "macro.fivetran_utils.first_value": {"name": "first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.first_value", "macro_sql": "{% macro first_value(first_value_field, partition_field, order_by_field, order=\"asc\") -%}\n\n{{ adapter.dispatch('first_value', 'fivetran_utils') (first_value_field, partition_field, order_by_field, order) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__first_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6396778, "supported_languages": null}, "macro.fivetran_utils.default__first_value": {"name": "default__first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.default__first_value", "macro_sql": "{% macro default__first_value(first_value_field, partition_field, order_by_field, order=\"asc\") %}\n\n first_value( {{ first_value_field }} ignore nulls ) over (partition by {{ partition_field }} order by {{ order_by_field }} {{ order }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6400428, "supported_languages": null}, "macro.fivetran_utils.redshift__first_value": {"name": "redshift__first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.redshift__first_value", "macro_sql": "{% macro redshift__first_value(first_value_field, partition_field, order_by_field, order=\"asc\") %}\n\n first_value( {{ first_value_field }} ignore nulls ) over (partition by {{ partition_field }} order by {{ order_by_field }} {{ order }} , {{ partition_field }} rows unbounded preceding )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.640419, "supported_languages": null}, "macro.fivetran_utils.json_extract": {"name": "json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.json_extract", "macro_sql": "{% macro json_extract(string, string_path) -%}\n\n{{ adapter.dispatch('json_extract', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.641129, "supported_languages": null}, "macro.fivetran_utils.default__json_extract": {"name": "default__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.default__json_extract", "macro_sql": "{% macro default__json_extract(string, string_path) %}\n\n json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} )\n \n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6413934, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_extract": {"name": "snowflake__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.snowflake__json_extract", "macro_sql": "{% macro snowflake__json_extract(string, string_path) %}\n\n json_extract_path_text(try_parse_json( {{string}} ), {{ \"'\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.641667, "supported_languages": null}, "macro.fivetran_utils.redshift__json_extract": {"name": "redshift__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.redshift__json_extract", "macro_sql": "{% macro redshift__json_extract(string, string_path) %}\n\n case when is_valid_json( {{string}} ) then json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} ) else null end\n \n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6419594, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_extract": {"name": "bigquery__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.bigquery__json_extract", "macro_sql": "{% macro bigquery__json_extract(string, string_path) %}\n\n json_extract_scalar({{string}}, {{ \"'$.\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.642211, "supported_languages": null}, "macro.fivetran_utils.postgres__json_extract": {"name": "postgres__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.postgres__json_extract", "macro_sql": "{% macro postgres__json_extract(string, string_path) %}\n\n {{string}}::json->>{{\"'\" ~ string_path ~ \"'\" }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6424587, "supported_languages": null}, "macro.fivetran_utils.percentile": {"name": "percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.percentile", "macro_sql": "{% macro percentile(percentile_field, partition_field, percent) -%}\n\n{{ adapter.dispatch('percentile', 'fivetran_utils') (percentile_field, partition_field, percent) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__percentile"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6432042, "supported_languages": null}, "macro.fivetran_utils.default__percentile": {"name": "default__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.default__percentile", "macro_sql": "{% macro default__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n over ( partition by {{ partition_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6434913, "supported_languages": null}, "macro.fivetran_utils.redshift__percentile": {"name": "redshift__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.redshift__percentile", "macro_sql": "{% macro redshift__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n over ( partition by {{ partition_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6437917, "supported_languages": null}, "macro.fivetran_utils.bigquery__percentile": {"name": "bigquery__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.bigquery__percentile", "macro_sql": "{% macro bigquery__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percentile_field }}, \n {{ percent }}) \n over (partition by {{ partition_field }} \n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6440675, "supported_languages": null}, "macro.fivetran_utils.postgres__percentile": {"name": "postgres__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.postgres__percentile", "macro_sql": "{% macro postgres__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n /* have to group by partition field */\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6443079, "supported_languages": null}, "macro.fivetran_utils.spark__percentile": {"name": "spark__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.spark__percentile", "macro_sql": "{% macro spark__percentile(percentile_field, partition_field, percent) %}\n\n percentile( \n {{ percentile_field }}, \n {{ percent }}) \n over (partition by {{ partition_field }} \n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6445732, "supported_languages": null}, "macro.fivetran_utils.timestamp_diff": {"name": "timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.timestamp_diff", "macro_sql": "{% macro timestamp_diff(first_date, second_date, datepart) %}\n {{ adapter.dispatch('timestamp_diff', 'fivetran_utils')(first_date, second_date, datepart) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_diff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.645871, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_diff": {"name": "default__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.default__timestamp_diff", "macro_sql": "{% macro default__timestamp_diff(first_date, second_date, datepart) %}\n\n datediff(\n {{ datepart }},\n {{ first_date }},\n {{ second_date }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6465535, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_diff": {"name": "redshift__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.redshift__timestamp_diff", "macro_sql": "{% macro redshift__timestamp_diff(first_date, second_date, datepart) %}\n\n datediff(\n {{ datepart }},\n {{ first_date }},\n {{ second_date }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.646843, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_diff": {"name": "bigquery__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.bigquery__timestamp_diff", "macro_sql": "{% macro bigquery__timestamp_diff(first_date, second_date, datepart) %}\n\n timestamp_diff(\n {{second_date}},\n {{first_date}},\n {{datepart}}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6471016, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_diff": {"name": "postgres__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.postgres__timestamp_diff", "macro_sql": "{% macro postgres__timestamp_diff(first_date, second_date, datepart) %}\n\n {% if datepart == 'year' %}\n (date_part('year', ({{second_date}})::date) - date_part('year', ({{first_date}})::date))\n {% elif datepart == 'quarter' %}\n ({{ dbt.datediff(first_date, second_date, 'year') }} * 4 + date_part('quarter', ({{second_date}})::date) - date_part('quarter', ({{first_date}})::date))\n {% elif datepart == 'month' %}\n ({{ dbt.datediff(first_date, second_date, 'year') }} * 12 + date_part('month', ({{second_date}})::date) - date_part('month', ({{first_date}})::date))\n {% elif datepart == 'day' %}\n (({{second_date}})::date - ({{first_date}})::date)\n {% elif datepart == 'week' %}\n ({{ dbt.datediff(first_date, second_date, 'day') }} / 7 + case\n when date_part('dow', ({{first_date}})::timestamp) <= date_part('dow', ({{second_date}})::timestamp) then\n case when {{first_date}} <= {{second_date}} then 0 else -1 end\n else\n case when {{first_date}} <= {{second_date}} then 1 else 0 end\n end)\n {% elif datepart == 'hour' %}\n ({{ dbt.datediff(first_date, second_date, 'day') }} * 24 + date_part('hour', ({{second_date}})::timestamp) - date_part('hour', ({{first_date}})::timestamp))\n {% elif datepart == 'minute' %}\n ({{ dbt.datediff(first_date, second_date, 'hour') }} * 60 + date_part('minute', ({{second_date}})::timestamp) - date_part('minute', ({{first_date}})::timestamp))\n {% elif datepart == 'second' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60 + floor(date_part('second', ({{second_date}})::timestamp)) - floor(date_part('second', ({{first_date}})::timestamp)))\n {% elif datepart == 'millisecond' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60000 + floor(date_part('millisecond', ({{second_date}})::timestamp)) - floor(date_part('millisecond', ({{first_date}})::timestamp)))\n {% elif datepart == 'microsecond' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60000000 + floor(date_part('microsecond', ({{second_date}})::timestamp)) - floor(date_part('microsecond', ({{first_date}})::timestamp)))\n {% else %}\n {{ exceptions.raise_compiler_error(\"Unsupported datepart for macro datediff in postgres: {!r}\".format(datepart)) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6498952, "supported_languages": null}, "macro.fivetran_utils.ceiling": {"name": "ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.ceiling", "macro_sql": "{% macro ceiling(num) -%}\n\n{{ adapter.dispatch('ceiling', 'fivetran_utils') (num) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__ceiling"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6503613, "supported_languages": null}, "macro.fivetran_utils.default__ceiling": {"name": "default__ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.default__ceiling", "macro_sql": "{% macro default__ceiling(num) %}\n ceiling({{ num }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6505413, "supported_languages": null}, "macro.fivetran_utils.snowflake__ceiling": {"name": "snowflake__ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.snowflake__ceiling", "macro_sql": "{% macro snowflake__ceiling(num) %}\n ceil({{ num }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6507294, "supported_languages": null}, "macro.fivetran_utils.persist_pass_through_columns": {"name": "persist_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/persist_pass_through_columns.sql", "original_file_path": "macros/persist_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.persist_pass_through_columns", "macro_sql": "{% macro persist_pass_through_columns(pass_through_variable, identifier=none, transform='') %}\n\n{% if var(pass_through_variable, none) %}\n {% for field in var(pass_through_variable) %}\n , {{ transform ~ '(' ~ (identifier ~ '.' if identifier else '') ~ (field.alias if field.alias else field.name) ~ ')' }} as {{ field.alias if field.alias else field.name }}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6517887, "supported_languages": null}, "macro.fivetran_utils.seed_data_helper": {"name": "seed_data_helper", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/seed_data_helper.sql", "original_file_path": "macros/seed_data_helper.sql", "unique_id": "macro.fivetran_utils.seed_data_helper", "macro_sql": "{% macro seed_data_helper(seed_name, warehouses) %}\n\n{% if target.type in warehouses %}\n {% for w in warehouses %}\n {% if target.type == w %}\n {{ return(ref(seed_name ~ \"_\" ~ w ~ \"\")) }}\n {% endif %}\n {% endfor %}\n{% else %}\n{{ return(ref(seed_name)) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6527374, "supported_languages": null}, "macro.fivetran_utils.collect_freshness": {"name": "collect_freshness", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "unique_id": "macro.fivetran_utils.collect_freshness", "macro_sql": "{% macro collect_freshness(source, loaded_at_field, filter) %}\n {{ return(adapter.dispatch('collect_freshness')(source, loaded_at_field, filter))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6535614, "supported_languages": null}, "macro.fivetran_utils.default__collect_freshness": {"name": "default__collect_freshness", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "unique_id": "macro.fivetran_utils.default__collect_freshness", "macro_sql": "{% macro default__collect_freshness(source, loaded_at_field, filter) %}\n {% call statement('collect_freshness', fetch_result=True, auto_begin=False) -%}\n\n {%- set enabled_array = [] -%}\n {% for node in graph.sources.values() %}\n {% if node.identifier == source.identifier %}\n {% if (node.meta['is_enabled'] | default(true)) %}\n {%- do enabled_array.append(1) -%}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% set is_enabled = (enabled_array != []) %}\n\n select\n {% if is_enabled %}\n max({{ loaded_at_field }})\n {% else %} \n {{ current_timestamp() }} {% endif %} as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n\n {% if is_enabled %}\n from {{ source }}\n {% if filter %}\n where {{ filter }}\n {% endif %}\n {% endif %}\n\n {% endcall %}\n\n {% if dbt_version.split('.') | map('int') | list >= [1, 5, 0] %}\n {{ return(load_result('collect_freshness')) }}\n {% else %}\n {{ return(load_result('collect_freshness').table) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.655711, "supported_languages": null}, "macro.fivetran_utils.union_relations": {"name": "union_relations", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "unique_id": "macro.fivetran_utils.union_relations", "macro_sql": "{%- macro union_relations(relations, aliases=none, column_override=none, include=[], exclude=[], source_column_name=none) -%}\n\n {%- if exclude and include -%}\n {{ exceptions.raise_compiler_error(\"Both an exclude and include list were provided to the `union` macro. Only one is allowed\") }}\n {%- endif -%}\n\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. -#}\n {%- if not execute %}\n {{ return('') }}\n {% endif -%}\n\n {%- set column_override = column_override if column_override is not none else {} -%}\n {%- set source_column_name = source_column_name if source_column_name is not none else '_dbt_source_relation' -%}\n\n {%- set relation_columns = {} -%}\n {%- set column_superset = {} -%}\n\n {%- for relation in relations -%}\n\n {%- do relation_columns.update({relation: []}) -%}\n\n {%- do dbt_utils._is_relation(relation, 'union_relations') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) -%}\n {%- for col in cols -%}\n\n {#- If an exclude list was provided and the column is in the list, do nothing -#}\n {%- if exclude and col.column in exclude -%}\n\n {#- If an include list was provided and the column is not in the list, do nothing -#}\n {%- elif include and col.column not in include -%}\n\n {#- Otherwise add the column to the column superset -#}\n {%- else -%}\n\n {#- update the list of columns in this relation -#}\n {%- do relation_columns[relation].append(col.column) -%}\n\n {%- if col.column in column_superset -%}\n\n {%- set stored = column_superset[col.column] -%}\n {%- if col.is_string() and stored.is_string() and col.string_size() > stored.string_size() -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif %}\n\n {%- else -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif -%}\n\n {%- endif -%}\n\n {%- endfor -%}\n {%- endfor -%}\n\n {%- set ordered_column_names = column_superset.keys() -%}\n\n {%- for relation in relations %}\n\n (\n select\n\n cast({{ dbt.string_literal(relation) }} as {{ dbt.type_string() }}) as {{ source_column_name }},\n {% for col_name in ordered_column_names -%}\n\n {%- set col = column_superset[col_name] %}\n {%- set col_type = column_override.get(col.column, col.data_type) %}\n {%- set col_name = adapter.quote(col_name) if col_name in relation_columns[relation] else 'null' %}\n cast({{ col_name }} as {{ col_type }}) as {{ col.quoted }} {% if not loop.last %},{% endif -%}\n\n {%- endfor %}\n\n from {{ aliases[loop.index0] if aliases else relation }}\n )\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n\n {%- endfor -%}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt.string_literal", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6605744, "supported_languages": null}, "macro.fivetran_utils.union_tables": {"name": "union_tables", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "unique_id": "macro.fivetran_utils.union_tables", "macro_sql": "{%- macro union_tables(tables, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_table') -%}\n\n {%- do exceptions.warn(\"Warning: the `union_tables` macro is no longer supported and will be deprecated in a future release of dbt-utils. Use the `union_relations` macro instead\") -%}\n\n {{ return(dbt_utils.union_relations(tables, column_override, include, exclude, source_column_name)) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.661223, "supported_languages": null}, "macro.fivetran_utils.union_relations_custom": {"name": "union_relations_custom", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations_custom.sql", "original_file_path": "macros/union_relations_custom.sql", "unique_id": "macro.fivetran_utils.union_relations_custom", "macro_sql": "{%- macro union_relations_custom(relations, aliases=none, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n {{ return(adapter.dispatch('union_relations_custom', 'fivetran_utils')(relations, aliases, column_override, include, exclude, source_column_name, where)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__union_relations_custom"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6632235, "supported_languages": null}, "macro.fivetran_utils.default__union_relations_custom": {"name": "default__union_relations_custom", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations_custom.sql", "original_file_path": "macros/union_relations_custom.sql", "unique_id": "macro.fivetran_utils.default__union_relations_custom", "macro_sql": "\n\n{%- macro default__union_relations_custom(relations, aliases=none, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n\n {%- if exclude and include -%}\n {{ exceptions.raise_compiler_error(\"Both an exclude and include list were provided to the `union` macro. Only one is allowed\") }}\n {%- endif -%}\n\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. -#}\n {%- if not execute %}\n {{ return('') }}\n {% endif -%}\n\n {%- set column_override = column_override if column_override is not none else {} -%}\n\n {%- set relation_columns = {} -%}\n {%- set column_superset = {} -%}\n {%- set all_excludes = [] -%}\n {%- set all_includes = [] -%}\n\n {%- if exclude -%}\n {%- for exc in exclude -%}\n {%- do all_excludes.append(exc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- if include -%}\n {%- for inc in include -%}\n {%- do all_includes.append(inc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- for relation in relations -%}\n\n {%- do relation_columns.update({relation: []}) -%}\n\n {%- do dbt_utils._is_relation(relation, 'zendesk_union_relations') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'zendesk_union_relations') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) -%}\n {%- for col in cols -%}\n\n {#- If an exclude list was provided and the column is in the list, do nothing -#}\n {%- if exclude and col.column | lower in all_excludes -%}\n\n {#- If an include list was provided and the column is not in the list, do nothing -#}\n {%- elif include and col.column | lower not in all_includes -%}\n\n {#- Otherwise add the column to the column superset -#}\n {%- else -%}\n\n {#- update the list of columns in this relation -#}\n {%- do relation_columns[relation].append(col.column) -%}\n\n {%- if col.column in column_superset -%}\n\n {%- set stored = column_superset[col.column] -%}\n {%- if col.is_string() and stored.is_string() and col.string_size() > stored.string_size() -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif %}\n\n {%- else -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif -%}\n\n {%- endif -%}\n\n {%- endfor -%}\n {%- endfor -%}\n\n {%- set ordered_column_names = column_superset.keys() -%}\n {%- set dbt_command = flags.WHICH -%}\n\n\n {% if dbt_command in ['run', 'build'] %}\n {% if (include | length > 0 or exclude | length > 0) and not column_superset.keys() %}\n {%- set relations_string -%}\n {%- for relation in relations -%}\n {{ relation.name }}\n {%- if not loop.last %}, {% endif -%}\n {%- endfor -%}\n {%- endset -%}\n\n {%- set error_message -%}\n There were no columns found to union for relations {{ relations_string }}\n {%- endset -%}\n\n {{ exceptions.raise_compiler_error(error_message) }}\n {%- endif -%}\n {%- endif -%}\n\n {%- for relation in relations %}\n\n (\n select\n\n {%- if source_column_name is not none %}\n {# dbt_utils union_relations includes the table in the source_relation. For Fivetran dbt package purposes the table should not be included in the source relation. #}\n cast({{ dbt.string_literal(relation.database ~ '.' ~ relation.schema) }} as {{ dbt.type_string() }}) as {{ source_column_name }},\n {%- endif %}\n\n {% for col_name in ordered_column_names -%}\n\n {%- set col = column_superset[col_name] %}\n {%- set col_type = column_override.get(col.column, col.data_type) %}\n {%- set col_name = adapter.quote(col_name) if col_name in relation_columns[relation] else 'null' %}\n cast({{ col_name }} as {{ col_type }}) as {{ col.quoted }} {% if not loop.last %},{% endif -%}\n\n {%- endfor %}\n \n {# This alias is a change from dbt_utils union_relations code. Avoids errors if the table is named a reserved keyword #}\n from {{ aliases[loop.index0] if aliases else relation }} as unioned_relation_{{ loop.index }}\n\n {% if where -%}\n where {{ where }}\n {%- endif %}\n )\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n\n {%- endfor -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.string_literal", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6692657, "supported_languages": null}, "macro.fivetran_utils.fill_staging_columns": {"name": "fill_staging_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "unique_id": "macro.fivetran_utils.fill_staging_columns", "macro_sql": "{% macro fill_staging_columns(source_columns, staging_columns) %}\n\n{%- set source_column_names = source_columns|map(attribute='name')|map('lower')|list -%}\n{%- set using_source_casing = var('fivetran_using_source_casing', false) -%}\n\n{%- for column in staging_columns %}\n {%- if column.name|lower in source_column_names %}\n {%- if using_source_casing %}\n {%- set column_alias = column.alias if 'alias' in column else column.name %}\n {{ adapter.quote(column.name) }} as {{ adapter.quote(column_alias|upper if target.type == 'snowflake' else column_alias) }}\n {%- else %}\n {{ fivetran_utils.quote_column(column) }} as\n {%- if 'alias' in column %} {{ column.alias }}{% else %} {{ fivetran_utils.quote_column(column) }}{% endif %}\n {%- endif %}\n {%- else %}\n cast(null as {{ column.datatype }}) as\n {%- if 'alias' in column %} {{ column.alias }}{% else %} {{ fivetran_utils.quote_column(column) }}{% endif %}\n {%- endif %}{{ ',' if not loop.last }}\n{%- endfor %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.quote_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6718404, "supported_languages": null}, "macro.fivetran_utils.quote_column": {"name": "quote_column", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "unique_id": "macro.fivetran_utils.quote_column", "macro_sql": "{% macro quote_column(column) %}\n {%- if 'quote' in column %}\n {%- if column.quote %}\n {%- if target.type in ('bigquery', 'spark', 'databricks') %}\n `{{ column.name }}`\n {%- elif target.type == 'snowflake' %}\n \"{{ column.name | upper }}\"\n {%- else %}\n \"{{ column.name }}\"\n {%- endif %}\n {%- else %}{{ column.name }}\n {%- endif %}\n {%- else %}{{ column.name }}\n {%- endif %}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6727502, "supported_languages": null}, "macro.fivetran_utils.drop_schemas_automation": {"name": "drop_schemas_automation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/drop_schemas_automation.sql", "original_file_path": "macros/drop_schemas_automation.sql", "unique_id": "macro.fivetran_utils.drop_schemas_automation", "macro_sql": "{% macro drop_schemas_automation(drop_target_schema=true) %}\n {{ return(adapter.dispatch('drop_schemas_automation', 'fivetran_utils')(drop_target_schema)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__drop_schemas_automation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6735194, "supported_languages": null}, "macro.fivetran_utils.default__drop_schemas_automation": {"name": "default__drop_schemas_automation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/drop_schemas_automation.sql", "original_file_path": "macros/drop_schemas_automation.sql", "unique_id": "macro.fivetran_utils.default__drop_schemas_automation", "macro_sql": "{% macro default__drop_schemas_automation(drop_target_schema=true) %}\n\n{% set fetch_list_sql %}\n {% if target.type not in ('databricks', 'spark') %}\n select schema_name\n from \n {{ wrap_in_quotes(target.database) }}.INFORMATION_SCHEMA.SCHEMATA\n where lower(schema_name) like '{{ target.schema | lower }}{%- if not drop_target_schema -%}_{%- endif -%}%'\n {% else %}\n SHOW SCHEMAS LIKE '{{ target.schema }}{%- if not drop_target_schema -%}_{%- endif -%}*'\n {% endif %}\n{% endset %}\n\n{% set results = run_query(fetch_list_sql) %}\n\n{% if execute %}\n {% set results_list = results.columns[0].values() %}\n{% else %}\n {% set results_list = [] %}\n{% endif %}\n\n{% for schema_to_drop in results_list %}\n {% do adapter.drop_schema(api.Relation.create(database=target.database, schema=schema_to_drop)) %}\n {{ print('Schema ' ~ schema_to_drop ~ ' successfully dropped from the ' ~ target.database ~ ' database.\\n')}}\n{% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.wrap_in_quotes", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6751928, "supported_languages": null}, "macro.fivetran_utils.enabled_vars": {"name": "enabled_vars", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/enabled_vars.sql", "original_file_path": "macros/enabled_vars.sql", "unique_id": "macro.fivetran_utils.enabled_vars", "macro_sql": "{% macro enabled_vars(vars) %}\n\n{% for v in vars %}\n \n {% if var(v, True) == False %}\n {{ return(False) }}\n {% endif %}\n\n{% endfor %}\n\n{{ return(True) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6758878, "supported_languages": null}, "macro.fivetran_utils.timestamp_add": {"name": "timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.timestamp_add", "macro_sql": "{% macro timestamp_add(datepart, interval, from_timestamp) -%}\n\n{{ adapter.dispatch('timestamp_add', 'fivetran_utils') (datepart, interval, from_timestamp) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.676592, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_add": {"name": "default__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.default__timestamp_add", "macro_sql": "{% macro default__timestamp_add(datepart, interval, from_timestamp) %}\n\n timestampadd(\n {{ datepart }},\n {{ interval }},\n {{ from_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6768928, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_add": {"name": "bigquery__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.bigquery__timestamp_add", "macro_sql": "{% macro bigquery__timestamp_add(datepart, interval, from_timestamp) %}\n\n timestamp_add({{ from_timestamp }}, interval {{ interval }} {{ datepart }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.677164, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_add": {"name": "redshift__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.redshift__timestamp_add", "macro_sql": "{% macro redshift__timestamp_add(datepart, interval, from_timestamp) %}\n\n dateadd(\n {{ datepart }},\n {{ interval }},\n {{ from_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6774356, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_add": {"name": "postgres__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.postgres__timestamp_add", "macro_sql": "{% macro postgres__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ from_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.677715, "supported_languages": null}, "macro.fivetran_utils.spark__timestamp_add": {"name": "spark__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.spark__timestamp_add", "macro_sql": "{% macro spark__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ dbt.dateadd(datepart, interval, from_timestamp) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6780088, "supported_languages": null}, "macro.fivetran_utils.calculated_fields": {"name": "calculated_fields", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/calculated_fields.sql", "original_file_path": "macros/calculated_fields.sql", "unique_id": "macro.fivetran_utils.calculated_fields", "macro_sql": "{% macro calculated_fields(variable) -%}\n\n{% if var(variable, none) %}\n {% for field in var(variable) %}\n , {{ field.transform_sql }} as {{ field.name }} \n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6786394, "supported_languages": null}, "macro.fivetran_utils.add_dbt_source_relation": {"name": "add_dbt_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/add_dbt_source_relation.sql", "original_file_path": "macros/add_dbt_source_relation.sql", "unique_id": "macro.fivetran_utils.add_dbt_source_relation", "macro_sql": "{% macro add_dbt_source_relation() %}\n\n{% if var('union_schemas', none) or var('union_databases', none) %}\n, _dbt_source_relation\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6790814, "supported_languages": null}, "macro.fivetran_utils.extract_url_parameter": {"name": "extract_url_parameter", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/extract_url_parameter.sql", "original_file_path": "macros/extract_url_parameter.sql", "unique_id": "macro.fivetran_utils.extract_url_parameter", "macro_sql": "{% macro extract_url_parameter(field, url_parameter) -%}\n\n{{ adapter.dispatch('extract_url_parameter', 'fivetran_utils') (field, url_parameter) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__extract_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6795764, "supported_languages": null}, "macro.fivetran_utils.default__extract_url_parameter": {"name": "default__extract_url_parameter", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/extract_url_parameter.sql", "original_file_path": "macros/extract_url_parameter.sql", "unique_id": "macro.fivetran_utils.default__extract_url_parameter", "macro_sql": "{% macro default__extract_url_parameter(field, url_parameter) -%}\n\n{{ dbt_utils.get_url_parameter(field, url_parameter) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6798472, "supported_languages": null}, "macro.fivetran_utils.spark__extract_url_parameter": {"name": "spark__extract_url_parameter", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/extract_url_parameter.sql", "original_file_path": "macros/extract_url_parameter.sql", "unique_id": "macro.fivetran_utils.spark__extract_url_parameter", "macro_sql": "{% macro spark__extract_url_parameter(field, url_parameter) -%}\n\n{%- set formatted_url_parameter = \"'\" + url_parameter + \"=([^&]+)'\" -%}\nnullif(regexp_extract({{ field }}, {{ formatted_url_parameter }}, 1), '')\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.680306, "supported_languages": null}, "macro.fivetran_utils.pivot_json_extract": {"name": "pivot_json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/pivot_json_extract.sql", "original_file_path": "macros/pivot_json_extract.sql", "unique_id": "macro.fivetran_utils.pivot_json_extract", "macro_sql": "{% macro pivot_json_extract(string, list_of_properties) %}\n\n{%- for property in list_of_properties -%}\n{%- if property is mapping -%}\nreplace( {{ fivetran_utils.json_extract(string, property.name) }}, '\"', '') as {{ property.alias if property.alias else property.name | replace(' ', '_') | replace('.', '_') | lower }}\n\n{%- else -%}\nreplace( {{ fivetran_utils.json_extract(string, property) }}, '\"', '') as {{ property | replace(' ', '_') | lower }}\n\n{%- endif -%}\n{%- if not loop.last -%},{%- endif %}\n{% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6815977, "supported_languages": null}, "macro.spark_utils.get_tables": {"name": "get_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_tables", "macro_sql": "{% macro get_tables(table_regex_pattern='.*') %}\n\n {% set tables = [] %}\n {% for database in spark__list_schemas('not_used') %}\n {% for table in spark__list_relations_without_caching(database[0]) %}\n {% set db_tablename = database[0] ~ \".\" ~ table[1] %}\n {% set is_match = modules.re.match(table_regex_pattern, db_tablename) %}\n {% if is_match %}\n {% call statement('table_detail', fetch_result=True) -%}\n describe extended {{ db_tablename }}\n {% endcall %}\n\n {% set table_type = load_result('table_detail').table|reverse|selectattr(0, 'in', ('type', 'TYPE', 'Type'))|first %}\n {% if table_type[1]|lower != 'view' %}\n {{ tables.append(db_tablename) }}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% endfor %}\n {{ return(tables) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6847005, "supported_languages": null}, "macro.spark_utils.get_delta_tables": {"name": "get_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_delta_tables", "macro_sql": "{% macro get_delta_tables(table_regex_pattern='.*') %}\n\n {% set delta_tables = [] %}\n {% for db_tablename in get_tables(table_regex_pattern) %}\n {% call statement('table_detail', fetch_result=True) -%}\n describe extended {{ db_tablename }}\n {% endcall %}\n\n {% set table_type = load_result('table_detail').table|reverse|selectattr(0, 'in', ('provider', 'PROVIDER', 'Provider'))|first %}\n {% if table_type[1]|lower == 'delta' %}\n {{ delta_tables.append(db_tablename) }}\n {% endif %}\n {% endfor %}\n {{ return(delta_tables) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_tables", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6858642, "supported_languages": null}, "macro.spark_utils.get_statistic_columns": {"name": "get_statistic_columns", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_statistic_columns", "macro_sql": "{% macro get_statistic_columns(table) %}\n\n {% call statement('input_columns', fetch_result=True) %}\n SHOW COLUMNS IN {{ table }}\n {% endcall %}\n {% set input_columns = load_result('input_columns').table %}\n\n {% set output_columns = [] %}\n {% for column in input_columns %}\n {% call statement('column_information', fetch_result=True) %}\n DESCRIBE TABLE {{ table }} `{{ column[0] }}`\n {% endcall %}\n {% if not load_result('column_information').table[1][1].startswith('struct') and not load_result('column_information').table[1][1].startswith('array') %}\n {{ output_columns.append('`' ~ column[0] ~ '`') }}\n {% endif %}\n {% endfor %}\n {{ return(output_columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6873116, "supported_languages": null}, "macro.spark_utils.spark_optimize_delta_tables": {"name": "spark_optimize_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_optimize_delta_tables", "macro_sql": "{% macro spark_optimize_delta_tables(table_regex_pattern='.*') %}\n\n {% for table in get_delta_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Optimizing \" ~ table) }}\n {% do run_query(\"optimize \" ~ table) %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.68853, "supported_languages": null}, "macro.spark_utils.spark_vacuum_delta_tables": {"name": "spark_vacuum_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_vacuum_delta_tables", "macro_sql": "{% macro spark_vacuum_delta_tables(table_regex_pattern='.*') %}\n\n {% for table in get_delta_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Vacuuming \" ~ table) }}\n {% do run_query(\"vacuum \" ~ table) %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6897545, "supported_languages": null}, "macro.spark_utils.spark_analyze_tables": {"name": "spark_analyze_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_analyze_tables", "macro_sql": "{% macro spark_analyze_tables(table_regex_pattern='.*') %}\n\n {% for table in get_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set columns = get_statistic_columns(table) | join(',') %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Analyzing \" ~ table) }}\n {% if columns != '' %}\n {% do run_query(\"analyze table \" ~ table ~ \" compute statistics for columns \" ~ columns) %}\n {% endif %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_tables", "macro.spark_utils.get_statistic_columns", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6912324, "supported_languages": null}, "macro.spark_utils.assert_not_null": {"name": "assert_not_null", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "unique_id": "macro.spark_utils.assert_not_null", "macro_sql": "{% macro assert_not_null(function, arg) -%}\n {{ return(adapter.dispatch('assert_not_null', 'spark_utils')(function, arg)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.spark_utils.default__assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6918018, "supported_languages": null}, "macro.spark_utils.default__assert_not_null": {"name": "default__assert_not_null", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "unique_id": "macro.spark_utils.default__assert_not_null", "macro_sql": "{% macro default__assert_not_null(function, arg) %}\n\n coalesce({{function}}({{arg}}), nvl2({{function}}({{arg}}), assert_true({{function}}({{arg}}) is not null), null))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6921544, "supported_languages": null}, "macro.spark_utils.spark__convert_timezone": {"name": "spark__convert_timezone", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/snowplow/convert_timezone.sql", "original_file_path": "macros/snowplow/convert_timezone.sql", "unique_id": "macro.spark_utils.spark__convert_timezone", "macro_sql": "{% macro spark__convert_timezone(in_tz, out_tz, in_timestamp) %}\n from_utc_timestamp(to_utc_timestamp({{in_timestamp}}, {{in_tz}}), {{out_tz}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.692506, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_pattern": {"name": "spark__get_relations_by_pattern", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_relations_by_pattern", "macro_sql": "{% macro spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n show table extended in {{ schema_pattern }} like '{{ table_pattern }}'\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=None,\n schema=row[0],\n identifier=row[1],\n type=('view' if 'Type: VIEW' in row[3] else 'table')\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6945002, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_prefix": {"name": "spark__get_relations_by_prefix", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_relations_by_prefix", "macro_sql": "{% macro spark__get_relations_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {% set table_pattern = table_pattern ~ '*' %}\n {{ return(spark_utils.spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6952028, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_pattern": {"name": "spark__get_tables_by_pattern", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_tables_by_pattern", "macro_sql": "{% macro spark__get_tables_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(spark_utils.spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6956868, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_prefix": {"name": "spark__get_tables_by_prefix", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_tables_by_prefix", "macro_sql": "{% macro spark__get_tables_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(spark_utils.spark__get_relations_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_prefix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6961498, "supported_languages": null}, "macro.spark_utils.spark__dateadd": {"name": "spark__dateadd", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "unique_id": "macro.spark_utils.spark__dateadd", "macro_sql": "{% macro spark__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n {%- set clock_component -%}\n {# make sure the dates + timestamps are real, otherwise raise an error asap #}\n to_unix_timestamp({{ spark_utils.assert_not_null('to_timestamp', from_date_or_timestamp) }})\n - to_unix_timestamp({{ spark_utils.assert_not_null('date', from_date_or_timestamp) }})\n {%- endset -%}\n\n {%- if datepart in ['day', 'week'] -%}\n \n {%- set multiplier = 7 if datepart == 'week' else 1 -%}\n\n to_timestamp(\n to_unix_timestamp(\n date_add(\n {{ spark_utils.assert_not_null('date', from_date_or_timestamp) }},\n cast({{interval}} * {{multiplier}} as int)\n )\n ) + {{clock_component}}\n )\n\n {%- elif datepart in ['month', 'quarter', 'year'] -%}\n \n {%- set multiplier -%} \n {%- if datepart == 'month' -%} 1\n {%- elif datepart == 'quarter' -%} 3\n {%- elif datepart == 'year' -%} 12\n {%- endif -%}\n {%- endset -%}\n\n to_timestamp(\n to_unix_timestamp(\n add_months(\n {{ spark_utils.assert_not_null('date', from_date_or_timestamp) }},\n cast({{interval}} * {{multiplier}} as int)\n )\n ) + {{clock_component}}\n )\n\n {%- elif datepart in ('hour', 'minute', 'second', 'millisecond', 'microsecond') -%}\n \n {%- set multiplier -%} \n {%- if datepart == 'hour' -%} 3600\n {%- elif datepart == 'minute' -%} 60\n {%- elif datepart == 'second' -%} 1\n {%- elif datepart == 'millisecond' -%} (1/1000000)\n {%- elif datepart == 'microsecond' -%} (1/1000000)\n {%- endif -%}\n {%- endset -%}\n\n to_timestamp(\n {{ spark_utils.assert_not_null('to_unix_timestamp', from_date_or_timestamp) }}\n + cast({{interval}} * {{multiplier}} as int)\n )\n\n {%- else -%}\n\n {{ exceptions.raise_compiler_error(\"macro dateadd not implemented for datepart ~ '\" ~ datepart ~ \"' ~ on Spark\") }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6993608, "supported_languages": null}, "macro.spark_utils.spark__type_numeric": {"name": "spark__type_numeric", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "unique_id": "macro.spark_utils.spark__type_numeric", "macro_sql": "{% macro spark__type_numeric() %}\n decimal(28, 6)\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6996026, "supported_languages": null}, "macro.spark_utils.spark__concat": {"name": "spark__concat", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/concat.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/concat.sql", "unique_id": "macro.spark_utils.spark__concat", "macro_sql": "{% macro spark__concat(fields) -%}\n concat({{ fields|join(', ') }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.6999135, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp": {"name": "spark__current_timestamp", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "unique_id": "macro.spark_utils.spark__current_timestamp", "macro_sql": "{% macro spark__current_timestamp() %}\n current_timestamp()\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7001226, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp_in_utc": {"name": "spark__current_timestamp_in_utc", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "unique_id": "macro.spark_utils.spark__current_timestamp_in_utc", "macro_sql": "{% macro spark__current_timestamp_in_utc() %}\n unix_timestamp()\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.70025, "supported_languages": null}, "macro.spark_utils.spark__datediff": {"name": "spark__datediff", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/datediff.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datediff.sql", "unique_id": "macro.spark_utils.spark__datediff", "macro_sql": "{% macro spark__datediff(first_date, second_date, datepart) %}\n\n {%- if datepart in ['day', 'week', 'month', 'quarter', 'year'] -%}\n \n {# make sure the dates are real, otherwise raise an error asap #}\n {% set first_date = spark_utils.assert_not_null('date', first_date) %}\n {% set second_date = spark_utils.assert_not_null('date', second_date) %}\n \n {%- endif -%}\n \n {%- if datepart == 'day' -%}\n \n datediff({{second_date}}, {{first_date}})\n \n {%- elif datepart == 'week' -%}\n \n case when {{first_date}} < {{second_date}}\n then floor(datediff({{second_date}}, {{first_date}})/7)\n else ceil(datediff({{second_date}}, {{first_date}})/7)\n end\n \n -- did we cross a week boundary (Sunday)?\n + case\n when {{first_date}} < {{second_date}} and dayofweek({{second_date}}) < dayofweek({{first_date}}) then 1\n when {{first_date}} > {{second_date}} and dayofweek({{second_date}}) > dayofweek({{first_date}}) then -1\n else 0 end\n\n {%- elif datepart == 'month' -%}\n\n case when {{first_date}} < {{second_date}}\n then floor(months_between(date({{second_date}}), date({{first_date}})))\n else ceil(months_between(date({{second_date}}), date({{first_date}})))\n end\n \n -- did we cross a month boundary?\n + case\n when {{first_date}} < {{second_date}} and dayofmonth({{second_date}}) < dayofmonth({{first_date}}) then 1\n when {{first_date}} > {{second_date}} and dayofmonth({{second_date}}) > dayofmonth({{first_date}}) then -1\n else 0 end\n \n {%- elif datepart == 'quarter' -%}\n \n case when {{first_date}} < {{second_date}}\n then floor(months_between(date({{second_date}}), date({{first_date}}))/3)\n else ceil(months_between(date({{second_date}}), date({{first_date}}))/3)\n end\n \n -- did we cross a quarter boundary?\n + case\n when {{first_date}} < {{second_date}} and (\n (dayofyear({{second_date}}) - (quarter({{second_date}}) * 365/4))\n < (dayofyear({{first_date}}) - (quarter({{first_date}}) * 365/4))\n ) then 1\n when {{first_date}} > {{second_date}} and (\n (dayofyear({{second_date}}) - (quarter({{second_date}}) * 365/4))\n > (dayofyear({{first_date}}) - (quarter({{first_date}}) * 365/4))\n ) then -1\n else 0 end\n\n {%- elif datepart == 'year' -%}\n \n year({{second_date}}) - year({{first_date}})\n\n {%- elif datepart in ('hour', 'minute', 'second', 'millisecond', 'microsecond') -%}\n \n {%- set divisor -%} \n {%- if datepart == 'hour' -%} 3600\n {%- elif datepart == 'minute' -%} 60\n {%- elif datepart == 'second' -%} 1\n {%- elif datepart == 'millisecond' -%} (1/1000)\n {%- elif datepart == 'microsecond' -%} (1/1000000)\n {%- endif -%}\n {%- endset -%}\n\n case when {{first_date}} < {{second_date}}\n then ceil((\n {# make sure the timestamps are real, otherwise raise an error asap #}\n {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', second_date)) }}\n - {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', first_date)) }}\n ) / {{divisor}})\n else floor((\n {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', second_date)) }}\n - {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', first_date)) }}\n ) / {{divisor}})\n end\n \n {% if datepart == 'millisecond' %}\n + cast(date_format({{second_date}}, 'SSS') as int)\n - cast(date_format({{first_date}}, 'SSS') as int)\n {% endif %}\n \n {% if datepart == 'microsecond' %} \n {% set capture_str = '[0-9]{4}-[0-9]{2}-[0-9]{2}.[0-9]{2}:[0-9]{2}:[0-9]{2}.([0-9]{6})' %}\n -- Spark doesn't really support microseconds, so this is a massive hack!\n -- It will only work if the timestamp-string is of the format\n -- 'yyyy-MM-dd-HH mm.ss.SSSSSS'\n + cast(regexp_extract({{second_date}}, '{{capture_str}}', 1) as int)\n - cast(regexp_extract({{first_date}}, '{{capture_str}}', 1) as int) \n {% endif %}\n\n {%- else -%}\n\n {{ exceptions.raise_compiler_error(\"macro datediff not implemented for datepart ~ '\" ~ datepart ~ \"' ~ on Spark\") }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7062976, "supported_languages": null}, "macro.spark_utils.spark__split_part": {"name": "spark__split_part", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/split_part.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/split_part.sql", "unique_id": "macro.spark_utils.spark__split_part", "macro_sql": "{% macro spark__split_part(string_text, delimiter_text, part_number) %}\n\n {% set delimiter_expr %}\n \n -- escape if starts with a special character\n case when regexp_extract({{ delimiter_text }}, '([^A-Za-z0-9])(.*)', 1) != '_'\n then concat('\\\\', {{ delimiter_text }})\n else {{ delimiter_text }} end\n \n {% endset %}\n\n {% set split_part_expr %}\n \n split(\n {{ string_text }},\n {{ delimiter_expr }}\n )[({{ part_number - 1 }})]\n \n {% endset %}\n \n {{ return(split_part_expr) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7071917, "supported_languages": null}, "macro.dbt_utils.get_table_types_sql": {"name": "get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.get_table_types_sql", "macro_sql": "{%- macro get_table_types_sql() -%}\n {{ return(adapter.dispatch('get_table_types_sql', 'dbt_utils')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_utils.postgres__get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.707775, "supported_languages": null}, "macro.dbt_utils.default__get_table_types_sql": {"name": "default__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.default__get_table_types_sql", "macro_sql": "{% macro default__get_table_types_sql() %}\n case table_type\n when 'BASE TABLE' then 'table'\n when 'EXTERNAL TABLE' then 'external'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.708023, "supported_languages": null}, "macro.dbt_utils.postgres__get_table_types_sql": {"name": "postgres__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.postgres__get_table_types_sql", "macro_sql": "{% macro postgres__get_table_types_sql() %}\n case table_type\n when 'BASE TABLE' then 'table'\n when 'FOREIGN' then 'external'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7082555, "supported_languages": null}, "macro.dbt_utils.databricks__get_table_types_sql": {"name": "databricks__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.databricks__get_table_types_sql", "macro_sql": "{% macro databricks__get_table_types_sql() %}\n case table_type\n when 'MANAGED' then 'table'\n when 'BASE TABLE' then 'table'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.708489, "supported_languages": null}, "macro.dbt_utils.group_by": {"name": "group_by", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "unique_id": "macro.dbt_utils.group_by", "macro_sql": "{%- macro group_by(n) -%}\n {{ return(adapter.dispatch('group_by', 'dbt_utils')(n)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__group_by"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7089639, "supported_languages": null}, "macro.dbt_utils.default__group_by": {"name": "default__group_by", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "unique_id": "macro.dbt_utils.default__group_by", "macro_sql": "\n\n{%- macro default__group_by(n) -%}\n\n group by {% for i in range(1, n + 1) -%}\n {{ i }}{{ ',' if not loop.last }} \n {%- endfor -%}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7093806, "supported_languages": null}, "macro.dbt_utils.deduplicate": {"name": "deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.deduplicate", "macro_sql": "{%- macro deduplicate(relation, partition_by, order_by) -%}\n {{ return(adapter.dispatch('deduplicate', 'dbt_utils')(relation, partition_by, order_by)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.postgres__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7104874, "supported_languages": null}, "macro.dbt_utils.default__deduplicate": {"name": "default__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.default__deduplicate", "macro_sql": "\n\n{%- macro default__deduplicate(relation, partition_by, order_by) -%}\n\n with row_numbered as (\n select\n _inner.*,\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) as rn\n from {{ relation }} as _inner\n )\n\n select\n distinct data.*\n from {{ relation }} as data\n {#\n -- Not all DBs will support natural joins but the ones that do include:\n -- Oracle, MySQL, SQLite, Redshift, Teradata, Materialize, Databricks\n -- Apache Spark, SingleStore, Vertica\n -- Those that do not appear to support natural joins include:\n -- SQLServer, Trino, Presto, Rockset, Athena\n #}\n natural join row_numbered\n where row_numbered.rn = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7108808, "supported_languages": null}, "macro.dbt_utils.redshift__deduplicate": {"name": "redshift__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.redshift__deduplicate", "macro_sql": "{% macro redshift__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }} as tt\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.711175, "supported_languages": null}, "macro.dbt_utils.postgres__deduplicate": {"name": "postgres__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.postgres__deduplicate", "macro_sql": "\n{%- macro postgres__deduplicate(relation, partition_by, order_by) -%}\n\n select\n distinct on ({{ partition_by }}) *\n from {{ relation }}\n order by {{ partition_by }}{{ ',' ~ order_by }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7114956, "supported_languages": null}, "macro.dbt_utils.snowflake__deduplicate": {"name": "snowflake__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.snowflake__deduplicate", "macro_sql": "\n{%- macro snowflake__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }}\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.711787, "supported_languages": null}, "macro.dbt_utils.databricks__deduplicate": {"name": "databricks__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.databricks__deduplicate", "macro_sql": "\n{%- macro databricks__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }}\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7120624, "supported_languages": null}, "macro.dbt_utils.bigquery__deduplicate": {"name": "bigquery__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.bigquery__deduplicate", "macro_sql": "\n{%- macro bigquery__deduplicate(relation, partition_by, order_by) -%}\n\n select unique.*\n from (\n select\n array_agg (\n original\n order by {{ order_by }}\n limit 1\n )[offset(0)] unique\n from {{ relation }} original\n group by {{ partition_by }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.712343, "supported_languages": null}, "macro.dbt_utils.surrogate_key": {"name": "surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "unique_id": "macro.dbt_utils.surrogate_key", "macro_sql": "{%- macro surrogate_key(field_list) -%}\n {% set frustrating_jinja_feature = varargs %}\n {{ return(adapter.dispatch('surrogate_key', 'dbt_utils')(field_list, *varargs)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.712937, "supported_languages": null}, "macro.dbt_utils.default__surrogate_key": {"name": "default__surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "unique_id": "macro.dbt_utils.default__surrogate_key", "macro_sql": "\n\n{%- macro default__surrogate_key(field_list) -%}\n\n{%- set error_message = '\nWarning: `dbt_utils.surrogate_key` has been replaced by \\\n`dbt_utils.generate_surrogate_key`. The new macro treats null values \\\ndifferently to empty strings. To restore the behaviour of the original \\\nmacro, add a global variable in dbt_project.yml called \\\n`surrogate_key_treat_nulls_as_empty_strings` to your \\\ndbt_project.yml file with a value of True. \\\nThe {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.raise_compiler_error(error_message) -%}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.713462, "supported_languages": null}, "macro.dbt_utils.safe_add": {"name": "safe_add", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "unique_id": "macro.dbt_utils.safe_add", "macro_sql": "{%- macro safe_add(field_list) -%}\n {{ return(adapter.dispatch('safe_add', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7140524, "supported_languages": null}, "macro.dbt_utils.default__safe_add": {"name": "default__safe_add", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "unique_id": "macro.dbt_utils.default__safe_add", "macro_sql": "\n\n{%- macro default__safe_add(field_list) -%}\n\n{%- if field_list is not iterable or field_list is string or field_list is mapping -%}\n\n{%- set error_message = '\nWarning: the `safe_add` macro now takes a single list argument instead of \\\nstring arguments. The {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.warn(error_message) -%}\n\n{%- endif -%}\n\n{% set fields = [] %}\n\n{%- for field in field_list -%}\n\n {% do fields.append(\"coalesce(\" ~ field ~ \", 0)\") %}\n\n{%- endfor -%}\n\n{{ fields|join(' +\\n ') }}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7149675, "supported_languages": null}, "macro.dbt_utils.get_powers_of_two": {"name": "get_powers_of_two", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.get_powers_of_two", "macro_sql": "{% macro get_powers_of_two(upper_bound) %}\n {{ return(adapter.dispatch('get_powers_of_two', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7157385, "supported_languages": null}, "macro.dbt_utils.default__get_powers_of_two": {"name": "default__get_powers_of_two", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.default__get_powers_of_two", "macro_sql": "{% macro default__get_powers_of_two(upper_bound) %}\n\n {% if upper_bound <= 0 %}\n {{ exceptions.raise_compiler_error(\"upper bound must be positive\") }}\n {% endif %}\n\n {% for _ in range(1, 100) %}\n {% if upper_bound <= 2 ** loop.index %}{{ return(loop.index) }}{% endif %}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7164176, "supported_languages": null}, "macro.dbt_utils.generate_series": {"name": "generate_series", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7167454, "supported_languages": null}, "macro.dbt_utils.default__generate_series": {"name": "default__generate_series", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.default__generate_series", "macro_sql": "{% macro default__generate_series(upper_bound) %}\n\n {% set n = dbt_utils.get_powers_of_two(upper_bound) %}\n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n {% for i in range(n) %}\n p{{i}}.generated_number * power(2, {{i}})\n {% if not loop.last %} + {% endif %}\n {% endfor %}\n + 1\n as generated_number\n\n from\n\n {% for i in range(n) %}\n p as p{{i}}\n {% if not loop.last %} cross join {% endif %}\n {% endfor %}\n\n )\n\n select *\n from unioned\n where generated_number <= {{upper_bound}}\n order by generated_number\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7175827, "supported_languages": null}, "macro.dbt_utils.get_query_results_as_dict": {"name": "get_query_results_as_dict", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "unique_id": "macro.dbt_utils.get_query_results_as_dict", "macro_sql": "{% macro get_query_results_as_dict(query) %}\n {{ return(adapter.dispatch('get_query_results_as_dict', 'dbt_utils')(query)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_query_results_as_dict"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.71821, "supported_languages": null}, "macro.dbt_utils.default__get_query_results_as_dict": {"name": "default__get_query_results_as_dict", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "unique_id": "macro.dbt_utils.default__get_query_results_as_dict", "macro_sql": "{% macro default__get_query_results_as_dict(query) %}\n\n{# This macro returns a dictionary of the form {column_name: (tuple_of_results)} #}\n\n {%- call statement('get_query_results', fetch_result=True,auto_begin=false) -%}\n\n {{ query }}\n\n {%- endcall -%}\n\n {% set sql_results={} %}\n\n {%- if execute -%}\n {% set sql_results_table = load_result('get_query_results').table.columns %}\n {% for column_name, column in sql_results_table.items() %}\n {% do sql_results.update({column_name: column.values()}) %}\n {% endfor %}\n {%- endif -%}\n\n {{ return(sql_results) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7192075, "supported_languages": null}, "macro.dbt_utils.nullcheck_table": {"name": "nullcheck_table", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "unique_id": "macro.dbt_utils.nullcheck_table", "macro_sql": "{% macro nullcheck_table(relation) %}\n {{ return(adapter.dispatch('nullcheck_table', 'dbt_utils')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7197287, "supported_languages": null}, "macro.dbt_utils.default__nullcheck_table": {"name": "default__nullcheck_table", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "unique_id": "macro.dbt_utils.default__nullcheck_table", "macro_sql": "{% macro default__nullcheck_table(relation) %}\n\n {%- do dbt_utils._is_relation(relation, 'nullcheck_table') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'nullcheck_table') -%}\n {% set cols = adapter.get_columns_in_relation(relation) %}\n\n select {{ dbt_utils.nullcheck(cols) }}\n from {{relation}}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7202945, "supported_languages": null}, "macro.dbt_utils.union_relations": {"name": "union_relations", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "unique_id": "macro.dbt_utils.union_relations", "macro_sql": "{%- macro union_relations(relations, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n {{ return(adapter.dispatch('union_relations', 'dbt_utils')(relations, column_override, include, exclude, source_column_name, where)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7221751, "supported_languages": null}, "macro.dbt_utils.default__union_relations": {"name": "default__union_relations", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "unique_id": "macro.dbt_utils.default__union_relations", "macro_sql": "\n\n{%- macro default__union_relations(relations, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n\n {%- if exclude and include -%}\n {{ exceptions.raise_compiler_error(\"Both an exclude and include list were provided to the `union` macro. Only one is allowed\") }}\n {%- endif -%}\n\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. -#}\n {%- if not execute %}\n {{ return('') }}\n {% endif -%}\n\n {%- set column_override = column_override if column_override is not none else {} -%}\n\n {%- set relation_columns = {} -%}\n {%- set column_superset = {} -%}\n {%- set all_excludes = [] -%}\n {%- set all_includes = [] -%}\n\n {%- if exclude -%}\n {%- for exc in exclude -%}\n {%- do all_excludes.append(exc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- if include -%}\n {%- for inc in include -%}\n {%- do all_includes.append(inc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- for relation in relations -%}\n\n {%- do relation_columns.update({relation: []}) -%}\n\n {%- do dbt_utils._is_relation(relation, 'union_relations') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'union_relations') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) -%}\n {%- for col in cols -%}\n\n {#- If an exclude list was provided and the column is in the list, do nothing -#}\n {%- if exclude and col.column | lower in all_excludes -%}\n\n {#- If an include list was provided and the column is not in the list, do nothing -#}\n {%- elif include and col.column | lower not in all_includes -%}\n\n {#- Otherwise add the column to the column superset -#}\n {%- else -%}\n\n {#- update the list of columns in this relation -#}\n {%- do relation_columns[relation].append(col.column) -%}\n\n {%- if col.column in column_superset -%}\n\n {%- set stored = column_superset[col.column] -%}\n {%- if col.is_string() and stored.is_string() and col.string_size() > stored.string_size() -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif %}\n\n {%- else -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif -%}\n\n {%- endif -%}\n\n {%- endfor -%}\n {%- endfor -%}\n\n {%- set ordered_column_names = column_superset.keys() -%}\n {%- set dbt_command = flags.WHICH -%}\n\n\n {% if dbt_command in ['run', 'build'] %}\n {% if (include | length > 0 or exclude | length > 0) and not column_superset.keys() %}\n {%- set relations_string -%}\n {%- for relation in relations -%}\n {{ relation.name }}\n {%- if not loop.last %}, {% endif -%}\n {%- endfor -%}\n {%- endset -%}\n\n {%- set error_message -%}\n There were no columns found to union for relations {{ relations_string }}\n {%- endset -%}\n\n {{ exceptions.raise_compiler_error(error_message) }}\n {%- endif -%}\n {%- endif -%}\n\n {%- for relation in relations %}\n\n (\n select\n\n {%- if source_column_name is not none %}\n cast({{ dbt.string_literal(relation.render()) }} as {{ dbt.type_string() }}) as {{ source_column_name }},\n {%- endif %}\n\n /* No columns from any of the relations.\n This star is only output during dbt compile, and exists to keep SQLFluff happy. */\n {% if dbt_command == 'compile' and ordered_column_names|length == 0 %}\n *\n {% endif %}\n\n {% for col_name in ordered_column_names -%}\n\n {%- set col = column_superset[col_name] %}\n {%- set col_type = column_override.get(col.column, col.data_type) %}\n {%- set col_name = adapter.quote(col_name) if col_name in relation_columns[relation] else 'null' %}\n cast({{ col_name }} as {{ col_type }}) as {{ col.quoted }} {% if not loop.last %},{% endif -%}\n\n {%- endfor %}\n\n from {{ relation }}\n\n {% if where -%}\n where {{ where }}\n {%- endif %}\n )\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n\n {%- endfor -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.string_literal", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7281032, "supported_languages": null}, "macro.dbt_utils.get_relations_by_prefix": {"name": "get_relations_by_prefix", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "unique_id": "macro.dbt_utils.get_relations_by_prefix", "macro_sql": "{% macro get_relations_by_prefix(schema, prefix, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_relations_by_prefix', 'dbt_utils')(schema, prefix, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_relations_by_prefix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7290041, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_prefix": {"name": "default__get_relations_by_prefix", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "unique_id": "macro.dbt_utils.default__get_relations_by_prefix", "macro_sql": "{% macro default__get_relations_by_prefix(schema, prefix, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n {{ dbt_utils.get_tables_by_prefix_sql(schema, prefix, exclude, database) }}\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=database,\n schema=row.table_schema,\n identifier=row.table_name,\n type=row.table_type\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.get_tables_by_prefix_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7304165, "supported_languages": null}, "macro.dbt_utils.get_single_value": {"name": "get_single_value", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_single_value.sql", "original_file_path": "macros/sql/get_single_value.sql", "unique_id": "macro.dbt_utils.get_single_value", "macro_sql": "{% macro get_single_value(query, default=none) %}\n {{ return(adapter.dispatch('get_single_value', 'dbt_utils')(query, default)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_single_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.731147, "supported_languages": null}, "macro.dbt_utils.default__get_single_value": {"name": "default__get_single_value", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_single_value.sql", "original_file_path": "macros/sql/get_single_value.sql", "unique_id": "macro.dbt_utils.default__get_single_value", "macro_sql": "{% macro default__get_single_value(query, default) %}\n\n{# This macro returns the (0, 0) record in a query, i.e. the first row of the first column #}\n\n {%- call statement('get_query_result', fetch_result=True, auto_begin=false) -%}\n\n {{ query }}\n\n {%- endcall -%}\n\n {%- if execute -%}\n\n {% set r = load_result('get_query_result').table.columns[0].values() %}\n {% if r | length == 0 %}\n {% do print('Query `' ~ query ~ '` returned no rows. Using the default value: ' ~ default) %}\n {% set sql_result = default %}\n {% else %}\n {% set sql_result = r[0] %}\n {% endif %}\n \n {%- else -%}\n \n {% set sql_result = default %}\n \n {%- endif -%}\n\n {% do return(sql_result) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7323592, "supported_languages": null}, "macro.dbt_utils.width_bucket": {"name": "width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.width_bucket", "macro_sql": "{% macro width_bucket(expr, min_value, max_value, num_buckets) %}\n {{ return(adapter.dispatch('width_bucket', 'dbt_utils') (expr, min_value, max_value, num_buckets)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__width_bucket"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7331357, "supported_languages": null}, "macro.dbt_utils.default__width_bucket": {"name": "default__width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.default__width_bucket", "macro_sql": "{% macro default__width_bucket(expr, min_value, max_value, num_buckets) -%}\n\n {% set bin_size -%}\n (( {{ max_value }} - {{ min_value }} ) / {{ num_buckets }} )\n {%- endset %}\n (\n -- to break ties when the amount is eaxtly at the bucket egde\n case\n when\n mod(\n {{ dbt.safe_cast(expr, dbt.type_numeric() ) }},\n {{ dbt.safe_cast(bin_size, dbt.type_numeric() ) }}\n ) = 0\n then 1\n else 0\n end\n ) +\n -- Anything over max_value goes the N+1 bucket\n least(\n ceil(\n ({{ expr }} - {{ min_value }})/{{ bin_size }}\n ),\n {{ num_buckets }} + 1\n )\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.safe_cast", "macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7339168, "supported_languages": null}, "macro.dbt_utils.snowflake__width_bucket": {"name": "snowflake__width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.snowflake__width_bucket", "macro_sql": "{% macro snowflake__width_bucket(expr, min_value, max_value, num_buckets) %}\n width_bucket({{ expr }}, {{ min_value }}, {{ max_value }}, {{ num_buckets }} )\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.734244, "supported_languages": null}, "macro.dbt_utils.star": {"name": "star", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "unique_id": "macro.dbt_utils.star", "macro_sql": "{% macro star(from, relation_alias=False, except=[], prefix='', suffix='', quote_identifiers=True) -%}\r\n {{ return(adapter.dispatch('star', 'dbt_utils')(from, relation_alias, except, prefix, suffix, quote_identifiers)) }}\r\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__star"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7355723, "supported_languages": null}, "macro.dbt_utils.default__star": {"name": "default__star", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "unique_id": "macro.dbt_utils.default__star", "macro_sql": "{% macro default__star(from, relation_alias=False, except=[], prefix='', suffix='', quote_identifiers=True) -%}\r\n {%- do dbt_utils._is_relation(from, 'star') -%}\r\n {%- do dbt_utils._is_ephemeral(from, 'star') -%}\r\n\r\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\r\n {%- if not execute -%}\r\n {% do return('*') %}\r\n {%- endif -%}\r\n\r\n {% set cols = dbt_utils.get_filtered_columns_in_relation(from, except) %}\r\n\r\n {%- if cols|length <= 0 -%}\r\n {% if flags.WHICH == 'compile' %}\r\n {% set response %}\r\n*\r\n/* No columns were returned. Maybe the relation doesn't exist yet \r\nor all columns were excluded. This star is only output during \r\ndbt compile, and exists to keep SQLFluff happy. */\r\n {% endset %}\r\n {% do return(response) %}\r\n {% else %}\r\n {% do return(\"/* no columns returned from star() macro */\") %}\r\n {% endif %}\r\n {%- else -%}\r\n {%- for col in cols %}\r\n {%- if relation_alias %}{{ relation_alias }}.{% else %}{%- endif -%}\r\n {%- if quote_identifiers -%}\r\n {{ adapter.quote(col)|trim }} {%- if prefix!='' or suffix!='' %} as {{ adapter.quote(prefix ~ col ~ suffix)|trim }} {%- endif -%}\r\n {%- else -%}\r\n {{ col|trim }} {%- if prefix!='' or suffix!='' %} as {{ (prefix ~ col ~ suffix)|trim }} {%- endif -%}\r\n {% endif %}\r\n {%- if not loop.last %},{{ '\\n ' }}{%- endif -%}\r\n {%- endfor -%}\r\n {% endif %}\r\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.get_filtered_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7380614, "supported_languages": null}, "macro.dbt_utils.degrees_to_radians": {"name": "degrees_to_radians", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.degrees_to_radians", "macro_sql": "{% macro degrees_to_radians(degrees) -%}\n acos(-1) * {{degrees}} / 180\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7388802, "supported_languages": null}, "macro.dbt_utils.haversine_distance": {"name": "haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.haversine_distance", "macro_sql": "{% macro haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n {{ return(adapter.dispatch('haversine_distance', 'dbt_utils')(lat1,lon1,lat2,lon2,unit)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__haversine_distance"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7393537, "supported_languages": null}, "macro.dbt_utils.default__haversine_distance": {"name": "default__haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.default__haversine_distance", "macro_sql": "{% macro default__haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n{%- if unit == 'mi' %}\n {% set conversion_rate = 1 %}\n{% elif unit == 'km' %}\n {% set conversion_rate = 1.60934 %}\n{% else %}\n {{ exceptions.raise_compiler_error(\"unit input must be one of 'mi' or 'km'. Got \" ~ unit) }}\n{% endif %}\n\n 2 * 3961 * asin(sqrt(power((sin(radians(({{ lat2 }} - {{ lat1 }}) / 2))), 2) +\n cos(radians({{lat1}})) * cos(radians({{lat2}})) *\n power((sin(radians(({{ lon2 }} - {{ lon1 }}) / 2))), 2))) * {{ conversion_rate }}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7402837, "supported_languages": null}, "macro.dbt_utils.bigquery__haversine_distance": {"name": "bigquery__haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.bigquery__haversine_distance", "macro_sql": "{% macro bigquery__haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n{% set radians_lat1 = dbt_utils.degrees_to_radians(lat1) %}\n{% set radians_lat2 = dbt_utils.degrees_to_radians(lat2) %}\n{% set radians_lon1 = dbt_utils.degrees_to_radians(lon1) %}\n{% set radians_lon2 = dbt_utils.degrees_to_radians(lon2) %}\n{%- if unit == 'mi' %}\n {% set conversion_rate = 1 %}\n{% elif unit == 'km' %}\n {% set conversion_rate = 1.60934 %}\n{% else %}\n {{ exceptions.raise_compiler_error(\"unit input must be one of 'mi' or 'km'. Got \" ~ unit) }}\n{% endif %}\n 2 * 3961 * asin(sqrt(power(sin(({{ radians_lat2 }} - {{ radians_lat1 }}) / 2), 2) +\n cos({{ radians_lat1 }}) * cos({{ radians_lat2 }}) *\n power(sin(({{ radians_lon2 }} - {{ radians_lon1 }}) / 2), 2))) * {{ conversion_rate }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.degrees_to_radians"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7416365, "supported_languages": null}, "macro.dbt_utils.get_tables_by_prefix_sql": {"name": "get_tables_by_prefix_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "unique_id": "macro.dbt_utils.get_tables_by_prefix_sql", "macro_sql": "{% macro get_tables_by_prefix_sql(schema, prefix, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_tables_by_prefix_sql', 'dbt_utils')(schema, prefix, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_tables_by_prefix_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7423034, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_prefix_sql": {"name": "default__get_tables_by_prefix_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "unique_id": "macro.dbt_utils.default__get_tables_by_prefix_sql", "macro_sql": "{% macro default__get_tables_by_prefix_sql(schema, prefix, exclude='', database=target.database) %}\n\n {{ dbt_utils.get_tables_by_pattern_sql(\n schema_pattern = schema,\n table_pattern = prefix ~ '%',\n exclude = exclude,\n database = database\n ) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.742804, "supported_languages": null}, "macro.dbt_utils.generate_surrogate_key": {"name": "generate_surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "unique_id": "macro.dbt_utils.generate_surrogate_key", "macro_sql": "{%- macro generate_surrogate_key(field_list) -%}\n {{ return(adapter.dispatch('generate_surrogate_key', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__generate_surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7434366, "supported_languages": null}, "macro.dbt_utils.default__generate_surrogate_key": {"name": "default__generate_surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "unique_id": "macro.dbt_utils.default__generate_surrogate_key", "macro_sql": "\n\n{%- macro default__generate_surrogate_key(field_list) -%}\n\n{%- if var('surrogate_key_treat_nulls_as_empty_strings', False) -%}\n {%- set default_null_value = \"\" -%}\n{%- else -%}\n {%- set default_null_value = '_dbt_utils_surrogate_key_null_' -%}\n{%- endif -%}\n\n{%- set fields = [] -%}\n\n{%- for field in field_list -%}\n\n {%- do fields.append(\n \"coalesce(cast(\" ~ field ~ \" as \" ~ dbt.type_string() ~ \"), '\" ~ default_null_value ~\"')\"\n ) -%}\n\n {%- if not loop.last %}\n {%- do fields.append(\"'-'\") -%}\n {%- endif -%}\n\n{%- endfor -%}\n\n{{ dbt.hash(dbt.concat(fields)) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.type_string", "macro.dbt.hash", "macro.dbt.concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7445164, "supported_languages": null}, "macro.dbt_utils.unpivot": {"name": "unpivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "unique_id": "macro.dbt_utils.unpivot", "macro_sql": "{% macro unpivot(relation=none, cast_to='varchar', exclude=none, remove=none, field_name='field_name', value_name='value', quote_identifiers=False) -%}\n {{ return(adapter.dispatch('unpivot', 'dbt_utils')(relation, cast_to, exclude, remove, field_name, value_name, quote_identifiers)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__unpivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7458687, "supported_languages": null}, "macro.dbt_utils.default__unpivot": {"name": "default__unpivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "unique_id": "macro.dbt_utils.default__unpivot", "macro_sql": "{% macro default__unpivot(relation=none, cast_to='varchar', exclude=none, remove=none, field_name='field_name', value_name='value', quote_identifiers=False) -%}\n\n {% if not relation %}\n {{ exceptions.raise_compiler_error(\"Error: argument `relation` is required for `unpivot` macro.\") }}\n {% endif %}\n\n {%- set exclude = exclude if exclude is not none else [] %}\n {%- set remove = remove if remove is not none else [] %}\n\n {%- set include_cols = [] %}\n\n {%- set table_columns = {} %}\n\n {%- do table_columns.update({relation: []}) %}\n\n {%- do dbt_utils._is_relation(relation, 'unpivot') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'unpivot') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) %}\n\n {%- for col in cols -%}\n {%- if col.column.lower() not in remove|map('lower') and col.column.lower() not in exclude|map('lower') -%}\n {% do include_cols.append(col) %}\n {%- endif %}\n {%- endfor %}\n\n\n {%- for col in include_cols -%}\n {%- set current_col_name = adapter.quote(col.column) if quote_identifiers else col.column -%}\n select\n {%- for exclude_col in exclude %}\n {{ adapter.quote(exclude_col) if quote_identifiers else exclude_col }},\n {%- endfor %}\n\n cast('{{ col.column }}' as {{ dbt.type_string() }}) as {{ adapter.quote(field_name) if quote_identifiers else field_name }},\n cast( {% if col.data_type == 'boolean' %}\n {{ dbt.cast_bool_to_text(current_col_name) }}\n {% else %}\n {{ current_col_name }}\n {% endif %}\n as {{ cast_to }}) as {{ adapter.quote(value_name) if quote_identifiers else value_name }}\n\n from {{ relation }}\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n {%- endfor -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.type_string", "macro.dbt.cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7490869, "supported_languages": null}, "macro.dbt_utils.nullcheck": {"name": "nullcheck", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "unique_id": "macro.dbt_utils.nullcheck", "macro_sql": "{% macro nullcheck(cols) %}\n {{ return(adapter.dispatch('nullcheck', 'dbt_utils')(cols)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7496753, "supported_languages": null}, "macro.dbt_utils.default__nullcheck": {"name": "default__nullcheck", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "unique_id": "macro.dbt_utils.default__nullcheck", "macro_sql": "{% macro default__nullcheck(cols) %}\n{%- for col in cols %}\n\n {% if col.is_string() -%}\n\n nullif({{col.name}},'') as {{col.name}}\n\n {%- else -%}\n\n {{col.name}}\n\n {%- endif -%}\n\n{%- if not loop.last -%} , {%- endif -%}\n\n{%- endfor -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7502513, "supported_languages": null}, "macro.dbt_utils.get_intervals_between": {"name": "get_intervals_between", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.get_intervals_between", "macro_sql": "{% macro get_intervals_between(start_date, end_date, datepart) -%}\n {{ return(adapter.dispatch('get_intervals_between', 'dbt_utils')(start_date, end_date, datepart)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7511094, "supported_languages": null}, "macro.dbt_utils.default__get_intervals_between": {"name": "default__get_intervals_between", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.default__get_intervals_between", "macro_sql": "{% macro default__get_intervals_between(start_date, end_date, datepart) -%}\n {%- call statement('get_intervals_between', fetch_result=True) %}\n\n select {{ dbt.datediff(start_date, end_date, datepart) }}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_intervals_between') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values[0]) }}\n {%- else -%}\n {{ return(1) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7521174, "supported_languages": null}, "macro.dbt_utils.date_spine": {"name": "date_spine", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.date_spine", "macro_sql": "{% macro date_spine(datepart, start_date, end_date) %}\n {{ return(adapter.dispatch('date_spine', 'dbt_utils')(datepart, start_date, end_date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7525086, "supported_languages": null}, "macro.dbt_utils.default__date_spine": {"name": "default__date_spine", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.default__date_spine", "macro_sql": "{% macro default__date_spine(datepart, start_date, end_date) %}\n\n\n{# call as follows:\n\ndate_spine(\n \"day\",\n \"to_date('01/01/2016', 'mm/dd/yyyy')\",\n \"dbt.dateadd(week, 1, current_date)\"\n) #}\n\n\nwith rawdata as (\n\n {{dbt_utils.generate_series(\n dbt_utils.get_intervals_between(start_date, end_date, datepart)\n )}}\n\n),\n\nall_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n \"row_number() over (order by generated_number) - 1\",\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n\n),\n\nfiltered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n)\n\nselect * from filtered\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.generate_series", "macro.dbt_utils.get_intervals_between", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7531238, "supported_languages": null}, "macro.dbt_utils.get_filtered_columns_in_relation": {"name": "get_filtered_columns_in_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "unique_id": "macro.dbt_utils.get_filtered_columns_in_relation", "macro_sql": "{% macro get_filtered_columns_in_relation(from, except=[]) -%}\n {{ return(adapter.dispatch('get_filtered_columns_in_relation', 'dbt_utils')(from, except)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_filtered_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7538407, "supported_languages": null}, "macro.dbt_utils.default__get_filtered_columns_in_relation": {"name": "default__get_filtered_columns_in_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "unique_id": "macro.dbt_utils.default__get_filtered_columns_in_relation", "macro_sql": "{% macro default__get_filtered_columns_in_relation(from, except=[]) -%}\n {%- do dbt_utils._is_relation(from, 'get_filtered_columns_in_relation') -%}\n {%- do dbt_utils._is_ephemeral(from, 'get_filtered_columns_in_relation') -%}\n\n {# -- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n {%- if not execute -%}\n {{ return([]) }}\n {% endif %}\n\n {%- set include_cols = [] %}\n {%- set cols = adapter.get_columns_in_relation(from) -%}\n {%- set except = except | map(\"lower\") | list %}\n {%- for col in cols -%}\n {%- if col.column|lower not in except -%}\n {% do include_cols.append(col.column) %}\n {%- endif %}\n {%- endfor %}\n\n {{ return(include_cols) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7550526, "supported_languages": null}, "macro.dbt_utils.safe_divide": {"name": "safe_divide", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_divide.sql", "original_file_path": "macros/sql/safe_divide.sql", "unique_id": "macro.dbt_utils.safe_divide", "macro_sql": "{% macro safe_divide(numerator, denominator) -%}\n {{ return(adapter.dispatch('safe_divide', 'dbt_utils')(numerator, denominator)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_divide"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7555358, "supported_languages": null}, "macro.dbt_utils.default__safe_divide": {"name": "default__safe_divide", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_divide.sql", "original_file_path": "macros/sql/safe_divide.sql", "unique_id": "macro.dbt_utils.default__safe_divide", "macro_sql": "{% macro default__safe_divide(numerator, denominator) %}\n ( {{ numerator }} ) / nullif( ( {{ denominator }} ), 0)\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7557852, "supported_languages": null}, "macro.dbt_utils.pivot": {"name": "pivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "unique_id": "macro.dbt_utils.pivot", "macro_sql": "{% macro pivot(column,\n values,\n alias=True,\n agg='sum',\n cmp='=',\n prefix='',\n suffix='',\n then_value=1,\n else_value=0,\n quote_identifiers=True,\n distinct=False) %}\n {{ return(adapter.dispatch('pivot', 'dbt_utils')(column, values, alias, agg, cmp, prefix, suffix, then_value, else_value, quote_identifiers, distinct)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7571476, "supported_languages": null}, "macro.dbt_utils.default__pivot": {"name": "default__pivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "unique_id": "macro.dbt_utils.default__pivot", "macro_sql": "{% macro default__pivot(column,\n values,\n alias=True,\n agg='sum',\n cmp='=',\n prefix='',\n suffix='',\n then_value=1,\n else_value=0,\n quote_identifiers=True,\n distinct=False) %}\n {% for value in values %}\n {{ agg }}(\n {% if distinct %} distinct {% endif %}\n case\n when {{ column }} {{ cmp }} '{{ dbt.escape_single_quotes(value) }}'\n then {{ then_value }}\n else {{ else_value }}\n end\n )\n {% if alias %}\n {% if quote_identifiers %}\n as {{ adapter.quote(prefix ~ value ~ suffix) }}\n {% else %}\n as {{ dbt_utils.slugify(prefix ~ value ~ suffix) }}\n {% endif %}\n {% endif %}\n {% if not loop.last %},{% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.escape_single_quotes", "macro.dbt_utils.slugify"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.758737, "supported_languages": null}, "macro.dbt_utils.safe_subtract": {"name": "safe_subtract", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_subtract.sql", "original_file_path": "macros/sql/safe_subtract.sql", "unique_id": "macro.dbt_utils.safe_subtract", "macro_sql": "{%- macro safe_subtract(field_list) -%}\n {{ return(adapter.dispatch('safe_subtract', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_subtract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7593322, "supported_languages": null}, "macro.dbt_utils.default__safe_subtract": {"name": "default__safe_subtract", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_subtract.sql", "original_file_path": "macros/sql/safe_subtract.sql", "unique_id": "macro.dbt_utils.default__safe_subtract", "macro_sql": "\n\n{%- macro default__safe_subtract(field_list) -%}\n\n{%- if field_list is not iterable or field_list is string or field_list is mapping -%}\n\n{%- set error_message = '\nWarning: the `safe_subtract` macro takes a single list argument instead of \\\nstring arguments. The {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.raise_compiler_error(error_message) -%}\n\n{%- endif -%}\n\n{% set fields = [] %}\n\n{%- for field in field_list -%}\n\n {% do fields.append(\"coalesce(\" ~ field ~ \", 0)\") %}\n\n{%- endfor -%}\n\n{{ fields|join(' -\\n ') }}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7602608, "supported_languages": null}, "macro.dbt_utils.get_relations_by_pattern": {"name": "get_relations_by_pattern", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "unique_id": "macro.dbt_utils.get_relations_by_pattern", "macro_sql": "{% macro get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_relations_by_pattern', 'dbt_utils')(schema_pattern, table_pattern, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7611158, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_pattern": {"name": "default__get_relations_by_pattern", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "unique_id": "macro.dbt_utils.default__get_relations_by_pattern", "macro_sql": "{% macro default__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n {{ dbt_utils.get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude, database) }}\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=database,\n schema=row.table_schema,\n identifier=row.table_name,\n type=row.table_type\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7625206, "supported_languages": null}, "macro.dbt_utils.get_tables_by_pattern_sql": {"name": "get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.get_tables_by_pattern_sql", "macro_sql": "{% macro get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_tables_by_pattern_sql', 'dbt_utils')\n (schema_pattern, table_pattern, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7639458, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_pattern_sql": {"name": "default__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.default__get_tables_by_pattern_sql", "macro_sql": "{% macro default__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n select distinct\n table_schema as {{ adapter.quote('table_schema') }},\n table_name as {{ adapter.quote('table_name') }},\n {{ dbt_utils.get_table_types_sql() }}\n from {{ database }}.information_schema.tables\n where table_schema ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7645602, "supported_languages": null}, "macro.dbt_utils.redshift__get_tables_by_pattern_sql": {"name": "redshift__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.redshift__get_tables_by_pattern_sql", "macro_sql": "{% macro redshift__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {% set sql %}\n select distinct\n table_schema as {{ adapter.quote('table_schema') }},\n table_name as {{ adapter.quote('table_name') }},\n {{ dbt_utils.get_table_types_sql() }}\n from \"{{ database }}\".\"information_schema\".\"tables\"\n where table_schema ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n union all\n select distinct\n schemaname as {{ adapter.quote('table_schema') }},\n tablename as {{ adapter.quote('table_name') }},\n 'external' as {{ adapter.quote('table_type') }}\n from svv_external_tables\n where redshift_database_name = '{{ database }}'\n and schemaname ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n {% endset %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.765686, "supported_languages": null}, "macro.dbt_utils.bigquery__get_tables_by_pattern_sql": {"name": "bigquery__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.bigquery__get_tables_by_pattern_sql", "macro_sql": "{% macro bigquery__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {% if '%' in schema_pattern %}\n {% set schemata=dbt_utils._bigquery__get_matching_schemata(schema_pattern, database) %}\n {% else %}\n {% set schemata=[schema_pattern] %}\n {% endif %}\n\n {% set sql %}\n {% for schema in schemata %}\n select distinct\n table_schema,\n table_name,\n {{ dbt_utils.get_table_types_sql() }}\n\n from {{ adapter.quote(database) }}.{{ schema }}.INFORMATION_SCHEMA.TABLES\n where lower(table_name) like lower ('{{ table_pattern }}')\n and lower(table_name) not like lower ('{{ exclude }}')\n\n {% if not loop.last %} union all {% endif %}\n\n {% endfor %}\n {% endset %}\n\n {{ return(sql) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._bigquery__get_matching_schemata", "macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.766878, "supported_languages": null}, "macro.dbt_utils._bigquery__get_matching_schemata": {"name": "_bigquery__get_matching_schemata", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils._bigquery__get_matching_schemata", "macro_sql": "{% macro _bigquery__get_matching_schemata(schema_pattern, database) %}\n {% if execute %}\n\n {% set sql %}\n select schema_name from {{ adapter.quote(database) }}.INFORMATION_SCHEMA.SCHEMATA\n where lower(schema_name) like lower('{{ schema_pattern }}')\n {% endset %}\n\n {% set results=run_query(sql) %}\n\n {% set schemata=results.columns['schema_name'].values() %}\n\n {{ return(schemata) }}\n\n {% else %}\n\n {{ return([]) }}\n\n {% endif %}\n\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7677095, "supported_languages": null}, "macro.dbt_utils.get_column_values": {"name": "get_column_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "unique_id": "macro.dbt_utils.get_column_values", "macro_sql": "{% macro get_column_values(table, column, order_by='count(*) desc', max_records=none, default=none, where=none) -%}\n {{ return(adapter.dispatch('get_column_values', 'dbt_utils')(table, column, order_by, max_records, default, where)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_column_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7689805, "supported_languages": null}, "macro.dbt_utils.default__get_column_values": {"name": "default__get_column_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "unique_id": "macro.dbt_utils.default__get_column_values", "macro_sql": "{% macro default__get_column_values(table, column, order_by='count(*) desc', max_records=none, default=none, where=none) -%}\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n {%- if not execute -%}\n {% set default = [] if not default %}\n {{ return(default) }}\n {% endif %}\n\n {%- do dbt_utils._is_ephemeral(table, 'get_column_values') -%}\n\n {# Not all relations are tables. Renaming for internal clarity without breaking functionality for anyone using named arguments #}\n {# TODO: Change the method signature in a future 0.x.0 release #}\n {%- set target_relation = table -%}\n\n {# adapter.load_relation is a convenience wrapper to avoid building a Relation when we already have one #}\n {% set relation_exists = (load_relation(target_relation)) is not none %}\n\n {%- call statement('get_column_values', fetch_result=true) %}\n\n {%- if not relation_exists and default is none -%}\n\n {{ exceptions.raise_compiler_error(\"In get_column_values(): relation \" ~ target_relation ~ \" does not exist and no default value was provided.\") }}\n\n {%- elif not relation_exists and default is not none -%}\n\n {{ log(\"Relation \" ~ target_relation ~ \" does not exist. Returning the default value: \" ~ default) }}\n\n {{ return(default) }}\n\n {%- else -%}\n\n\n select\n {{ column }} as value\n\n from {{ target_relation }}\n\n {% if where is not none %}\n where {{ where }}\n {% endif %}\n\n group by {{ column }}\n order by {{ order_by }}\n\n {% if max_records is not none %}\n limit {{ max_records }}\n {% endif %}\n\n {% endif %}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_column_values') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values) }}\n {%- else -%}\n {{ return(default) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_ephemeral", "macro.dbt.load_relation", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7715993, "supported_languages": null}, "macro.dbt_utils.test_cardinality_equality": {"name": "test_cardinality_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "unique_id": "macro.dbt_utils.test_cardinality_equality", "macro_sql": "{% test cardinality_equality(model, column_name, to, field) %}\n {{ return(adapter.dispatch('test_cardinality_equality', 'dbt_utils')(model, column_name, to, field)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_cardinality_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.772316, "supported_languages": null}, "macro.dbt_utils.default__test_cardinality_equality": {"name": "default__test_cardinality_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "unique_id": "macro.dbt_utils.default__test_cardinality_equality", "macro_sql": "{% macro default__test_cardinality_equality(model, column_name, to, field) %}\n\n{# T-SQL does not let you use numbers as aliases for columns #}\n{# Thus, no \"GROUP BY 1\" #}\n\nwith table_a as (\nselect\n {{ column_name }},\n count(*) as num_rows\nfrom {{ model }}\ngroup by {{ column_name }}\n),\n\ntable_b as (\nselect\n {{ field }},\n count(*) as num_rows\nfrom {{ to }}\ngroup by {{ field }}\n),\n\nexcept_a as (\n select *\n from table_a\n {{ dbt.except() }}\n select *\n from table_b\n),\n\nexcept_b as (\n select *\n from table_b\n {{ dbt.except() }}\n select *\n from table_a\n),\n\nunioned as (\n select *\n from except_a\n union all\n select *\n from except_b\n)\n\nselect *\nfrom unioned\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.772907, "supported_languages": null}, "macro.dbt_utils.test_not_empty_string": {"name": "test_not_empty_string", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "unique_id": "macro.dbt_utils.test_not_empty_string", "macro_sql": "{% test not_empty_string(model, column_name, trim_whitespace=true) %}\n\n {{ return(adapter.dispatch('test_not_empty_string', 'dbt_utils')(model, column_name, trim_whitespace)) }}\n\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_empty_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7735415, "supported_languages": null}, "macro.dbt_utils.default__test_not_empty_string": {"name": "default__test_not_empty_string", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "unique_id": "macro.dbt_utils.default__test_not_empty_string", "macro_sql": "{% macro default__test_not_empty_string(model, column_name, trim_whitespace=true) %}\n\n with\n \n all_values as (\n\n select \n\n\n {% if trim_whitespace == true -%}\n\n trim({{ column_name }}) as {{ column_name }}\n\n {%- else -%}\n\n {{ column_name }}\n\n {%- endif %}\n \n from {{ model }}\n\n ),\n\n errors as (\n\n select * from all_values\n where {{ column_name }} = ''\n\n )\n\n select * from errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7740607, "supported_languages": null}, "macro.dbt_utils.test_recency": {"name": "test_recency", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "unique_id": "macro.dbt_utils.test_recency", "macro_sql": "{% test recency(model, field, datepart, interval, ignore_time_component=False, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_recency', 'dbt_utils')(model, field, datepart, interval, ignore_time_component, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_recency"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7749634, "supported_languages": null}, "macro.dbt_utils.default__test_recency": {"name": "default__test_recency", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "unique_id": "macro.dbt_utils.default__test_recency", "macro_sql": "{% macro default__test_recency(model, field, datepart, interval, ignore_time_component, group_by_columns) %}\n\n{% set threshold = 'cast(' ~ dbt.dateadd(datepart, interval * -1, dbt.current_timestamp()) ~ ' as ' ~ ('date' if ignore_time_component else dbt.type_timestamp()) ~ ')' %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n\nwith recency as (\n\n select \n\n {{ select_gb_cols }}\n {% if ignore_time_component %}\n cast(max({{ field }}) as date) as most_recent\n {%- else %}\n max({{ field }}) as most_recent\n {%- endif %}\n\n from {{ model }}\n\n {{ groupby_gb_cols }}\n\n)\n\nselect\n\n {{ select_gb_cols }}\n most_recent,\n {{ threshold }} as threshold\n\nfrom recency\nwhere most_recent < {{ threshold }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.current_timestamp", "macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7763653, "supported_languages": null}, "macro.dbt_utils.test_mutually_exclusive_ranges": {"name": "test_mutually_exclusive_ranges", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "unique_id": "macro.dbt_utils.test_mutually_exclusive_ranges", "macro_sql": "{% test mutually_exclusive_ranges(model, lower_bound_column, upper_bound_column, partition_by=None, gaps='allowed', zero_length_range_allowed=False) %}\n {{ return(adapter.dispatch('test_mutually_exclusive_ranges', 'dbt_utils')(model, lower_bound_column, upper_bound_column, partition_by, gaps, zero_length_range_allowed)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_mutually_exclusive_ranges"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.777802, "supported_languages": null}, "macro.dbt_utils.default__test_mutually_exclusive_ranges": {"name": "default__test_mutually_exclusive_ranges", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "unique_id": "macro.dbt_utils.default__test_mutually_exclusive_ranges", "macro_sql": "{% macro default__test_mutually_exclusive_ranges(model, lower_bound_column, upper_bound_column, partition_by=None, gaps='allowed', zero_length_range_allowed=False) %}\n{% if gaps == 'not_allowed' %}\n {% set allow_gaps_operator='=' %}\n {% set allow_gaps_operator_in_words='equal_to' %}\n{% elif gaps == 'allowed' %}\n {% set allow_gaps_operator='<=' %}\n {% set allow_gaps_operator_in_words='less_than_or_equal_to' %}\n{% elif gaps == 'required' %}\n {% set allow_gaps_operator='<' %}\n {% set allow_gaps_operator_in_words='less_than' %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`gaps` argument for mutually_exclusive_ranges test must be one of ['not_allowed', 'allowed', 'required'] Got: '\" ~ gaps ~\"'.'\"\n ) }}\n{% endif %}\n{% if not zero_length_range_allowed %}\n {% set allow_zero_length_operator='<' %}\n {% set allow_zero_length_operator_in_words='less_than' %}\n{% elif zero_length_range_allowed %}\n {% set allow_zero_length_operator='<=' %}\n {% set allow_zero_length_operator_in_words='less_than_or_equal_to' %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`zero_length_range_allowed` argument for mutually_exclusive_ranges test must be one of [true, false] Got: '\" ~ zero_length_range_allowed ~\"'.'\"\n ) }}\n{% endif %}\n\n{% set partition_clause=\"partition by \" ~ partition_by if partition_by else '' %}\n\nwith window_functions as (\n\n select\n {% if partition_by %}\n {{ partition_by }} as partition_by_col,\n {% endif %}\n {{ lower_bound_column }} as lower_bound,\n {{ upper_bound_column }} as upper_bound,\n\n lead({{ lower_bound_column }}) over (\n {{ partition_clause }}\n order by {{ lower_bound_column }}, {{ upper_bound_column }}\n ) as next_lower_bound,\n\n row_number() over (\n {{ partition_clause }}\n order by {{ lower_bound_column }} desc, {{ upper_bound_column }} desc\n ) = 1 as is_last_record\n\n from {{ model }}\n\n),\n\ncalc as (\n -- We want to return records where one of our assumptions fails, so we'll use\n -- the `not` function with `and` statements so we can write our assumptions more cleanly\n select\n *,\n\n -- For each record: lower_bound should be < upper_bound.\n -- Coalesce it to return an error on the null case (implicit assumption\n -- these columns are not_null)\n coalesce(\n lower_bound {{ allow_zero_length_operator }} upper_bound,\n false\n ) as lower_bound_{{ allow_zero_length_operator_in_words }}_upper_bound,\n\n -- For each record: upper_bound {{ allow_gaps_operator }} the next lower_bound.\n -- Coalesce it to handle null cases for the last record.\n coalesce(\n upper_bound {{ allow_gaps_operator }} next_lower_bound,\n is_last_record,\n false\n ) as upper_bound_{{ allow_gaps_operator_in_words }}_next_lower_bound\n\n from window_functions\n\n),\n\nvalidation_errors as (\n\n select\n *\n from calc\n\n where not(\n -- THE FOLLOWING SHOULD BE TRUE --\n lower_bound_{{ allow_zero_length_operator_in_words }}_upper_bound\n and upper_bound_{{ allow_gaps_operator_in_words }}_next_lower_bound\n )\n)\n\nselect * from validation_errors\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7803292, "supported_languages": null}, "macro.dbt_utils.test_not_constant": {"name": "test_not_constant", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "unique_id": "macro.dbt_utils.test_not_constant", "macro_sql": "{% test not_constant(model, column_name, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_not_constant', 'dbt_utils')(model, column_name, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_constant"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7810683, "supported_languages": null}, "macro.dbt_utils.default__test_not_constant": {"name": "default__test_not_constant", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "unique_id": "macro.dbt_utils.default__test_not_constant", "macro_sql": "{% macro default__test_not_constant(model, column_name, group_by_columns) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n\nselect\n {# In TSQL, subquery aggregate columns need aliases #}\n {# thus: a filler col name, 'filler_column' #}\n {{select_gb_cols}}\n count(distinct {{ column_name }}) as filler_column\n\nfrom {{ model }}\n\n {{groupby_gb_cols}}\n\nhaving count(distinct {{ column_name }}) = 1\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7818441, "supported_languages": null}, "macro.dbt_utils.test_relationships_where": {"name": "test_relationships_where", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "unique_id": "macro.dbt_utils.test_relationships_where", "macro_sql": "{% test relationships_where(model, column_name, to, field, from_condition=\"1=1\", to_condition=\"1=1\") %}\n {{ return(adapter.dispatch('test_relationships_where', 'dbt_utils')(model, column_name, to, field, from_condition, to_condition)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_relationships_where"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7826774, "supported_languages": null}, "macro.dbt_utils.default__test_relationships_where": {"name": "default__test_relationships_where", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "unique_id": "macro.dbt_utils.default__test_relationships_where", "macro_sql": "{% macro default__test_relationships_where(model, column_name, to, field, from_condition=\"1=1\", to_condition=\"1=1\") %}\n\n{# T-SQL has no boolean data type so we use 1=1 which returns TRUE #}\n{# ref https://stackoverflow.com/a/7170753/3842610 #}\n\nwith left_table as (\n\n select\n {{column_name}} as id\n\n from {{model}}\n\n where {{column_name}} is not null\n and {{from_condition}}\n\n),\n\nright_table as (\n\n select\n {{field}} as id\n\n from {{to}}\n\n where {{field}} is not null\n and {{to_condition}}\n\n),\n\nexceptions as (\n\n select\n left_table.id,\n right_table.id as right_id\n\n from left_table\n\n left join right_table\n on left_table.id = right_table.id\n\n where right_table.id is null\n\n)\n\nselect * from exceptions\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7832546, "supported_languages": null}, "macro.dbt_utils.test_accepted_range": {"name": "test_accepted_range", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "unique_id": "macro.dbt_utils.test_accepted_range", "macro_sql": "{% test accepted_range(model, column_name, min_value=none, max_value=none, inclusive=true) %}\n {{ return(adapter.dispatch('test_accepted_range', 'dbt_utils')(model, column_name, min_value, max_value, inclusive)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_accepted_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7840598, "supported_languages": null}, "macro.dbt_utils.default__test_accepted_range": {"name": "default__test_accepted_range", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "unique_id": "macro.dbt_utils.default__test_accepted_range", "macro_sql": "{% macro default__test_accepted_range(model, column_name, min_value=none, max_value=none, inclusive=true) %}\n\nwith meet_condition as(\n select *\n from {{ model }}\n),\n\nvalidation_errors as (\n select *\n from meet_condition\n where\n -- never true, defaults to an empty result set. Exists to ensure any combo of the `or` clauses below succeeds\n 1 = 2\n\n {%- if min_value is not none %}\n -- records with a value >= min_value are permitted. The `not` flips this to find records that don't meet the rule.\n or not {{ column_name }} > {{- \"=\" if inclusive }} {{ min_value }}\n {%- endif %}\n\n {%- if max_value is not none %}\n -- records with a value <= max_value are permitted. The `not` flips this to find records that don't meet the rule.\n or not {{ column_name }} < {{- \"=\" if inclusive }} {{ max_value }}\n {%- endif %}\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7853532, "supported_languages": null}, "macro.dbt_utils.test_equality": {"name": "test_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "unique_id": "macro.dbt_utils.test_equality", "macro_sql": "{% test equality(model, compare_model, compare_columns=None, exclude_columns=None, precision = None) %}\n {{ return(adapter.dispatch('test_equality', 'dbt_utils')(model, compare_model, compare_columns, exclude_columns, precision)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7873712, "supported_languages": null}, "macro.dbt_utils.default__test_equality": {"name": "default__test_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "unique_id": "macro.dbt_utils.default__test_equality", "macro_sql": "{% macro default__test_equality(model, compare_model, compare_columns=None, exclude_columns=None, precision = None) %}\n\n{%- if compare_columns and exclude_columns -%}\n {{ exceptions.raise_compiler_error(\"Both a compare and an ignore list were provided to the `equality` macro. Only one is allowed\") }}\n{%- endif -%}\n\n{% set set_diff %}\n count(*) + coalesce(abs(\n sum(case when which_diff = 'a_minus_b' then 1 else 0 end) -\n sum(case when which_diff = 'b_minus_a' then 1 else 0 end)\n ), 0)\n{% endset %}\n\n{#-- Needs to be set at parse time, before we return '' below --#}\n{{ config(fail_calc = set_diff) }}\n\n{#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n{%- if not execute -%}\n {{ return('') }}\n{% endif %}\n\n\n\n-- setup\n{%- do dbt_utils._is_relation(model, 'test_equality') -%}\n\n{# Ensure there are no extra columns in the compare_model vs model #}\n{%- if not compare_columns -%}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- do dbt_utils._is_ephemeral(compare_model, 'test_equality') -%}\n\n {%- set model_columns = adapter.get_columns_in_relation(model) -%}\n {%- set compare_model_columns = adapter.get_columns_in_relation(compare_model) -%}\n\n\n {%- if exclude_columns -%}\n {#-- Lower case ignore columns for easier comparison --#}\n {%- set exclude_columns = exclude_columns | map(\"lower\") | list %}\n\n {# Filter out the excluded columns #}\n {%- set include_columns = [] %}\n {%- set include_model_columns = [] %}\n {%- for column in model_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n {%- for column in compare_model_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_model_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n\n {%- set compare_columns_set = set(include_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- set compare_model_columns_set = set(include_model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- else -%}\n {%- set compare_columns_set = set(model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- set compare_model_columns_set = set(compare_model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- endif -%}\n\n {% if compare_columns_set != compare_model_columns_set %}\n {{ exceptions.raise_compiler_error(compare_model ~\" has less columns than \" ~ model ~ \", please ensure they have the same columns or use the `compare_columns` or `exclude_columns` arguments to subset them.\") }}\n {% endif %}\n\n\n{% endif %}\n\n{%- if not precision -%}\n {%- if not compare_columns -%}\n {# \n You cannot get the columns in an ephemeral model (due to not existing in the information schema),\n so if the user does not provide an explicit list of columns we must error in the case it is ephemeral\n #}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- set compare_columns = adapter.get_columns_in_relation(model)-%}\n\n {%- if exclude_columns -%}\n {#-- Lower case ignore columns for easier comparison --#}\n {%- set exclude_columns = exclude_columns | map(\"lower\") | list %}\n\n {# Filter out the excluded columns #}\n {%- set include_columns = [] %}\n {%- for column in compare_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n\n {%- set compare_columns = include_columns | map(attribute='quoted') %}\n {%- else -%} {# Compare columns provided #}\n {%- set compare_columns = compare_columns | map(attribute='quoted') %}\n {%- endif -%}\n {%- endif -%}\n\n {% set compare_cols_csv = compare_columns | join(', ') %}\n\n{% else %} {# Precision required #}\n {#-\n If rounding is required, we need to get the types, so it cannot be ephemeral even if they provide column names\n -#}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- set columns = adapter.get_columns_in_relation(model) -%}\n\n {% set columns_list = [] %}\n {%- for col in columns -%}\n {%- if (\n (col.name|lower in compare_columns|map('lower') or not compare_columns) and\n (col.name|lower not in exclude_columns|map('lower') or not exclude_columns)\n ) -%}\n {# Databricks double type is not picked up by any number type checks in dbt #}\n {%- if col.is_float() or col.is_numeric() or col.data_type == 'double' -%}\n {# Cast is required due to postgres not having round for a double precision number #}\n {%- do columns_list.append('round(cast(' ~ col.quoted ~ ' as ' ~ dbt.type_numeric() ~ '),' ~ precision ~ ') as ' ~ col.quoted) -%}\n {%- else -%} {# Non-numeric type #}\n {%- do columns_list.append(col.quoted) -%}\n {%- endif -%}\n {% endif %}\n {%- endfor -%}\n\n {% set compare_cols_csv = columns_list | join(', ') %}\n\n{% endif %}\n\nwith a as (\n\n select * from {{ model }}\n\n),\n\nb as (\n\n select * from {{ compare_model }}\n\n),\n\na_minus_b as (\n\n select {{compare_cols_csv}} from a\n {{ dbt.except() }}\n select {{compare_cols_csv}} from b\n\n),\n\nb_minus_a as (\n\n select {{compare_cols_csv}} from b\n {{ dbt.except() }}\n select {{compare_cols_csv}} from a\n\n),\n\nunioned as (\n\n select 'a_minus_b' as which_diff, a_minus_b.* from a_minus_b\n union all\n select 'b_minus_a' as which_diff, b_minus_a.* from b_minus_a\n\n)\n\nselect * from unioned\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.type_numeric", "macro.dbt.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.793914, "supported_languages": null}, "macro.dbt_utils.test_at_least_one": {"name": "test_at_least_one", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "unique_id": "macro.dbt_utils.test_at_least_one", "macro_sql": "{% test at_least_one(model, column_name, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_at_least_one', 'dbt_utils')(model, column_name, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_at_least_one"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7948713, "supported_languages": null}, "macro.dbt_utils.default__test_at_least_one": {"name": "default__test_at_least_one", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "unique_id": "macro.dbt_utils.default__test_at_least_one", "macro_sql": "{% macro default__test_at_least_one(model, column_name, group_by_columns) %}\n\n{% set pruned_cols = [column_name] %}\n\n{% if group_by_columns|length() > 0 %}\n\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n {% set pruned_cols = group_by_columns %}\n\n {% if column_name not in pruned_cols %}\n {% do pruned_cols.append(column_name) %}\n {% endif %}\n\n{% endif %}\n\n{% set select_pruned_cols = pruned_cols|join(' ,') %}\n\nselect *\nfrom (\n with pruned_rows as (\n select\n {{ select_pruned_cols }}\n from {{ model }}\n {% if group_by_columns|length() == 0 %}\n where {{ column_name }} is not null\n limit 1\n {% endif %}\n )\n select\n {# In TSQL, subquery aggregate columns need aliases #}\n {# thus: a filler col name, 'filler_column' #}\n {{select_gb_cols}}\n count({{ column_name }}) as filler_column\n\n from pruned_rows\n\n {{groupby_gb_cols}}\n\n having count({{ column_name }}) = 0\n\n) validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7963421, "supported_languages": null}, "macro.dbt_utils.test_not_null_proportion": {"name": "test_not_null_proportion", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "unique_id": "macro.dbt_utils.test_not_null_proportion", "macro_sql": "{% macro test_not_null_proportion(model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_not_null_proportion', 'dbt_utils')(model, group_by_columns, **kwargs)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_null_proportion"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.797163, "supported_languages": null}, "macro.dbt_utils.default__test_not_null_proportion": {"name": "default__test_not_null_proportion", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "unique_id": "macro.dbt_utils.default__test_not_null_proportion", "macro_sql": "{% macro default__test_not_null_proportion(model, group_by_columns) %}\n\n{% set column_name = kwargs.get('column_name', kwargs.get('arg')) %}\n{% set at_least = kwargs.get('at_least', kwargs.get('arg')) %}\n{% set at_most = kwargs.get('at_most', kwargs.get('arg', 1)) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\nwith validation as (\n select\n {{select_gb_cols}}\n sum(case when {{ column_name }} is null then 0 else 1 end) / cast(count(*) as {{ dbt.type_numeric() }}) as not_null_proportion\n from {{ model }}\n {{groupby_gb_cols}}\n),\nvalidation_errors as (\n select\n {{select_gb_cols}}\n not_null_proportion\n from validation\n where not_null_proportion < {{ at_least }} or not_null_proportion > {{ at_most }}\n)\nselect\n *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7986178, "supported_languages": null}, "macro.dbt_utils.test_sequential_values": {"name": "test_sequential_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "unique_id": "macro.dbt_utils.test_sequential_values", "macro_sql": "{% test sequential_values(model, column_name, interval=1, datepart=None, group_by_columns = []) %}\n\n {{ return(adapter.dispatch('test_sequential_values', 'dbt_utils')(model, column_name, interval, datepart, group_by_columns)) }}\n\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_sequential_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.7996004, "supported_languages": null}, "macro.dbt_utils.default__test_sequential_values": {"name": "default__test_sequential_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "unique_id": "macro.dbt_utils.default__test_sequential_values", "macro_sql": "{% macro default__test_sequential_values(model, column_name, interval=1, datepart=None, group_by_columns = []) %}\n\n{% set previous_column_name = \"previous_\" ~ dbt_utils.slugify(column_name) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(',') + ', ' %}\n {% set partition_gb_cols = 'partition by ' + group_by_columns|join(',') %}\n{% endif %}\n\nwith windowed as (\n\n select\n {{ select_gb_cols }}\n {{ column_name }},\n lag({{ column_name }}) over (\n {{partition_gb_cols}}\n order by {{ column_name }}\n ) as {{ previous_column_name }}\n from {{ model }}\n),\n\nvalidation_errors as (\n select\n *\n from windowed\n {% if datepart %}\n where not(cast({{ column_name }} as {{ dbt.type_timestamp() }})= cast({{ dbt.dateadd(datepart, interval, previous_column_name) }} as {{ dbt.type_timestamp() }}))\n {% else %}\n where not({{ column_name }} = {{ previous_column_name }} + {{ interval }})\n {% endif %}\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.slugify", "macro.dbt.type_timestamp", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8012743, "supported_languages": null}, "macro.dbt_utils.test_fewer_rows_than": {"name": "test_fewer_rows_than", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "unique_id": "macro.dbt_utils.test_fewer_rows_than", "macro_sql": "{% test fewer_rows_than(model, compare_model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_fewer_rows_than', 'dbt_utils')(model, compare_model, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_fewer_rows_than"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8023047, "supported_languages": null}, "macro.dbt_utils.default__test_fewer_rows_than": {"name": "default__test_fewer_rows_than", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "unique_id": "macro.dbt_utils.default__test_fewer_rows_than", "macro_sql": "{% macro default__test_fewer_rows_than(model, compare_model, group_by_columns) %}\n\n{{ config(fail_calc = 'sum(coalesce(row_count_delta, 0))') }}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set join_gb_cols %}\n {% for c in group_by_columns %}\n and a.{{c}} = b.{{c}}\n {% endfor %}\n {% endset %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n{#-- We must add a fake join key in case additional grouping variables are not provided --#}\n{#-- Redshift does not allow for dynamically created join conditions (e.g. full join on 1 = 1 --#}\n{#-- The same logic is used in equal_rowcount. In case of changes, maintain consistent logic --#}\n{% set group_by_columns = ['id_dbtutils_test_fewer_rows_than'] + group_by_columns %}\n{% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n\n\nwith a as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_fewer_rows_than,\n count(*) as count_our_model \n from {{ model }}\n {{ groupby_gb_cols }}\n\n),\nb as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_fewer_rows_than,\n count(*) as count_comparison_model \n from {{ compare_model }}\n {{ groupby_gb_cols }}\n\n),\ncounts as (\n\n select\n\n {% for c in group_by_columns -%}\n a.{{c}} as {{c}}_a,\n b.{{c}} as {{c}}_b,\n {% endfor %}\n\n count_our_model,\n count_comparison_model\n from a\n full join b on \n a.id_dbtutils_test_fewer_rows_than = b.id_dbtutils_test_fewer_rows_than\n {{ join_gb_cols }}\n\n),\nfinal as (\n\n select *,\n case\n -- fail the test if we have more rows than the reference model and return the row count delta\n when count_our_model > count_comparison_model then (count_our_model - count_comparison_model)\n -- fail the test if they are the same number\n when count_our_model = count_comparison_model then 1\n -- pass the test if the delta is positive (i.e. return the number 0)\n else 0\n end as row_count_delta\n from counts\n\n)\n\nselect * from final\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8040636, "supported_languages": null}, "macro.dbt_utils.test_equal_rowcount": {"name": "test_equal_rowcount", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "unique_id": "macro.dbt_utils.test_equal_rowcount", "macro_sql": "{% test equal_rowcount(model, compare_model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_equal_rowcount', 'dbt_utils')(model, compare_model, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_equal_rowcount"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.805152, "supported_languages": null}, "macro.dbt_utils.default__test_equal_rowcount": {"name": "default__test_equal_rowcount", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "unique_id": "macro.dbt_utils.default__test_equal_rowcount", "macro_sql": "{% macro default__test_equal_rowcount(model, compare_model, group_by_columns) %}\n\n{#-- Needs to be set at parse time, before we return '' below --#}\n{{ config(fail_calc = 'sum(coalesce(diff_count, 0))') }}\n\n{#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n{%- if not execute -%}\n {{ return('') }}\n{% endif %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(', ') + ', ' %}\n {% set join_gb_cols %}\n {% for c in group_by_columns %}\n and a.{{c}} = b.{{c}}\n {% endfor %}\n {% endset %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n{#-- We must add a fake join key in case additional grouping variables are not provided --#}\n{#-- Redshift does not allow for dynamically created join conditions (e.g. full join on 1 = 1 --#}\n{#-- The same logic is used in fewer_rows_than. In case of changes, maintain consistent logic --#}\n{% set group_by_columns = ['id_dbtutils_test_equal_rowcount'] + group_by_columns %}\n{% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n\nwith a as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_equal_rowcount,\n count(*) as count_a \n from {{ model }}\n {{groupby_gb_cols}}\n\n\n),\nb as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_equal_rowcount,\n count(*) as count_b \n from {{ compare_model }}\n {{groupby_gb_cols}}\n\n),\nfinal as (\n\n select\n \n {% for c in group_by_columns -%}\n a.{{c}} as {{c}}_a,\n b.{{c}} as {{c}}_b,\n {% endfor %}\n\n count_a,\n count_b,\n abs(count_a - count_b) as diff_count\n\n from a\n full join b\n on\n a.id_dbtutils_test_equal_rowcount = b.id_dbtutils_test_equal_rowcount\n {{join_gb_cols}}\n\n\n)\n\nselect * from final\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8069818, "supported_languages": null}, "macro.dbt_utils.test_expression_is_true": {"name": "test_expression_is_true", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "unique_id": "macro.dbt_utils.test_expression_is_true", "macro_sql": "{% test expression_is_true(model, expression, column_name=None) %}\n {{ return(adapter.dispatch('test_expression_is_true', 'dbt_utils')(model, expression, column_name)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_expression_is_true"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8076606, "supported_languages": null}, "macro.dbt_utils.default__test_expression_is_true": {"name": "default__test_expression_is_true", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "unique_id": "macro.dbt_utils.default__test_expression_is_true", "macro_sql": "{% macro default__test_expression_is_true(model, expression, column_name) %}\n\n{% set column_list = '*' if should_store_failures() else \"1\" %}\n\nselect\n {{ column_list }}\nfrom {{ model }}\n{% if column_name is none %}\nwhere not({{ expression }})\n{%- else %}\nwhere not({{ column_name }} {{ expression }})\n{%- endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8082733, "supported_languages": null}, "macro.dbt_utils.test_not_accepted_values": {"name": "test_not_accepted_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "unique_id": "macro.dbt_utils.test_not_accepted_values", "macro_sql": "{% test not_accepted_values(model, column_name, values, quote=True) %}\n {{ return(adapter.dispatch('test_not_accepted_values', 'dbt_utils')(model, column_name, values, quote)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8090277, "supported_languages": null}, "macro.dbt_utils.default__test_not_accepted_values": {"name": "default__test_not_accepted_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "unique_id": "macro.dbt_utils.default__test_not_accepted_values", "macro_sql": "{% macro default__test_not_accepted_values(model, column_name, values, quote=True) %}\nwith all_values as (\n\n select distinct\n {{ column_name }} as value_field\n\n from {{ model }}\n\n),\n\nvalidation_errors as (\n\n select\n value_field\n\n from all_values\n where value_field in (\n {% for value in values -%}\n {% if quote -%}\n '{{ value }}'\n {%- else -%}\n {{ value }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {%- endfor %}\n )\n\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8097048, "supported_languages": null}, "macro.dbt_utils.test_unique_combination_of_columns": {"name": "test_unique_combination_of_columns", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "unique_id": "macro.dbt_utils.test_unique_combination_of_columns", "macro_sql": "{% test unique_combination_of_columns(model, combination_of_columns, quote_columns=false) %}\n {{ return(adapter.dispatch('test_unique_combination_of_columns', 'dbt_utils')(model, combination_of_columns, quote_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_unique_combination_of_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8104393, "supported_languages": null}, "macro.dbt_utils.default__test_unique_combination_of_columns": {"name": "default__test_unique_combination_of_columns", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "unique_id": "macro.dbt_utils.default__test_unique_combination_of_columns", "macro_sql": "{% macro default__test_unique_combination_of_columns(model, combination_of_columns, quote_columns=false) %}\n\n{% if not quote_columns %}\n {%- set column_list=combination_of_columns %}\n{% elif quote_columns %}\n {%- set column_list=[] %}\n {% for column in combination_of_columns -%}\n {% do column_list.append( adapter.quote(column) ) %}\n {%- endfor %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`quote_columns` argument for unique_combination_of_columns test must be one of [True, False] Got: '\" ~ quote ~\"'.'\"\n ) }}\n{% endif %}\n\n{%- set columns_csv=column_list | join(', ') %}\n\n\nwith validation_errors as (\n\n select\n {{ columns_csv }}\n from {{ model }}\n group by {{ columns_csv }}\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8117054, "supported_languages": null}, "macro.dbt_utils.get_url_host": {"name": "get_url_host", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "unique_id": "macro.dbt_utils.get_url_host", "macro_sql": "{% macro get_url_host(field) -%}\n {{ return(adapter.dispatch('get_url_host', 'dbt_utils')(field)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_host"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8122575, "supported_languages": null}, "macro.dbt_utils.default__get_url_host": {"name": "default__get_url_host", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "unique_id": "macro.dbt_utils.default__get_url_host", "macro_sql": "{% macro default__get_url_host(field) -%}\n\n{%- set parsed =\n dbt.split_part(\n dbt.split_part(\n dbt.replace(\n dbt.replace(\n dbt.replace(field, \"'android-app://'\", \"''\"\n ), \"'http://'\", \"''\"\n ), \"'https://'\", \"''\"\n ), \"'/'\", 1\n ), \"'?'\", 1\n )\n\n-%}\n\n\n {{ dbt.safe_cast(\n parsed,\n dbt.type_string()\n )}}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.split_part", "macro.dbt.replace", "macro.dbt.safe_cast", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8130593, "supported_languages": null}, "macro.dbt_utils.get_url_parameter": {"name": "get_url_parameter", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "unique_id": "macro.dbt_utils.get_url_parameter", "macro_sql": "{% macro get_url_parameter(field, url_parameter) -%}\n {{ return(adapter.dispatch('get_url_parameter', 'dbt_utils')(field, url_parameter)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.813591, "supported_languages": null}, "macro.dbt_utils.default__get_url_parameter": {"name": "default__get_url_parameter", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "unique_id": "macro.dbt_utils.default__get_url_parameter", "macro_sql": "{% macro default__get_url_parameter(field, url_parameter) -%}\n\n{%- set formatted_url_parameter = \"'\" + url_parameter + \"='\" -%}\n\n{%- set split = dbt.split_part(dbt.split_part(field, formatted_url_parameter, 2), \"'&'\", 1) -%}\n\nnullif({{ split }},'')\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8142142, "supported_languages": null}, "macro.dbt_utils.get_url_path": {"name": "get_url_path", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "unique_id": "macro.dbt_utils.get_url_path", "macro_sql": "{% macro get_url_path(field) -%}\n {{ return(adapter.dispatch('get_url_path', 'dbt_utils')(field)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_path"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8148606, "supported_languages": null}, "macro.dbt_utils.default__get_url_path": {"name": "default__get_url_path", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "unique_id": "macro.dbt_utils.default__get_url_path", "macro_sql": "{% macro default__get_url_path(field) -%}\n\n {%- set stripped_url =\n dbt.replace(\n dbt.replace(field, \"'http://'\", \"''\"), \"'https://'\", \"''\")\n -%}\n\n {%- set first_slash_pos -%}\n coalesce(\n nullif({{ dbt.position(\"'/'\", stripped_url) }}, 0),\n {{ dbt.position(\"'?'\", stripped_url) }} - 1\n )\n {%- endset -%}\n\n {%- set parsed_path =\n dbt.split_part(\n dbt.right(\n stripped_url,\n dbt.length(stripped_url) ~ \"-\" ~ first_slash_pos\n ),\n \"'?'\", 1\n )\n -%}\n\n {{ dbt.safe_cast(\n parsed_path,\n dbt.type_string()\n )}}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.position", "macro.dbt.split_part", "macro.dbt.right", "macro.dbt.length", "macro.dbt.safe_cast", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8159604, "supported_languages": null}, "macro.dbt_utils.slugify": {"name": "slugify", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/slugify.sql", "original_file_path": "macros/jinja_helpers/slugify.sql", "unique_id": "macro.dbt_utils.slugify", "macro_sql": "{% macro slugify(string) %}\n\n{% if not string %}\n{{ return('') }}\n{% endif %}\n\n{#- Lower case the string -#}\n{% set string = string | lower %}\n{#- Replace spaces and dashes with underscores -#}\n{% set string = modules.re.sub('[ -]+', '_', string) %}\n{#- Only take letters, numbers, and underscores -#}\n{% set string = modules.re.sub('[^a-z0-9_]+', '', string) %}\n{#- Prepends \"_\" if string begins with a number -#}\n{% set string = modules.re.sub('^[0-9]', '_' + string[0], string) %}\n\n{{ return(string) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8172362, "supported_languages": null}, "macro.dbt_utils.pretty_time": {"name": "pretty_time", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "unique_id": "macro.dbt_utils.pretty_time", "macro_sql": "{% macro pretty_time(format='%H:%M:%S') %}\n {{ return(adapter.dispatch('pretty_time', 'dbt_utils')(format)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8177462, "supported_languages": null}, "macro.dbt_utils.default__pretty_time": {"name": "default__pretty_time", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "unique_id": "macro.dbt_utils.default__pretty_time", "macro_sql": "{% macro default__pretty_time(format='%H:%M:%S') %}\n {{ return(modules.datetime.datetime.now().strftime(format)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8180807, "supported_languages": null}, "macro.dbt_utils.pretty_log_format": {"name": "pretty_log_format", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "unique_id": "macro.dbt_utils.pretty_log_format", "macro_sql": "{% macro pretty_log_format(message) %}\n {{ return(adapter.dispatch('pretty_log_format', 'dbt_utils')(message)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.818561, "supported_languages": null}, "macro.dbt_utils.default__pretty_log_format": {"name": "default__pretty_log_format", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "unique_id": "macro.dbt_utils.default__pretty_log_format", "macro_sql": "{% macro default__pretty_log_format(message) %}\n {{ return( dbt_utils.pretty_time() ~ ' + ' ~ message) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.818896, "supported_languages": null}, "macro.dbt_utils.log_info": {"name": "log_info", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "unique_id": "macro.dbt_utils.log_info", "macro_sql": "{% macro log_info(message) %}\n {{ return(adapter.dispatch('log_info', 'dbt_utils')(message)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__log_info"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8193269, "supported_languages": null}, "macro.dbt_utils.default__log_info": {"name": "default__log_info", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "unique_id": "macro.dbt_utils.default__log_info", "macro_sql": "{% macro default__log_info(message) %}\n {{ log(dbt_utils.pretty_log_format(message), info=True) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8196146, "supported_languages": null}, "macro.dbt_utils._is_relation": {"name": "_is_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/_is_relation.sql", "original_file_path": "macros/jinja_helpers/_is_relation.sql", "unique_id": "macro.dbt_utils._is_relation", "macro_sql": "{% macro _is_relation(obj, macro) %}\n {%- if not (obj is mapping and obj.get('metadata', {}).get('type', '').endswith('Relation')) -%}\n {%- do exceptions.raise_compiler_error(\"Macro \" ~ macro ~ \" expected a Relation but received the value: \" ~ obj) -%}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.820403, "supported_languages": null}, "macro.dbt_utils._is_ephemeral": {"name": "_is_ephemeral", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/_is_ephemeral.sql", "original_file_path": "macros/jinja_helpers/_is_ephemeral.sql", "unique_id": "macro.dbt_utils._is_ephemeral", "macro_sql": "{% macro _is_ephemeral(obj, macro) %}\n {%- if obj.is_cte -%}\n {% set ephemeral_prefix = api.Relation.add_ephemeral_prefix('') %}\n {% if obj.name.startswith(ephemeral_prefix) %}\n {% set model_name = obj.name[(ephemeral_prefix|length):] %}\n {% else %}\n {% set model_name = obj.name %}\n {%- endif -%}\n {% set error_message %}\nThe `{{ macro }}` macro cannot be used with ephemeral models, as it relies on the information schema.\n\n`{{ model_name }}` is an ephemeral model. Consider making it a view or table instead.\n {% endset %}\n {%- do exceptions.raise_compiler_error(error_message) -%}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1781130898.8219466, "supported_languages": null}}, "docs": {"doc.dbt.__overview__": {"name": "__overview__", "resource_type": "doc", "package_name": "dbt", "path": "overview.md", "original_file_path": "docs/overview.md", "unique_id": "doc.dbt.__overview__", "block_contents": "### Welcome!\n\nWelcome to the auto-generated documentation for your dbt project!\n\n### Navigation\n\nYou can use the `Project` and `Database` navigation tabs on the left side of the window to explore the models\nin your project.\n\n#### Project Tab\nThe `Project` tab mirrors the directory structure of your dbt project. In this tab, you can see all of the\nmodels defined in your dbt project, as well as models imported from dbt packages.\n\n#### Database Tab\nThe `Database` tab also exposes your models, but in a format that looks more like a database explorer. This view\nshows relations (tables and views) grouped into database schemas. Note that ephemeral models are _not_ shown\nin this interface, as they do not exist in the database.\n\n### Graph Exploration\nYou can click the blue icon on the bottom-right corner of the page to view the lineage graph of your models.\n\nOn model pages, you'll see the immediate parents and children of the model you're exploring. By clicking the `Expand`\nbutton at the top-right of this lineage pane, you'll be able to see all of the models that are used to build,\nor are built from, the model you're exploring.\n\nOnce expanded, you'll be able to use the `--select` and `--exclude` model selection syntax to filter the\nmodels in the graph. For more information on model selection, check out the [dbt docs](https://docs.getdbt.com/docs/model-selection-syntax).\n\nNote that you can also right-click on models to interactively filter and explore the graph.\n\n---\n\n### More information\n\n- [What is dbt](https://docs.getdbt.com/docs/introduction)?\n- Read the [dbt viewpoint](https://docs.getdbt.com/docs/viewpoint)\n- [Installation](https://docs.getdbt.com/docs/installation)\n- Join the [dbt Community](https://www.getdbt.com/community/) for questions and discussion"}, "doc.stripe._fivetran_synced": {"name": "_fivetran_synced", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe._fivetran_synced", "block_contents": "The timestamp that Fivetran last synced the record."}, "doc.stripe.source_relation": {"name": "source_relation", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.source_relation", "block_contents": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}, "doc.stripe.created": {"name": "created", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.created", "block_contents": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided."}, "doc.stripe.created_at": {"name": "created_at", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.created_at", "block_contents": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided."}, "doc.stripe.created_utc": {"name": "created_utc", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.created_utc", "block_contents": "Time at which the record was created. Dates in UTC."}, "doc.stripe.city": {"name": "city", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.city", "block_contents": "City, district, suburb, town, or village."}, "doc.stripe.country": {"name": "country", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.country", "block_contents": "Two-letter country code (ISO 3166-1 alpha-2)."}, "doc.stripe.line_1": {"name": "line_1", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.line_1", "block_contents": "Address line 1 (e.g., street, PO Box, or company name)."}, "doc.stripe.line_2": {"name": "line_2", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.line_2", "block_contents": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "doc.stripe.postal_code": {"name": "postal_code", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.postal_code", "block_contents": "ZIP or postal code."}, "doc.stripe.state": {"name": "state", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.state", "block_contents": "State, county, province, or region."}, "doc.stripe.convert_values": {"name": "convert_values", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.convert_values", "block_contents": "Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information."}}, "exposures": {}, "metrics": {}, "groups": {}, "selectors": {}, "disabled": {"test.stripe_integration_tests.integrity_subscription_details": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "integrity_subscription_details", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "integrity/integrity_subscription_details.sql", "original_file_path": "tests/integrity/integrity_subscription_details.sql", "unique_id": "test.stripe_integration_tests.integrity_subscription_details", "fqn": ["stripe_integration_tests", "integrity", "integrity_subscription_details"], "alias": "integrity_subscription_details", "checksum": {"name": "sha256", "checksum": "94f24e3cb289e707ddbe74c68ea59f94973bad52ab7db96fc9fee0a75529d661"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.5919824, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith staging_model as (\n select \n count(*) as row_count,\n sum(days_until_due) as days_until_due,\n count(distinct customer_id) as distinct_customer_count\n from {{ ref('stg_stripe__subscription') }}\n),\n\nend_model as (\n select \n count(*) as row_count,\n sum(days_until_due) as days_until_due,\n count(distinct customer_id) as distinct_customer_count\n from {{ ref('stripe__subscription_details') }}\n)\n\nselect *\nfrom staging_model\njoin end_model\n on staging_model.row_count != end_model.row_count\n or staging_model.days_until_due != end_model.days_until_due\n or staging_model.distinct_customer_count != end_model.distinct_customer_count", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "stripe__subscription_details", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.integrity_line_item_enhanced": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "integrity_line_item_enhanced", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "integrity/integrity_line_item_enhanced.sql", "original_file_path": "tests/integrity/integrity_line_item_enhanced.sql", "unique_id": "test.stripe_integration_tests.integrity_line_item_enhanced", "fqn": ["stripe_integration_tests", "integrity", "integrity_line_item_enhanced"], "alias": "integrity_line_item_enhanced", "checksum": {"name": "sha256", "checksum": "f75bc932bd4dcbb6a947045f3126e47187422ed7059ccefe2e884c6b7d483414"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.6250098, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith staging_model as (\n select \n invoice_id as header_id,\n count(*) as stg_line_item_count,\n from {{ ref('stg_stripe__invoice_line_item') }}\n group by 1\n),\n\nend_model as (\n select \n header_id,\n count(*) as end_model_count\n from {{ ref('stripe__line_item_enhanced') }}\n group by 1\n),\n\nfinal as (\n select \n end_model.header_id as end_header_id,\n staging_model.header_id as staging_header_id,\n end_model.end_model_count as end_model_row_count,\n (staging_model.stg_line_item_count + 1) as stg_model_row_count\n from staging_model\n full outer join end_model\n on end_model.header_id = staging_model.header_id\n)\n\nselect *\nfrom final\nwhere end_model_row_count > stg_model_row_count -- At this moment we are most concerned about fanout. We will need to add significant logic to account for invoices that don't receive a header record. Therefore, to avoid this we can relying on the fact that no fanouts (end model has a greater count than staging) are occurring from this integrity test is sufficient.\n or end_header_id is null or staging_header_id is null", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice_line_item", "package": null, "version": null}, {"name": "stripe__line_item_enhanced", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.integrity_daily_overview": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "integrity_daily_overview", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "integrity/integrity_daily_overview.sql", "original_file_path": "tests/integrity/integrity_daily_overview.sql", "unique_id": "test.stripe_integration_tests.integrity_daily_overview", "fqn": ["stripe_integration_tests", "integrity", "integrity_daily_overview"], "alias": "integrity_daily_overview", "checksum": {"name": "sha256", "checksum": "0759d683254d279107541dff6ebbec06b56cea07094824af307f68fa069fb396"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.6314032, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test is to make sure there is no fanout between the spine and the daily_overview\nwith spine as (\n select count(*) as spine_count\n from {{ target.schema }}_stripe_dev.int_stripe__date_spine\n),\n\ndaily_overview as (\n select count(*) as daily_overview_count\n from {{ target.schema }}_stripe_dev.stripe__daily_overview\n)\n\n-- test will return values and fail if the row counts don't match\nselect *\nfrom spine\njoin daily_overview\n on spine.spine_count != daily_overview.daily_overview_count", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.integrity_balance_transactions": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "integrity_balance_transactions", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "integrity/integrity_balance_transactions.sql", "original_file_path": "tests/integrity/integrity_balance_transactions.sql", "unique_id": "test.stripe_integration_tests.integrity_balance_transactions", "fqn": ["stripe_integration_tests", "integrity", "integrity_balance_transactions"], "alias": "integrity_balance_transactions", "checksum": {"name": "sha256", "checksum": "fbaa73a2fab637129803ef1221399fba16336a1d0ce455f8e13f81d5cea931b4"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.6373844, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith staging_model as (\n select \n count(*) as row_count,\n sum(amount) as balance_transaction_amount,\n sum(net) as balance_transaction_net\n from {{ ref('stg_stripe__balance_transaction') }}\n),\n\nend_model as (\n select \n count(*) as row_count,\n sum(balance_transaction_amount) as balance_transaction_amount,\n sum(balance_transaction_net) as balance_transaction_net\n from {{ ref('stripe__balance_transactions') }}\n)\n\nselect *\nfrom staging_model\njoin end_model\n on staging_model.row_count != end_model.row_count\n or staging_model.balance_transaction_amount != end_model.balance_transaction_amount\n or staging_model.balance_transaction_net != end_model.balance_transaction_net", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__balance_transaction", "package": null, "version": null}, {"name": "stripe__balance_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_line_item_enhanced": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_line_item_enhanced", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_line_item_enhanced.sql", "original_file_path": "tests/consistency/consistency_line_item_enhanced.sql", "unique_id": "test.stripe_integration_tests.consistency_line_item_enhanced", "fqn": ["stripe_integration_tests", "consistency", "consistency_line_item_enhanced"], "alias": "consistency_line_item_enhanced", "checksum": {"name": "sha256", "checksum": "66abf4ba9ba77386e1b09f12d5654ff1c739394edcbf81440af45e8845f8ef60"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.6437025, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false) and var('stripe__standardized_billing_model_enabled', false)\n) }}\n\nwith prod as (\n select *\n except(fee_amount, refund_amount, transaction_type) --remove before merge\n from {{ target.schema }}_stripe_prod.stripe__line_item_enhanced\n),\n\ndev as (\n select *\n except(fee_amount, refund_amount, transaction_type) --remove before merge\n from {{ target.schema }}_stripe_dev.stripe__line_item_enhanced\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_subscription_details": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_subscription_details", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_subscription_details.sql", "original_file_path": "tests/consistency/consistency_subscription_details.sql", "unique_id": "test.stripe_integration_tests.consistency_subscription_details", "fqn": ["stripe_integration_tests", "consistency", "consistency_subscription_details"], "alias": "consistency_subscription_details", "checksum": {"name": "sha256", "checksum": "1ed249835db87cfd575edd750066359d6305de8b33494837c1920009cf71d94a"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.6508203, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith prod as (\n select {{ dbt_utils.star(from=ref('stripe__subscription_details'), except=var('consistency_test_exclude_fields', '[]')) }}\n from {{ target.schema }}_stripe_prod.stripe__subscription_details \n),\n\ndev as (\n select {{ dbt_utils.star(from=ref('stripe__subscription_details'), except=var('consistency_test_exclude_fields', '[]')) }}\n from {{ target.schema }}_stripe_dev.stripe__subscription_details\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__subscription_details", "package": null, "version": null}, {"name": "stripe__subscription_details", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_customer_overview": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_customer_overview", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_customer_overview.sql", "original_file_path": "tests/consistency/consistency_customer_overview.sql", "unique_id": "test.stripe_integration_tests.consistency_customer_overview", "fqn": ["stripe_integration_tests", "consistency", "consistency_customer_overview"], "alias": "consistency_customer_overview", "checksum": {"name": "sha256", "checksum": "6fa4fea93af327d1063d7b059fad4d80f62b1d19cf7dbf04ef838c963d4c1a55"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.6738536, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test ensures the customer_overview end model matches the prior version by comparing the aggregated fields\n-- the below iterates through the prod and dev names to reduce redundancy of logic\nwith\n{% for prod_or_dev in ('prod', 'dev') %}\n {% set cols = [\n 'total_sales',\n 'total_refunds',\n 'total_gross_transaction_amount',\n 'total_fees',\n 'total_net_transaction_amount',\n 'total_sales_count',\n 'total_refund_count',\n 'sales_this_month',\n 'refunds_this_month',\n 'gross_transaction_amount_this_month',\n 'fees_this_month',\n 'net_transaction_amount_this_month',\n 'sales_count_this_month',\n 'refund_count_this_month',\n 'total_failed_charge_count',\n 'total_failed_charge_amount',\n 'failed_charge_count_this_month',\n 'failed_charge_amount_this_month'\n ] %}\n\n {{ prod_or_dev }} as (\n select\n {% for col in cols %}\n {% if not loop.first %}, {% endif %}\n floor(sum({{ col }})) as summed_{{ col }} -- floor and sum is to keep consistency between dev and prod aggs\n {% endfor %}\n from {{ target.schema }}_stripe_{{ prod_or_dev }}.stripe__customer_overview\n ),\n{% endfor %}\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_ending_balance_reconciliation_itemized_4_count": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_ending_balance_reconciliation_itemized_4_count", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_ending_balance_reconciliation_itemized_4_count.sql", "original_file_path": "tests/consistency/consistency_ending_balance_reconciliation_itemized_4_count.sql", "unique_id": "test.stripe_integration_tests.consistency_ending_balance_reconciliation_itemized_4_count", "fqn": ["stripe_integration_tests", "consistency", "consistency_ending_balance_reconciliation_itemized_4_count"], "alias": "consistency_ending_balance_reconciliation_itemized_4_count", "checksum": {"name": "sha256", "checksum": "78b020f4228b47cecd0c1ea7701ca81420e8145492d80340197b15907d1b173e"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.6822305, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test is to make sure the rows counts are the same between versions\nwith prod as (\n select \n count(*) as prod_rows,\n sum(net) as net\n from {{ target.schema }}_stripe_prod.stripe__ending_balance_reconciliation_itemized_4\n),\n\ndev as (\n select \n count(*) as dev_rows,\n sum(net) as net\n from {{ target.schema }}_stripe_dev.stripe__ending_balance_reconciliation_itemized_4\n)\n\n-- test will return values and fail if the row counts don't match\nselect *\nfrom prod\njoin dev\n on prod.prod_rows != dev.dev_rows\n or prod.net != dev.net", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_payout_itemized_3_count": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_payout_itemized_3_count", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_payout_itemized_3_count.sql", "original_file_path": "tests/consistency/consistency_payout_itemized_3_count.sql", "unique_id": "test.stripe_integration_tests.consistency_payout_itemized_3_count", "fqn": ["stripe_integration_tests", "consistency", "consistency_payout_itemized_3_count"], "alias": "consistency_payout_itemized_3_count", "checksum": {"name": "sha256", "checksum": "17e8d7086d90862e23ac07cde263ad14975a54a6eac50aaa1afcd531f4bedb00"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.688162, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test is to make sure the rows counts are the same between versions\nwith prod as (\n select \n count(*) as prod_rows,\n sum(net) as net\n from {{ target.schema }}_stripe_prod.stripe__payout_itemized_3\n),\n\ndev as (\n select \n count(*) as dev_rows,\n sum(net) as net\n from {{ target.schema }}_stripe_dev.stripe__payout_itemized_3\n)\n\n-- test will return values and fail if the row counts don't match\nselect *\nfrom prod\njoin dev\n on prod.prod_rows != dev.dev_rows\n or prod.net != dev.net", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_line_item_enhanced_count": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_line_item_enhanced_count", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_line_item_enhanced_count.sql", "original_file_path": "tests/consistency/consistency_line_item_enhanced_count.sql", "unique_id": "test.stripe_integration_tests.consistency_line_item_enhanced_count", "fqn": ["stripe_integration_tests", "consistency", "consistency_line_item_enhanced_count"], "alias": "consistency_line_item_enhanced_count", "checksum": {"name": "sha256", "checksum": "31d46ea53d29fe0203e2e46aad7969cd29c9b6f4f5abd3b7417e6eee5ba82522"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.695035, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false) and var('stripe__standardized_billing_model_enabled', false)\n) }}\n\n-- this test is to make sure the rows counts are the same between versions\nwith prod as (\n select \n count(*) as prod_rows,\n sum(unit_amount) as unit_amount\n from {{ target.schema }}_stripe_prod.stripe__line_item_enhanced\n),\n\ndev as (\n select \n count(*) as dev_rows,\n sum(unit_amount) as unit_amount\n from {{ target.schema }}_stripe_dev.stripe__line_item_enhanced\n)\n\n-- test will return values and fail if the row counts don't match\nselect *\nfrom prod\njoin dev\n on prod.prod_rows != dev.dev_rows\n or prod.unit_amount != dev.unit_amount", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_subscription_item_mrr_report": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_subscription_item_mrr_report", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_subscription_item_mrr_report.sql", "original_file_path": "tests/consistency/consistency_subscription_item_mrr_report.sql", "unique_id": "test.stripe_integration_tests.consistency_subscription_item_mrr_report", "fqn": ["stripe_integration_tests", "consistency", "consistency_subscription_item_mrr_report"], "alias": "consistency_subscription_item_mrr_report", "checksum": {"name": "sha256", "checksum": "5c00df6683acad90fb757a245a62908045f0b31b9e509c0406a7997a92bcd8fd"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.7012937, "relation_name": null, "raw_code": "{{ config(\r\n tags=\"fivetran_validations\",\r\n enabled=var('fivetran_validation_tests_enabled', false)\r\n) }}\r\nwith prod as (\r\n select *\r\n from {{ target.schema }}_stripe_prod.stripe__subscription_item_mrr_report\r\n),\r\n\r\ndev as (\r\n select *\r\n from {{ target.schema }}_stripe_dev.stripe__subscription_item_mrr_report\r\n),\r\n\r\nprod_not_in_dev as (\r\n -- rows from prod not found in dev\r\n select * from prod\r\n except distinct\r\n select * from dev\r\n),\r\n\r\ndev_not_in_prod as (\r\n -- rows from dev not found in prod\r\n select * from dev\r\n except distinct\r\n select * from prod\r\n),\r\n\r\nfinal as (\r\n select\r\n *,\r\n 'from prod' as source\r\n from prod_not_in_dev\r\n\r\n union all -- union since we only care if rows are produced\r\n\r\n select\r\n *,\r\n 'from dev' as source\r\n from dev_not_in_prod\r\n)\r\n\r\nselect *\r\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_payout_itemized_3": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_payout_itemized_3", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_payout_itemized_3.sql", "original_file_path": "tests/consistency/consistency_payout_itemized_3.sql", "unique_id": "test.stripe_integration_tests.consistency_payout_itemized_3", "fqn": ["stripe_integration_tests", "consistency", "consistency_payout_itemized_3"], "alias": "consistency_payout_itemized_3", "checksum": {"name": "sha256", "checksum": "bf06417a009e18d91c96941026d0ee229b5f0f88f79fe8e4f3d3b8ab963ac4a6"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.7070792, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith prod as (\n select *\n from {{ target.schema }}_stripe_prod.stripe__payout_itemized_3\n),\n\ndev as (\n select *\n from {{ target.schema }}_stripe_dev.stripe__payout_itemized_3\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_daily_overview": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_daily_overview", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_daily_overview.sql", "original_file_path": "tests/consistency/consistency_daily_overview.sql", "unique_id": "test.stripe_integration_tests.consistency_daily_overview", "fqn": ["stripe_integration_tests", "consistency", "consistency_daily_overview"], "alias": "consistency_daily_overview", "checksum": {"name": "sha256", "checksum": "af3e977a0487265b1be7c32a4e2afcab96ef557b6d6c24f21069eee642ea7dc1"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.712913, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test ensures the daily_overview end model matches the prior version\n-- and is aggregated on the date_index grain since the rollings totals will cause variation at the account_id grain\n-- the below iterates through the prod and dev names to reduce redudancy of logic\nwith\n{% for prod_or_dev in ('prod', 'dev') %}\n {% set cols = adapter.get_columns_in_relation(ref('stripe__daily_overview')) %}\n {{ prod_or_dev }} as (\n select\n date_index,\n source_relation\n {% for col in cols if col.name not in [\"account_id\", \"account_daily_id\", \"date_day\", \"date_week\", \"date_month\", \"date_year\", \"date_index\", \"source_relation\"] %}\n , floor(sum({{ col.name }})) as summed_{{ col.name }} -- floor and sum is to keep consistency between dev and prod aggs\n {% endfor %}\n from {{ target.schema }}_stripe_{{ prod_or_dev }}.stripe__daily_overview\n group by 1,2 -- need to group to remove randomization stemming from rolling totals\n ),\n{% endfor %} \n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__daily_overview", "package": null, "version": null}, {"name": "stripe__daily_overview", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_invoice_line_item_details": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_invoice_line_item_details", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_invoice_line_item_details.sql", "original_file_path": "tests/consistency/consistency_invoice_line_item_details.sql", "unique_id": "test.stripe_integration_tests.consistency_invoice_line_item_details", "fqn": ["stripe_integration_tests", "consistency", "consistency_invoice_line_item_details"], "alias": "consistency_invoice_line_item_details", "checksum": {"name": "sha256", "checksum": "b6ee6534c7319a5b429626b40a9dd92b9b17de20c37e3272ef87bc106c2661a5"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.722002, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false) and var('stripe__using_invoices', true) \n) }}\n\nwith prod as (\n select {{ dbt_utils.star(from=ref('stripe__invoice_line_item_details'), except=var('consistency_test_exclude_fields', '[]')) }}\n from {{ target.schema }}_stripe_prod.stripe__invoice_line_item_details\n),\n\ndev as (\n select {{ dbt_utils.star(from=ref('stripe__invoice_line_item_details'), except=var('consistency_test_exclude_fields', '[]')) }}\n from {{ target.schema }}_stripe_dev.stripe__invoice_line_item_details\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__invoice_line_item_details", "package": null, "version": null}, {"name": "stripe__invoice_line_item_details", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_activity_itemized_2": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_activity_itemized_2", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_activity_itemized_2.sql", "original_file_path": "tests/consistency/consistency_activity_itemized_2.sql", "unique_id": "test.stripe_integration_tests.consistency_activity_itemized_2", "fqn": ["stripe_integration_tests", "consistency", "consistency_activity_itemized_2"], "alias": "consistency_activity_itemized_2", "checksum": {"name": "sha256", "checksum": "3f1ae7d8d1e1ef17399a372f61e49d24b7b79b89ce8ddcf1e7620560b00cd660"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.7297084, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith prod as (\n select balance_transaction_id, dispute_ids\n from {{ target.schema }}_stripe_prod.stripe__activity_itemized_2\n),\n\ndev as (\n select balance_transaction_id, dispute_ids\n from {{ target.schema }}_stripe_dev.stripe__activity_itemized_2\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_balance_transactions_count": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_balance_transactions_count", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_balance_transactions_count.sql", "original_file_path": "tests/consistency/consistency_balance_transactions_count.sql", "unique_id": "test.stripe_integration_tests.consistency_balance_transactions_count", "fqn": ["stripe_integration_tests", "consistency", "consistency_balance_transactions_count"], "alias": "consistency_balance_transactions_count", "checksum": {"name": "sha256", "checksum": "217b6a32d5c32400c3af70dd5ff491b763debea4d6ba2825ef9520a7de65a4f5"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.7354455, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test is to make sure the rows counts are the same between versions\nwith prod as (\n select \n count(*) as prod_rows,\n sum(customer_facing_amount) as customer_facing_amount,\n sum(balance_transaction_amount) as balance_transaction_amount,\n sum(balance_transaction_net) as balance_transaction_net\n from {{ target.schema }}_stripe_prod.stripe__balance_transactions\n),\n\ndev as (\n select \n count(*) as dev_rows,\n sum(customer_facing_amount) as customer_facing_amount,\n sum(balance_transaction_amount) as balance_transaction_amount,\n sum(balance_transaction_net) as balance_transaction_net\n from {{ target.schema }}_stripe_dev.stripe__balance_transactions\n)\n\n-- test will return values and fail if the row counts don't match\nselect *\nfrom prod\njoin dev\n on prod.prod_rows != dev.dev_rows\n or prod.customer_facing_amount != dev.customer_facing_amount\n or prod.balance_transaction_amount != dev.balance_transaction_amount\n or prod.balance_transaction_net != dev.balance_transaction_net", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_balance_change_from_activity_itemized_3": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_balance_change_from_activity_itemized_3", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_balance_change_from_activity_itemized_3.sql", "original_file_path": "tests/consistency/consistency_balance_change_from_activity_itemized_3.sql", "unique_id": "test.stripe_integration_tests.consistency_balance_change_from_activity_itemized_3", "fqn": ["stripe_integration_tests", "consistency", "consistency_balance_change_from_activity_itemized_3"], "alias": "consistency_balance_change_from_activity_itemized_3", "checksum": {"name": "sha256", "checksum": "f81d116adf78d530bf119b144329f1098f91a4691a170caaef47cf9dbc54bde8"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.7411826, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith prod as (\n select balance_transaction_id, dispute_reasons\n from {{ target.schema }}_stripe_prod.stripe__balance_change_from_activity_itemized_3\n),\n\ndev as (\n select balance_transaction_id, dispute_reasons\n from {{ target.schema }}_stripe_dev.stripe__balance_change_from_activity_itemized_3\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_daily_overview_count": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_daily_overview_count", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_daily_overview_count.sql", "original_file_path": "tests/consistency/consistency_daily_overview_count.sql", "unique_id": "test.stripe_integration_tests.consistency_daily_overview_count", "fqn": ["stripe_integration_tests", "consistency", "consistency_daily_overview_count"], "alias": "consistency_daily_overview_count", "checksum": {"name": "sha256", "checksum": "c901000db37ad9e9c908cd987283ebd9c535961a684387a55b09d5be49a0f88b"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.7469227, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test is to make sure the rows counts are the same between versions\nwith prod as (\n select count(*) as prod_rows\n from {{ target.schema }}_stripe_prod.stripe__daily_overview\n),\n\ndev as (\n select count(*) as dev_rows\n from {{ target.schema }}_stripe_dev.stripe__daily_overview\n)\n\n-- test will return values and fail if the row counts don't match\nselect *\nfrom prod\njoin dev\n on prod.prod_rows != dev.dev_rows", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_ending_balance_reconciliation_itemized_4": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_ending_balance_reconciliation_itemized_4", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_ending_balance_reconciliation_itemized_4.sql", "original_file_path": "tests/consistency/consistency_ending_balance_reconciliation_itemized_4.sql", "unique_id": "test.stripe_integration_tests.consistency_ending_balance_reconciliation_itemized_4", "fqn": ["stripe_integration_tests", "consistency", "consistency_ending_balance_reconciliation_itemized_4"], "alias": "consistency_ending_balance_reconciliation_itemized_4", "checksum": {"name": "sha256", "checksum": "b6f1684ac2539f97d6fb53579f5c9c67627567b9a17a7f8c6a650c12c9870184"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": false}, "created_at": 1781130899.7535973, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith prod as (\n select *\n from {{ target.schema }}_stripe_prod.stripe__ending_balance_reconciliation_itemized_4\n),\n\ndev as (\n select *\n from {{ target.schema }}_stripe_dev.stripe__ending_balance_reconciliation_itemized_4\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "seed.stripe_integration_tests.discount_data": [{"database": "postgres", "schema": "public", "name": "discount_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "discount_data.csv", "original_file_path": "seeds/discount_data.csv", "unique_id": "seed.stripe_integration_tests.discount_data", "fqn": ["stripe_integration_tests", "discount_data"], "alias": "discount_data", "checksum": {"name": "sha256", "checksum": "d0ef2ceecdc6dcc4e0479bf0f1db5b191fd75f4b468af1922db05a159ba87132"}, "config": {"enabled": false, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "amount": "bigint", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "enabled": "{{ target.type not in ('snowflake', 'postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "amount": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1781130899.9900641, "relation_name": "\"postgres\".\"public\".\"discount_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}], "seed.stripe_integration_tests.subscription_discount_data": [{"database": "postgres", "schema": "public", "name": "subscription_discount_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "subscription_discount_data.csv", "original_file_path": "seeds/subscription_discount_data.csv", "unique_id": "seed.stripe_integration_tests.subscription_discount_data", "fqn": ["stripe_integration_tests", "subscription_discount_data"], "alias": "subscription_discount_data", "checksum": {"name": "sha256", "checksum": "44b0e2563fabeb7d9fbf9bd4fddea3b82b795f074c27d1f5d9b8dfc49ddac77d"}, "config": {"enabled": false, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "enabled": "{{ target.type not in ('snowflake', 'postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1781130900.0069613, "relation_name": "\"postgres\".\"public\".\"subscription_discount_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}], "seed.stripe_integration_tests.subscription_discount_data_snowflake": [{"database": "postgres", "schema": "public", "name": "subscription_discount_data_snowflake", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "subscription_discount_data_snowflake.csv", "original_file_path": "seeds/subscription_discount_data_snowflake.csv", "unique_id": "seed.stripe_integration_tests.subscription_discount_data_snowflake", "fqn": ["stripe_integration_tests", "subscription_discount_data_snowflake"], "alias": "subscription_discount_data", "checksum": {"name": "sha256", "checksum": "a49e7e20decdca955aafa2a5ff124c36b92b51e771d931f144f565d03fee9374"}, "config": {"enabled": false, "alias": "subscription_discount_data", "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "alias": "subscription_discount_data", "enabled": "{{ target.type == 'snowflake' and not var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1781130900.0357938, "relation_name": "\"postgres\".\"public\".\"subscription_discount_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}], "seed.stripe_integration_tests.discount_data_snowflake": [{"database": "postgres", "schema": "public", "name": "discount_data_snowflake", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "discount_data_snowflake.csv", "original_file_path": "seeds/discount_data_snowflake.csv", "unique_id": "seed.stripe_integration_tests.discount_data_snowflake", "fqn": ["stripe_integration_tests", "discount_data_snowflake"], "alias": "discount_data", "checksum": {"name": "sha256", "checksum": "db440d8ec6d9d68625045a66bee2f4f1457b79bce00d64125a4980e4234fe769"}, "config": {"enabled": false, "alias": "discount_data", "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "alias": "discount_data", "enabled": "{{ target.type == 'snowflake' and not var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1781130900.0478222, "relation_name": "\"postgres\".\"public\".\"discount_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}]}, "parent_map": {"seed.stripe_integration_tests.credit_note_data": [], "seed.stripe_integration_tests.balance_transaction_data": [], "seed.stripe_integration_tests.credit_note_line_item_data": [], "seed.stripe_integration_tests.charge_data": [], "seed.stripe_integration_tests.invoice_line_item_data": [], "seed.stripe_integration_tests.subscription_history_data": [], "seed.stripe_integration_tests.subscription_data": [], "seed.stripe_integration_tests.payout_data": [], "seed.stripe_integration_tests.plan_data": [], "seed.stripe_integration_tests.discount_data_postgres": [], "seed.stripe_integration_tests.payout_balance_transaction_data": [], "seed.stripe_integration_tests.dispute_data": [], "seed.stripe_integration_tests.coupon_data": [], "seed.stripe_integration_tests.product_data": [], "seed.stripe_integration_tests.invoice_data": [], "seed.stripe_integration_tests.card_data": [], "seed.stripe_integration_tests.subscription_item_data": [], "seed.stripe_integration_tests.transfer_data": [], "seed.stripe_integration_tests.payment_method_card_data": [], "seed.stripe_integration_tests.refund_data": [], "seed.stripe_integration_tests.account_data": [], "seed.stripe_integration_tests.subscription_discount_data_postgres": [], "seed.stripe_integration_tests.payment_intent_data": [], "seed.stripe_integration_tests.fee_data": [], "seed.stripe_integration_tests.payment_method_data": [], "seed.stripe_integration_tests.price_data": [], "seed.stripe_integration_tests.customer_data": [], "model.stripe.stripe__invoice_details": ["model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__customer", "model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__price_plan", "model.stripe.stg_stripe__subscription"], "model.stripe.stripe__customer_overview": ["model.stripe.int_stripe__incomplete_charges", "model.stripe.stg_stripe__customer", "model.stripe.stripe__balance_transactions"], "model.stripe.stripe__invoice_line_item_details": ["model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__price_plan", "model.stripe.stg_stripe__subscription", "model.stripe.stripe__invoice_details"], "model.stripe.stripe__daily_overview": ["model.stripe.int_stripe__account_partitions"], "model.stripe.stripe__subscription_item_mrr_report": ["model.stripe.int_stripe__subscription_discount", "model.stripe.stg_stripe__price_plan", "model.stripe.stg_stripe__subscription", "model.stripe.stg_stripe__subscription_item"], "model.stripe.stripe__subscription_details": ["model.stripe.int_stripe__deduped_subscription_item", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__customer", "model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__subscription"], "model.stripe.stripe__balance_transactions": ["model.stripe.stg_stripe__account", "model.stripe.stg_stripe__balance_transaction", "model.stripe.stg_stripe__card", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__customer", "model.stripe.stg_stripe__dispute", "model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__payment_intent", "model.stripe.stg_stripe__payment_method", "model.stripe.stg_stripe__payment_method_card", "model.stripe.stg_stripe__payout", "model.stripe.stg_stripe__payout_balance_transaction", "model.stripe.stg_stripe__refund", "model.stripe.stg_stripe__subscription", "model.stripe.stg_stripe__transfer"], "model.stripe.stripe__line_item_enhanced": ["model.stripe.int_stripe__deduped_subscription_item", "model.stripe.stg_stripe__account", "model.stripe.stg_stripe__balance_transaction", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__customer", "model.stripe.stg_stripe__discount", "model.stripe.stg_stripe__fee", "model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__payment_intent", "model.stripe.stg_stripe__payment_method", "model.stripe.stg_stripe__price_plan", "model.stripe.stg_stripe__product", "model.stripe.stg_stripe__refund", "model.stripe.stg_stripe__subscription"], "model.stripe.int_stripe__deduped_subscription_item": ["model.stripe.stg_stripe__subscription_item"], "model.stripe.int_stripe__account_rolling_totals": ["model.stripe.int_stripe__account_daily", "model.stripe.int_stripe__date_spine"], "model.stripe.int_stripe__date_spine": ["model.stripe.stg_stripe__account", "model.stripe.stripe__balance_transactions"], "model.stripe.int_stripe__account_daily": ["model.stripe.int_stripe__date_spine", "model.stripe.int_stripe__incomplete_charges", "model.stripe.stripe__balance_transactions"], "model.stripe.int_stripe__account_partitions": ["model.stripe.int_stripe__account_rolling_totals"], "model.stripe.int_stripe__subscription_discount": ["model.stripe.stg_stripe__coupon", "model.stripe.stg_stripe__subscription_discount"], "model.stripe.int_stripe__incomplete_charges": ["model.stripe.stg_stripe__charge"], "model.stripe.stripe__balance_change_from_activity_itemized_3": ["model.stripe.stripe__balance_transactions"], "model.stripe.stripe__ending_balance_reconciliation_itemized_4": ["model.stripe.stripe__balance_transactions"], "model.stripe.stripe__activity_itemized_2": ["model.stripe.stripe__balance_transactions"], "model.stripe.stripe__payout_itemized_3": ["model.stripe.stripe__balance_transactions"], "model.stripe.stg_stripe__invoice": ["model.stripe.stg_stripe__invoice_tmp"], "model.stripe.stg_stripe__card": ["model.stripe.stg_stripe__card_tmp"], "model.stripe.stg_stripe__payment_intent": ["model.stripe.stg_stripe__payment_intent_tmp"], "model.stripe.stg_stripe__payment_method_card": ["model.stripe.stg_stripe__payment_method_card_tmp"], "model.stripe.stg_stripe__account": ["model.stripe.stg_stripe__account_tmp"], "model.stripe.stg_stripe__transfer": ["model.stripe.stg_stripe__transfer_tmp"], "model.stripe.stg_stripe__subscription_item": ["model.stripe.stg_stripe__subscription_item_tmp"], "model.stripe.stg_stripe__coupon": ["model.stripe.stg_stripe__coupon_tmp"], "model.stripe.stg_stripe__credit_note_line_item": ["model.stripe.stg_stripe__credit_note_line_item_tmp"], "model.stripe.stg_stripe__refund": ["model.stripe.stg_stripe__refund_tmp"], "model.stripe.stg_stripe__charge": ["model.stripe.stg_stripe__charge_tmp"], "model.stripe.stg_stripe__subscription_discount": ["model.stripe.stg_stripe__subscription_discount_tmp"], "model.stripe.stg_stripe__credit_note": ["model.stripe.stg_stripe__credit_note_tmp"], "model.stripe.stg_stripe__payout_balance_transaction": ["model.stripe.stg_stripe__payout_balance_transaction_tmp"], "model.stripe.stg_stripe__product": ["model.stripe.stg_stripe__product_tmp"], "model.stripe.stg_stripe__balance_transaction": ["model.stripe.stg_stripe__balance_transaction_tmp"], "model.stripe.stg_stripe__fee": ["model.stripe.stg_stripe__fee_tmp"], "model.stripe.stg_stripe__payout": ["model.stripe.stg_stripe__payout_tmp"], "model.stripe.stg_stripe__invoice_line_item": ["model.stripe.stg_stripe__invoice_line_item_tmp"], "model.stripe.stg_stripe__discount": ["model.stripe.stg_stripe__discount_tmp"], "model.stripe.stg_stripe__customer": ["model.stripe.stg_stripe__customer_tmp"], "model.stripe.stg_stripe__subscription": ["model.stripe.stg_stripe__subscription_tmp"], "model.stripe.stg_stripe__payment_method": ["model.stripe.stg_stripe__payment_method_tmp"], "model.stripe.stg_stripe__price_plan": ["model.stripe.stg_stripe__price_plan_tmp"], "model.stripe.stg_stripe__dispute": ["model.stripe.stg_stripe__dispute_tmp"], "model.stripe.stg_stripe__fee_tmp": ["source.stripe.stripe.fee"], "model.stripe.stg_stripe__invoice_tmp": ["source.stripe.stripe.invoice"], "model.stripe.stg_stripe__payout_tmp": ["source.stripe.stripe.payout"], "model.stripe.stg_stripe__payment_intent_tmp": ["source.stripe.stripe.payment_intent"], "model.stripe.stg_stripe__coupon_tmp": ["source.stripe.stripe.coupon"], "model.stripe.stg_stripe__transfer_tmp": ["source.stripe.stripe.transfer"], "model.stripe.stg_stripe__price_plan_tmp": ["source.stripe.stripe.plan"], "model.stripe.stg_stripe__subscription_discount_tmp": ["source.stripe.stripe.subscription_discount"], "model.stripe.stg_stripe__account_tmp": ["source.stripe.stripe.account"], "model.stripe.stg_stripe__invoice_line_item_tmp": ["source.stripe.stripe.invoice_line_item"], "model.stripe.stg_stripe__discount_tmp": ["source.stripe.stripe.discount"], "model.stripe.stg_stripe__balance_transaction_tmp": ["source.stripe.stripe.balance_transaction"], "model.stripe.stg_stripe__product_tmp": ["source.stripe.stripe.product"], "model.stripe.stg_stripe__dispute_tmp": ["source.stripe.stripe.dispute"], "model.stripe.stg_stripe__card_tmp": ["source.stripe.stripe.card"], "model.stripe.stg_stripe__payment_method_card_tmp": ["source.stripe.stripe.payment_method_card"], "model.stripe.stg_stripe__charge_tmp": ["source.stripe.stripe.charge"], "model.stripe.stg_stripe__payout_balance_transaction_tmp": ["source.stripe.stripe.payout_balance_transaction"], "model.stripe.stg_stripe__credit_note_line_item_tmp": ["source.stripe.stripe.credit_note_line_item"], "model.stripe.stg_stripe__customer_tmp": ["source.stripe.stripe.customer"], "model.stripe.stg_stripe__refund_tmp": ["source.stripe.stripe.refund"], "model.stripe.stg_stripe__payment_method_tmp": ["source.stripe.stripe.payment_method"], "model.stripe.stg_stripe__credit_note_tmp": ["source.stripe.stripe.credit_note"], "model.stripe.stg_stripe__subscription_tmp": ["source.stripe.stripe.subscription"], "model.stripe.stg_stripe__subscription_item_tmp": ["source.stripe.stripe.subscription_item"], "analysis.stripe.stripe__customer_mrr_analysis": ["model.stripe.stripe__subscription_item_mrr_report"], "analysis.stripe.stripe__arr_snapshot_analysis": ["model.stripe.stripe__subscription_item_mrr_report"], "test.stripe.not_null_stg_stripe__balance_transaction_balance_transaction_id.0ac20e778f": ["model.stripe.stg_stripe__balance_transaction"], "test.stripe.not_null_stg_stripe__card_card_id.edadd3106a": ["model.stripe.stg_stripe__card"], "test.stripe.not_null_stg_stripe__charge_charge_id.8941bc704a": ["model.stripe.stg_stripe__charge"], "test.stripe.not_null_stg_stripe__customer_customer_id.2e70421da0": ["model.stripe.stg_stripe__customer"], "test.stripe.not_null_stg_stripe__fee_balance_transaction_id.725d4ac005": ["model.stripe.stg_stripe__fee"], "test.stripe.not_null_stg_stripe__payment_intent_payment_intent_id.cb5b4d09eb": ["model.stripe.stg_stripe__payment_intent"], "test.stripe.not_null_stg_stripe__payment_method_card_payment_method_id.f246b11438": ["model.stripe.stg_stripe__payment_method_card"], "test.stripe.not_null_stg_stripe__payment_method_payment_method_id.0a8907c471": ["model.stripe.stg_stripe__payment_method"], "test.stripe.not_null_stg_stripe__payout_payout_id.6864a8acfc": ["model.stripe.stg_stripe__payout"], "test.stripe.not_null_stg_stripe__refund_refund_id.7c6dcedec0": ["model.stripe.stg_stripe__refund"], "test.stripe.not_null_stg_stripe__invoice_line_item_invoice_line_item_id.5b9c83b5f3": ["model.stripe.stg_stripe__invoice_line_item"], "test.stripe.not_null_stg_stripe__invoice_invoice_id.34cc0ff095": ["model.stripe.stg_stripe__invoice"], "test.stripe.not_null_stg_stripe__subscription_subscription_id.b242b1f7bc": ["model.stripe.stg_stripe__subscription"], "test.stripe.not_null_stg_stripe__subscription_item_subscription_item_id.dd9153a54a": ["model.stripe.stg_stripe__subscription_item"], "test.stripe.not_null_stg_stripe__credit_note_credit_note_id.d3e7f781dd": ["model.stripe.stg_stripe__credit_note"], "test.stripe.not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id.4a26fbafe7": ["model.stripe.stg_stripe__credit_note_line_item"], "test.stripe.not_null_stg_stripe__account_account_id.374858379a": ["model.stripe.stg_stripe__account"], "source.stripe.stripe.balance_transaction": [], "source.stripe.stripe.card": [], "source.stripe.stripe.charge": [], "source.stripe.stripe.customer": [], "source.stripe.stripe.dispute": [], "source.stripe.stripe.fee": [], "source.stripe.stripe.payment_intent": [], "source.stripe.stripe.payment_method_card": [], "source.stripe.stripe.payment_method": [], "source.stripe.stripe.payout": [], "source.stripe.stripe.payout_balance_transaction": [], "source.stripe.stripe.refund": [], "source.stripe.stripe.invoice_line_item": [], "source.stripe.stripe.invoice": [], "source.stripe.stripe.subscription_history": [], "source.stripe.stripe.subscription": [], "source.stripe.stripe.subscription_item": [], "source.stripe.stripe.plan": [], "source.stripe.stripe.credit_note": [], "source.stripe.stripe.credit_note_line_item": [], "source.stripe.stripe.price": [], "source.stripe.stripe.account": [], "source.stripe.stripe.transfer": [], "source.stripe.stripe.product": [], "source.stripe.stripe.discount": [], "source.stripe.stripe.subscription_discount": [], "source.stripe.stripe.coupon": []}, "child_map": {"seed.stripe_integration_tests.credit_note_data": [], "seed.stripe_integration_tests.balance_transaction_data": [], "seed.stripe_integration_tests.credit_note_line_item_data": [], "seed.stripe_integration_tests.charge_data": [], "seed.stripe_integration_tests.invoice_line_item_data": [], "seed.stripe_integration_tests.subscription_history_data": [], "seed.stripe_integration_tests.subscription_data": [], "seed.stripe_integration_tests.payout_data": [], "seed.stripe_integration_tests.plan_data": [], "seed.stripe_integration_tests.discount_data_postgres": [], "seed.stripe_integration_tests.payout_balance_transaction_data": [], "seed.stripe_integration_tests.dispute_data": [], "seed.stripe_integration_tests.coupon_data": [], "seed.stripe_integration_tests.product_data": [], "seed.stripe_integration_tests.invoice_data": [], "seed.stripe_integration_tests.card_data": [], "seed.stripe_integration_tests.subscription_item_data": [], "seed.stripe_integration_tests.transfer_data": [], "seed.stripe_integration_tests.payment_method_card_data": [], "seed.stripe_integration_tests.refund_data": [], "seed.stripe_integration_tests.account_data": [], "seed.stripe_integration_tests.subscription_discount_data_postgres": [], "seed.stripe_integration_tests.payment_intent_data": [], "seed.stripe_integration_tests.fee_data": [], "seed.stripe_integration_tests.payment_method_data": [], "seed.stripe_integration_tests.price_data": [], "seed.stripe_integration_tests.customer_data": [], "model.stripe.stripe__invoice_details": ["model.stripe.stripe__invoice_line_item_details"], "model.stripe.stripe__customer_overview": [], "model.stripe.stripe__invoice_line_item_details": [], "model.stripe.stripe__daily_overview": [], "model.stripe.stripe__subscription_item_mrr_report": ["analysis.stripe.stripe__arr_snapshot_analysis", "analysis.stripe.stripe__customer_mrr_analysis"], "model.stripe.stripe__subscription_details": [], "model.stripe.stripe__balance_transactions": ["model.stripe.int_stripe__account_daily", "model.stripe.int_stripe__date_spine", "model.stripe.stripe__activity_itemized_2", "model.stripe.stripe__balance_change_from_activity_itemized_3", "model.stripe.stripe__customer_overview", "model.stripe.stripe__ending_balance_reconciliation_itemized_4", "model.stripe.stripe__payout_itemized_3"], "model.stripe.stripe__line_item_enhanced": [], "model.stripe.int_stripe__deduped_subscription_item": ["model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_details"], "model.stripe.int_stripe__account_rolling_totals": ["model.stripe.int_stripe__account_partitions"], "model.stripe.int_stripe__date_spine": ["model.stripe.int_stripe__account_daily", "model.stripe.int_stripe__account_rolling_totals"], "model.stripe.int_stripe__account_daily": ["model.stripe.int_stripe__account_rolling_totals"], "model.stripe.int_stripe__account_partitions": ["model.stripe.stripe__daily_overview"], "model.stripe.int_stripe__subscription_discount": ["model.stripe.stripe__subscription_item_mrr_report"], "model.stripe.int_stripe__incomplete_charges": ["model.stripe.int_stripe__account_daily", "model.stripe.stripe__customer_overview"], "model.stripe.stripe__balance_change_from_activity_itemized_3": [], "model.stripe.stripe__ending_balance_reconciliation_itemized_4": [], "model.stripe.stripe__activity_itemized_2": [], "model.stripe.stripe__payout_itemized_3": [], "model.stripe.stg_stripe__invoice": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__invoice_details", "model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_details", "test.stripe.not_null_stg_stripe__invoice_invoice_id.34cc0ff095"], "model.stripe.stg_stripe__card": ["model.stripe.stripe__balance_transactions", "test.stripe.not_null_stg_stripe__card_card_id.edadd3106a"], "model.stripe.stg_stripe__payment_intent": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__line_item_enhanced", "test.stripe.not_null_stg_stripe__payment_intent_payment_intent_id.cb5b4d09eb"], "model.stripe.stg_stripe__payment_method_card": ["model.stripe.stripe__balance_transactions", "test.stripe.not_null_stg_stripe__payment_method_card_payment_method_id.f246b11438"], "model.stripe.stg_stripe__account": ["model.stripe.int_stripe__date_spine", "model.stripe.stripe__balance_transactions", "model.stripe.stripe__line_item_enhanced", "test.stripe.not_null_stg_stripe__account_account_id.374858379a"], "model.stripe.stg_stripe__transfer": ["model.stripe.stripe__balance_transactions"], "model.stripe.stg_stripe__subscription_item": ["model.stripe.int_stripe__deduped_subscription_item", "model.stripe.stripe__subscription_item_mrr_report", "test.stripe.not_null_stg_stripe__subscription_item_subscription_item_id.dd9153a54a"], "model.stripe.stg_stripe__coupon": ["model.stripe.int_stripe__subscription_discount"], "model.stripe.stg_stripe__credit_note_line_item": ["test.stripe.not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id.4a26fbafe7"], "model.stripe.stg_stripe__refund": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__line_item_enhanced", "test.stripe.not_null_stg_stripe__refund_refund_id.7c6dcedec0"], "model.stripe.stg_stripe__charge": ["model.stripe.int_stripe__incomplete_charges", "model.stripe.stripe__balance_transactions", "model.stripe.stripe__invoice_details", "model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_details", "test.stripe.not_null_stg_stripe__charge_charge_id.8941bc704a"], "model.stripe.stg_stripe__subscription_discount": ["model.stripe.int_stripe__subscription_discount"], "model.stripe.stg_stripe__credit_note": ["test.stripe.not_null_stg_stripe__credit_note_credit_note_id.d3e7f781dd"], "model.stripe.stg_stripe__payout_balance_transaction": ["model.stripe.stripe__balance_transactions"], "model.stripe.stg_stripe__product": ["model.stripe.stripe__line_item_enhanced"], "model.stripe.stg_stripe__balance_transaction": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__line_item_enhanced", "test.stripe.not_null_stg_stripe__balance_transaction_balance_transaction_id.0ac20e778f"], "model.stripe.stg_stripe__fee": ["model.stripe.stripe__line_item_enhanced", "test.stripe.not_null_stg_stripe__fee_balance_transaction_id.725d4ac005"], "model.stripe.stg_stripe__payout": ["model.stripe.stripe__balance_transactions", "test.stripe.not_null_stg_stripe__payout_payout_id.6864a8acfc"], "model.stripe.stg_stripe__invoice_line_item": ["model.stripe.stripe__invoice_details", "model.stripe.stripe__invoice_line_item_details", "model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_details", "test.stripe.not_null_stg_stripe__invoice_line_item_invoice_line_item_id.5b9c83b5f3"], "model.stripe.stg_stripe__discount": ["model.stripe.stripe__line_item_enhanced"], "model.stripe.stg_stripe__customer": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__customer_overview", "model.stripe.stripe__invoice_details", "model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_details", "test.stripe.not_null_stg_stripe__customer_customer_id.2e70421da0"], "model.stripe.stg_stripe__subscription": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__invoice_details", "model.stripe.stripe__invoice_line_item_details", "model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_details", "model.stripe.stripe__subscription_item_mrr_report", "test.stripe.not_null_stg_stripe__subscription_subscription_id.b242b1f7bc"], "model.stripe.stg_stripe__payment_method": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__line_item_enhanced", "test.stripe.not_null_stg_stripe__payment_method_payment_method_id.0a8907c471"], "model.stripe.stg_stripe__price_plan": ["model.stripe.stripe__invoice_details", "model.stripe.stripe__invoice_line_item_details", "model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_item_mrr_report"], "model.stripe.stg_stripe__dispute": ["model.stripe.stripe__balance_transactions"], "model.stripe.stg_stripe__fee_tmp": ["model.stripe.stg_stripe__fee"], "model.stripe.stg_stripe__invoice_tmp": ["model.stripe.stg_stripe__invoice"], "model.stripe.stg_stripe__payout_tmp": ["model.stripe.stg_stripe__payout"], "model.stripe.stg_stripe__payment_intent_tmp": ["model.stripe.stg_stripe__payment_intent"], "model.stripe.stg_stripe__coupon_tmp": ["model.stripe.stg_stripe__coupon"], "model.stripe.stg_stripe__transfer_tmp": ["model.stripe.stg_stripe__transfer"], "model.stripe.stg_stripe__price_plan_tmp": ["model.stripe.stg_stripe__price_plan"], "model.stripe.stg_stripe__subscription_discount_tmp": ["model.stripe.stg_stripe__subscription_discount"], "model.stripe.stg_stripe__account_tmp": ["model.stripe.stg_stripe__account"], "model.stripe.stg_stripe__invoice_line_item_tmp": ["model.stripe.stg_stripe__invoice_line_item"], "model.stripe.stg_stripe__discount_tmp": ["model.stripe.stg_stripe__discount"], "model.stripe.stg_stripe__balance_transaction_tmp": ["model.stripe.stg_stripe__balance_transaction"], "model.stripe.stg_stripe__product_tmp": ["model.stripe.stg_stripe__product"], "model.stripe.stg_stripe__dispute_tmp": ["model.stripe.stg_stripe__dispute"], "model.stripe.stg_stripe__card_tmp": ["model.stripe.stg_stripe__card"], "model.stripe.stg_stripe__payment_method_card_tmp": ["model.stripe.stg_stripe__payment_method_card"], "model.stripe.stg_stripe__charge_tmp": ["model.stripe.stg_stripe__charge"], "model.stripe.stg_stripe__payout_balance_transaction_tmp": ["model.stripe.stg_stripe__payout_balance_transaction"], "model.stripe.stg_stripe__credit_note_line_item_tmp": ["model.stripe.stg_stripe__credit_note_line_item"], "model.stripe.stg_stripe__customer_tmp": ["model.stripe.stg_stripe__customer"], "model.stripe.stg_stripe__refund_tmp": ["model.stripe.stg_stripe__refund"], "model.stripe.stg_stripe__payment_method_tmp": ["model.stripe.stg_stripe__payment_method"], "model.stripe.stg_stripe__credit_note_tmp": ["model.stripe.stg_stripe__credit_note"], "model.stripe.stg_stripe__subscription_tmp": ["model.stripe.stg_stripe__subscription"], "model.stripe.stg_stripe__subscription_item_tmp": ["model.stripe.stg_stripe__subscription_item"], "analysis.stripe.stripe__customer_mrr_analysis": [], "analysis.stripe.stripe__arr_snapshot_analysis": [], "test.stripe.not_null_stg_stripe__balance_transaction_balance_transaction_id.0ac20e778f": [], "test.stripe.not_null_stg_stripe__card_card_id.edadd3106a": [], "test.stripe.not_null_stg_stripe__charge_charge_id.8941bc704a": [], "test.stripe.not_null_stg_stripe__customer_customer_id.2e70421da0": [], "test.stripe.not_null_stg_stripe__fee_balance_transaction_id.725d4ac005": [], "test.stripe.not_null_stg_stripe__payment_intent_payment_intent_id.cb5b4d09eb": [], "test.stripe.not_null_stg_stripe__payment_method_card_payment_method_id.f246b11438": [], "test.stripe.not_null_stg_stripe__payment_method_payment_method_id.0a8907c471": [], "test.stripe.not_null_stg_stripe__payout_payout_id.6864a8acfc": [], "test.stripe.not_null_stg_stripe__refund_refund_id.7c6dcedec0": [], "test.stripe.not_null_stg_stripe__invoice_line_item_invoice_line_item_id.5b9c83b5f3": [], "test.stripe.not_null_stg_stripe__invoice_invoice_id.34cc0ff095": [], "test.stripe.not_null_stg_stripe__subscription_subscription_id.b242b1f7bc": [], "test.stripe.not_null_stg_stripe__subscription_item_subscription_item_id.dd9153a54a": [], "test.stripe.not_null_stg_stripe__credit_note_credit_note_id.d3e7f781dd": [], "test.stripe.not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id.4a26fbafe7": [], "test.stripe.not_null_stg_stripe__account_account_id.374858379a": [], "source.stripe.stripe.balance_transaction": ["model.stripe.stg_stripe__balance_transaction_tmp"], "source.stripe.stripe.card": ["model.stripe.stg_stripe__card_tmp"], "source.stripe.stripe.charge": ["model.stripe.stg_stripe__charge_tmp"], "source.stripe.stripe.customer": ["model.stripe.stg_stripe__customer_tmp"], "source.stripe.stripe.dispute": ["model.stripe.stg_stripe__dispute_tmp"], "source.stripe.stripe.fee": ["model.stripe.stg_stripe__fee_tmp"], "source.stripe.stripe.payment_intent": ["model.stripe.stg_stripe__payment_intent_tmp"], "source.stripe.stripe.payment_method_card": ["model.stripe.stg_stripe__payment_method_card_tmp"], "source.stripe.stripe.payment_method": ["model.stripe.stg_stripe__payment_method_tmp"], "source.stripe.stripe.payout": ["model.stripe.stg_stripe__payout_tmp"], "source.stripe.stripe.payout_balance_transaction": ["model.stripe.stg_stripe__payout_balance_transaction_tmp"], "source.stripe.stripe.refund": ["model.stripe.stg_stripe__refund_tmp"], "source.stripe.stripe.invoice_line_item": ["model.stripe.stg_stripe__invoice_line_item_tmp"], "source.stripe.stripe.invoice": ["model.stripe.stg_stripe__invoice_tmp"], "source.stripe.stripe.subscription_history": [], "source.stripe.stripe.subscription": ["model.stripe.stg_stripe__subscription_tmp"], "source.stripe.stripe.subscription_item": ["model.stripe.stg_stripe__subscription_item_tmp"], "source.stripe.stripe.plan": ["model.stripe.stg_stripe__price_plan_tmp"], "source.stripe.stripe.credit_note": ["model.stripe.stg_stripe__credit_note_tmp"], "source.stripe.stripe.credit_note_line_item": ["model.stripe.stg_stripe__credit_note_line_item_tmp"], "source.stripe.stripe.price": [], "source.stripe.stripe.account": ["model.stripe.stg_stripe__account_tmp"], "source.stripe.stripe.transfer": ["model.stripe.stg_stripe__transfer_tmp"], "source.stripe.stripe.product": ["model.stripe.stg_stripe__product_tmp"], "source.stripe.stripe.discount": ["model.stripe.stg_stripe__discount_tmp"], "source.stripe.stripe.subscription_discount": ["model.stripe.stg_stripe__subscription_discount_tmp"], "source.stripe.stripe.coupon": ["model.stripe.stg_stripe__coupon_tmp"]}, "group_map": {}, "saved_queries": {}, "semantic_models": {}, "unit_tests": {}, "functions": {}}
\ No newline at end of file
+{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v12.json", "dbt_version": "1.12.0", "generated_at": "2026-07-21T21:55:48.495466Z", "invocation_id": "078d0bd4-a97b-412b-a231-a68db1a7a8ac", "invocation_started_at": "2026-07-21T21:55:32.299076+00:00", "env": {}, "project_name": "stripe_integration_tests", "project_id": "109848508b1db9729face71a82e6e37e", "user_id": null, "send_anonymous_usage_stats": false, "adapter_type": "postgres", "quoting": {"database": true, "schema": true, "identifier": true, "column": null}, "run_started_at": "2026-07-21T21:55:32.299370+00:00"}, "nodes": {"seed.stripe_integration_tests.payment_method_card_data": {"database": "postgres", "schema": "public", "name": "payment_method_card_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "payment_method_card_data.csv", "original_file_path": "seeds/payment_method_card_data.csv", "unique_id": "seed.stripe_integration_tests.payment_method_card_data", "fqn": ["stripe_integration_tests", "payment_method_card_data"], "alias": "payment_method_card_data", "checksum": {"name": "sha256", "checksum": "453726fee367b16d6706553478eaa350527050513854fde3c8b59a9e3129ba42"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1784670935.409419, "relation_name": "\"postgres\".\"public\".\"payment_method_card_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.credit_note_line_item_data": {"database": "postgres", "schema": "public", "name": "credit_note_line_item_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "credit_note_line_item_data.csv", "original_file_path": "seeds/credit_note_line_item_data.csv", "unique_id": "seed.stripe_integration_tests.credit_note_line_item_data", "fqn": ["stripe_integration_tests", "credit_note_line_item_data"], "alias": "credit_note_line_item_data", "checksum": {"name": "sha256", "checksum": "9d9e6cc3cdb01b2d5c80ff5c644a64a4d3c8f713e0aef2f33573b81d1f1a31fb"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1784670935.4179459, "relation_name": "\"postgres\".\"public\".\"credit_note_line_item_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.subscription_discount_data_postgres": {"database": "postgres", "schema": "public", "name": "subscription_discount_data_postgres", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "subscription_discount_data_postgres.csv", "original_file_path": "seeds/subscription_discount_data_postgres.csv", "unique_id": "seed.stripe_integration_tests.subscription_discount_data_postgres", "fqn": ["stripe_integration_tests", "subscription_discount_data_postgres"], "alias": "subscription_discount_data", "checksum": {"name": "sha256", "checksum": "44b0e2563fabeb7d9fbf9bd4fddea3b82b795f074c27d1f5d9b8dfc49ddac77d"}, "config": {"enabled": true, "alias": "subscription_discount_data", "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "alias": "subscription_discount_data", "enabled": "{{ target.type == 'postgres' and not var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1784670935.4218493, "relation_name": "\"postgres\".\"public\".\"subscription_discount_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.credit_note_data": {"database": "postgres", "schema": "public", "name": "credit_note_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "credit_note_data.csv", "original_file_path": "seeds/credit_note_data.csv", "unique_id": "seed.stripe_integration_tests.credit_note_data", "fqn": ["stripe_integration_tests", "credit_note_data"], "alias": "credit_note_data", "checksum": {"name": "sha256", "checksum": "691ffbf209e91844891b1b958d3b89cea4c7d21222b50153b3166cb8b7986bfe"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "invoice_id": "varchar(500)", "voided_at": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}", "voided_at": "timestamp"}}, "created_at": 1784670935.4259906, "relation_name": "\"postgres\".\"public\".\"credit_note_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.payout_balance_transaction_data": {"database": "postgres", "schema": "public", "name": "payout_balance_transaction_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "payout_balance_transaction_data.csv", "original_file_path": "seeds/payout_balance_transaction_data.csv", "unique_id": "seed.stripe_integration_tests.payout_balance_transaction_data", "fqn": ["stripe_integration_tests", "payout_balance_transaction_data"], "alias": "payout_balance_transaction_data", "checksum": {"name": "sha256", "checksum": "aecd3ac283c481e6c3028e332c5f563edc1e77da6af398ed32163fd437b7e887"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1784670935.429789, "relation_name": "\"postgres\".\"public\".\"payout_balance_transaction_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.customer_data": {"database": "postgres", "schema": "public", "name": "customer_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "customer_data.csv", "original_file_path": "seeds/customer_data.csv", "unique_id": "seed.stripe_integration_tests.customer_data", "fqn": ["stripe_integration_tests", "customer_data"], "alias": "customer_data", "checksum": {"name": "sha256", "checksum": "6f9a83418a4291021acb3df878d3517e2011c6f7fceabc22677e224a993076e5"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "description": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "description": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1784670935.4335473, "relation_name": "\"postgres\".\"public\".\"customer_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.dispute_data": {"database": "postgres", "schema": "public", "name": "dispute_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "dispute_data.csv", "original_file_path": "seeds/dispute_data.csv", "unique_id": "seed.stripe_integration_tests.dispute_data", "fqn": ["stripe_integration_tests", "dispute_data"], "alias": "dispute_data", "checksum": {"name": "sha256", "checksum": "0c4b4f46360010fc0a86af6a5e9bce02c78c8a136559aa705cbb7343741f2e48"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1784670935.4410055, "relation_name": "\"postgres\".\"public\".\"dispute_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.payment_method_data": {"database": "postgres", "schema": "public", "name": "payment_method_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "payment_method_data.csv", "original_file_path": "seeds/payment_method_data.csv", "unique_id": "seed.stripe_integration_tests.payment_method_data", "fqn": ["stripe_integration_tests", "payment_method_data"], "alias": "payment_method_data", "checksum": {"name": "sha256", "checksum": "536dc473999434fd0e4eb38fd1354af12f143d5ca866c66d80e8463e52789cb8"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1784670935.4487112, "relation_name": "\"postgres\".\"public\".\"payment_method_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.product_data": {"database": "postgres", "schema": "public", "name": "product_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "product_data.csv", "original_file_path": "seeds/product_data.csv", "unique_id": "seed.stripe_integration_tests.product_data", "fqn": ["stripe_integration_tests", "product_data"], "alias": "product_data", "checksum": {"name": "sha256", "checksum": "d0c345561ac765fba290311bcdd66554778fd9f9f24160726f635b48817f40e9"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1784670935.4524553, "relation_name": "\"postgres\".\"public\".\"product_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.subscription_data": {"database": "postgres", "schema": "public", "name": "subscription_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "subscription_data.csv", "original_file_path": "seeds/subscription_data.csv", "unique_id": "seed.stripe_integration_tests.subscription_data", "fqn": ["stripe_integration_tests", "subscription_data"], "alias": "subscription_data", "checksum": {"name": "sha256", "checksum": "9963744a1f45602c27e4c4090348f5f26da54ddf9c25ae91435826d0e6889239"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "canceled_at": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "canceled_at": "timestamp"}}, "created_at": 1784670935.4561586, "relation_name": "\"postgres\".\"public\".\"subscription_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.payout_data": {"database": "postgres", "schema": "public", "name": "payout_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "payout_data.csv", "original_file_path": "seeds/payout_data.csv", "unique_id": "seed.stripe_integration_tests.payout_data", "fqn": ["stripe_integration_tests", "payout_data"], "alias": "payout_data", "checksum": {"name": "sha256", "checksum": "2735f1ff3b2d35594e57c04b660eb362cc453adf417921f4e42b061550b144af"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "destination_bank_account_id": "varchar(500)", "destination_card_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "destination_bank_account_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}", "destination_card_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1784670935.4637403, "relation_name": "\"postgres\".\"public\".\"payout_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.account_data": {"database": "postgres", "schema": "public", "name": "account_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "account_data.csv", "original_file_path": "seeds/account_data.csv", "unique_id": "seed.stripe_integration_tests.account_data", "fqn": ["stripe_integration_tests", "account_data"], "alias": "account_data", "checksum": {"name": "sha256", "checksum": "922e9bb17b6a96ce3d83148e873ad945e0d175aa1eea37ca419b37e1f6aeac78"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1784670935.4675004, "relation_name": "\"postgres\".\"public\".\"account_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.refund_data": {"database": "postgres", "schema": "public", "name": "refund_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "refund_data.csv", "original_file_path": "seeds/refund_data.csv", "unique_id": "seed.stripe_integration_tests.refund_data", "fqn": ["stripe_integration_tests", "refund_data"], "alias": "refund_data", "checksum": {"name": "sha256", "checksum": "5f70ecc52a80db206160abd1520dcd82cfe19c0d4ff6dcefedaad496204b2086"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1784670935.4712663, "relation_name": "\"postgres\".\"public\".\"refund_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.price_data": {"database": "postgres", "schema": "public", "name": "price_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "price_data.csv", "original_file_path": "seeds/price_data.csv", "unique_id": "seed.stripe_integration_tests.price_data", "fqn": ["stripe_integration_tests", "price_data"], "alias": "price_data", "checksum": {"name": "sha256", "checksum": "9f9436a34a8bbb7cd424dce632963c4b534394b7634fb723e13a95d93036a85f"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "recurring_interval": "varchar(100)", "recurring_aggregate_usage": "varchar(100)", "recurring_usage_type": "varchar(100)", "recurring_interval_count": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "recurring_interval": "{{ 'varchar(100)' if target.type in ('redshift','postgres') else 'string'}}", "recurring_aggregate_usage": "{{ 'varchar(100)' if target.type in ('redshift','postgres') else 'string'}}", "recurring_usage_type": "{{ 'varchar(100)' if target.type in ('redshift','postgres') else 'string'}}", "recurring_interval_count": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}"}}, "created_at": 1784670935.4752223, "relation_name": "\"postgres\".\"public\".\"price_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.charge_data": {"database": "postgres", "schema": "public", "name": "charge_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "charge_data.csv", "original_file_path": "seeds/charge_data.csv", "unique_id": "seed.stripe_integration_tests.charge_data", "fqn": ["stripe_integration_tests", "charge_data"], "alias": "charge_data", "checksum": {"name": "sha256", "checksum": "c29d3cceeac27c260c1cc4286bedf193a3af10ff548e7dfedad4b7987ac8f1b6"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "balance_transaction_id": "varchar(500)", "captured": "boolean", "livemode": "boolean", "paid": "boolean", "refunded": "boolean", "amount": "bigint", "amount_refunded": "bigint", "application_fee_amount": "bigint", "outcome_risk_score": "float", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "balance_transaction_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}", "captured": "boolean", "livemode": "boolean", "paid": "boolean", "refunded": "boolean", "amount": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "amount_refunded": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "application_fee_amount": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "outcome_risk_score": "{{ 'float' if target.type in ('redshift','postgres') else 'FLOAT64' if target.type == 'bigquery' else 'float'}}", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1784670935.4792044, "relation_name": "\"postgres\".\"public\".\"charge_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.balance_transaction_data": {"database": "postgres", "schema": "public", "name": "balance_transaction_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "balance_transaction_data.csv", "original_file_path": "seeds/balance_transaction_data.csv", "unique_id": "seed.stripe_integration_tests.balance_transaction_data", "fqn": ["stripe_integration_tests", "balance_transaction_data"], "alias": "balance_transaction_data", "checksum": {"name": "sha256", "checksum": "4154ea4a15da29a7d0d2569ee41436dc9e756669cbd07e7cc8df4fe5ba0a0fff"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "available_on": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "available_on": "timestamp"}}, "created_at": 1784670935.4868011, "relation_name": "\"postgres\".\"public\".\"balance_transaction_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.payment_intent_data": {"database": "postgres", "schema": "public", "name": "payment_intent_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "payment_intent_data.csv", "original_file_path": "seeds/payment_intent_data.csv", "unique_id": "seed.stripe_integration_tests.payment_intent_data", "fqn": ["stripe_integration_tests", "payment_intent_data"], "alias": "payment_intent_data", "checksum": {"name": "sha256", "checksum": "38b671855fae99f4a72445287391d69c161c72c92fcf9f92b062635fdb0a4170"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "canceled_at": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "canceled_at": "timestamp"}}, "created_at": 1784670935.4905603, "relation_name": "\"postgres\".\"public\".\"payment_intent_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.plan_data": {"database": "postgres", "schema": "public", "name": "plan_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "plan_data.csv", "original_file_path": "seeds/plan_data.csv", "unique_id": "seed.stripe_integration_tests.plan_data", "fqn": ["stripe_integration_tests", "plan_data"], "alias": "plan_data", "checksum": {"name": "sha256", "checksum": "320d998eba6747daac6232abed84c248f0f0a034a37658398d14c99eb49b8b33"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "interval_count": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "interval_count": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}"}}, "created_at": 1784670935.494588, "relation_name": "\"postgres\".\"public\".\"plan_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.invoice_line_item_data": {"database": "postgres", "schema": "public", "name": "invoice_line_item_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "invoice_line_item_data.csv", "original_file_path": "seeds/invoice_line_item_data.csv", "unique_id": "seed.stripe_integration_tests.invoice_line_item_data", "fqn": ["stripe_integration_tests", "invoice_line_item_data"], "alias": "invoice_line_item_data", "checksum": {"name": "sha256", "checksum": "b5bf40d519f6672ca1f6277f104336a0b4de594cb0003d2cea5db5542d176bd2"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1784670935.498346, "relation_name": "\"postgres\".\"public\".\"invoice_line_item_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.discount_data_postgres": {"database": "postgres", "schema": "public", "name": "discount_data_postgres", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "discount_data_postgres.csv", "original_file_path": "seeds/discount_data_postgres.csv", "unique_id": "seed.stripe_integration_tests.discount_data_postgres", "fqn": ["stripe_integration_tests", "discount_data_postgres"], "alias": "discount_data", "checksum": {"name": "sha256", "checksum": "228d1a67d58ad79cdb41e86ffeb90cd1dd5e7fccd91d684abfbb856daa544174"}, "config": {"enabled": true, "alias": "discount_data", "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "amount": "bigint", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "alias": "discount_data", "enabled": "{{ target.type == 'postgres' and not var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "amount": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1784670935.5022085, "relation_name": "\"postgres\".\"public\".\"discount_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.fee_data": {"database": "postgres", "schema": "public", "name": "fee_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "fee_data.csv", "original_file_path": "seeds/fee_data.csv", "unique_id": "seed.stripe_integration_tests.fee_data", "fqn": ["stripe_integration_tests", "fee_data"], "alias": "fee_data", "checksum": {"name": "sha256", "checksum": "109e6702c2b6a145f90c2ead15e581f2733cb060c1f28e2574a705b144bbb113"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1784670935.5059302, "relation_name": "\"postgres\".\"public\".\"fee_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.transfer_data": {"database": "postgres", "schema": "public", "name": "transfer_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "transfer_data.csv", "original_file_path": "seeds/transfer_data.csv", "unique_id": "seed.stripe_integration_tests.transfer_data", "fqn": ["stripe_integration_tests", "transfer_data"], "alias": "transfer_data", "checksum": {"name": "sha256", "checksum": "d618fff8db4e3adad24ab5325dd4b16ee0d68ab259b39ff52caeab926b4bd74b"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1784670935.5097606, "relation_name": "\"postgres\".\"public\".\"transfer_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.subscription_history_data": {"database": "postgres", "schema": "public", "name": "subscription_history_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "subscription_history_data.csv", "original_file_path": "seeds/subscription_history_data.csv", "unique_id": "seed.stripe_integration_tests.subscription_history_data", "fqn": ["stripe_integration_tests", "subscription_history_data"], "alias": "subscription_history_data", "checksum": {"name": "sha256", "checksum": "4197e461c126d3961b56ec71f2415f13180d4a5e9640292859ddb53b9e9eb51d"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "canceled_at": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "canceled_at": "timestamp"}}, "created_at": 1784670935.5134788, "relation_name": "\"postgres\".\"public\".\"subscription_history_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.coupon_data": {"database": "postgres", "schema": "public", "name": "coupon_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "coupon_data.csv", "original_file_path": "seeds/coupon_data.csv", "unique_id": "seed.stripe_integration_tests.coupon_data", "fqn": ["stripe_integration_tests", "coupon_data"], "alias": "coupon_data", "checksum": {"name": "sha256", "checksum": "44b0c8babb636e83029b886416e912393898092b9ac414a63b95a907ab0f72ad"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"created": "timestamp", "redeem_by": "timestamp", "_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"created": "timestamp", "redeem_by": "timestamp", "_fivetran_synced": "timestamp"}}, "created_at": 1784670935.51721, "relation_name": "\"postgres\".\"public\".\"coupon_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.subscription_item_data": {"database": "postgres", "schema": "public", "name": "subscription_item_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "subscription_item_data.csv", "original_file_path": "seeds/subscription_item_data.csv", "unique_id": "seed.stripe_integration_tests.subscription_item_data", "fqn": ["stripe_integration_tests", "subscription_item_data"], "alias": "subscription_item_data", "checksum": {"name": "sha256", "checksum": "d37cc1330a9cbbd48c6218c71f18f1cd8dbefe9e9d2ee2dc43ebba94845a63e7"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "quantity": "bigint"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp", "quantity": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}"}}, "created_at": 1784670935.520897, "relation_name": "\"postgres\".\"public\".\"subscription_item_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.invoice_data": {"database": "postgres", "schema": "public", "name": "invoice_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "invoice_data.csv", "original_file_path": "seeds/invoice_data.csv", "unique_id": "seed.stripe_integration_tests.invoice_data", "fqn": ["stripe_integration_tests", "invoice_data"], "alias": "invoice_data", "checksum": {"name": "sha256", "checksum": "520859bc3c7830d4244d03dba4f13a7771f2e8b0af2f8643d6bbb0d57466c346"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "due_date": "timestamp", "paid": "boolean", "auto_advance": "boolean", "amount_due": "bigint", "amount_paid": "bigint", "amount_remaining": "bigint", "subtotal": "bigint", "tax": "bigint", "total": "bigint", "attempt_count": "bigint", "number": "bigint", "post_payment_credit_notes_amount": "bigint", "pre_payment_credit_notes_amount": "bigint", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "due_date": "timestamp", "paid": "boolean", "auto_advance": "boolean", "amount_due": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "amount_paid": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "amount_remaining": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "subtotal": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "tax": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "total": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "attempt_count": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "number": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "post_payment_credit_notes_amount": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "pre_payment_credit_notes_amount": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1784670935.5249329, "relation_name": "\"postgres\".\"public\".\"invoice_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "seed.stripe_integration_tests.card_data": {"database": "postgres", "schema": "public", "name": "card_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "card_data.csv", "original_file_path": "seeds/card_data.csv", "unique_id": "seed.stripe_integration_tests.card_data", "fqn": ["stripe_integration_tests", "card_data"], "alias": "card_data", "checksum": {"name": "sha256", "checksum": "087a8aaadf3f88b0fc4f6777610655dc708d20fde3cf5d41877fd1c52be89008"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "created": "timestamp"}}, "created_at": 1784670935.528803, "relation_name": "\"postgres\".\"public\".\"card_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}, "model.stripe.stripe__balance_transactions": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__balance_transactions", "resource_type": "model", "package_name": "stripe", "path": "stripe__balance_transactions.sql", "original_file_path": "models/stripe__balance_transactions.sql", "unique_id": "model.stripe.stripe__balance_transactions", "fqn": ["stripe", "stripe__balance_transactions"], "alias": "stripe__balance_transactions", "checksum": {"name": "sha256", "checksum": "317f6ccb6602d0fa3b9aec2b86bfcf085f87ac4228b464066e54febd37c3c802"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Each record represents a change to your account balance, enriched with data about the transaction.", "columns": {"balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_created_at": {"name": "balance_transaction_created_at", "description": "When the transaction took place", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_available_on": {"name": "balance_transaction_available_on", "description": "The date the transaction\u2019s net funds will become available in the Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_currency": {"name": "balance_transaction_currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_amount": {"name": "balance_transaction_amount", "description": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "balance_transaction_fee": {"name": "balance_transaction_fee", "description": "Fees (in currency units) paid for this transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_net": {"name": "balance_transaction_net", "description": "Net amount of the transaction. Gross amount minus fees, refunds, and disputes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "balance_transaction_type": {"name": "balance_transaction_type", "description": "The type of transaction. Possible values are adjustment, advance, advance_funding, application_fee, application_fee_refund, charge, connect_collection_transfer, issuing_authorization_hold, issuing_authorization_release, issuing_dispute, issuing_transaction, payment, payment_failure_refund, payment_refund, payout, payout_cancel, payout_failure, refund, refund_failure, reserve_transaction, reserved_funds, stripe_fee, stripe_fx_fee, tax_fee, topup, topup_reversal, transfer, transfer_cancel, transfer_failure, or transfer_refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_reporting_category": {"name": "balance_transaction_reporting_category", "description": "Groupings of transactions types based on how they show in Stripe's reporting", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_source_id": {"name": "balance_transaction_source_id", "description": "The Stripe object to which this transaction is related.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_description": {"name": "balance_transaction_description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_facing_amount": {"name": "customer_facing_amount", "description": "The transaction amount that the customer sees. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "customer_facing_currency": {"name": "customer_facing_currency", "description": "Three-letter ISO currency code that the customer sees.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "effective_at": {"name": "effective_at", "description": "calendar day after available_at", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "automatic_payout_id": {"name": "automatic_payout_id", "description": "(Applies only to accounts on automatic payouts.) The unique ID for the associated payout.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_currency": {"name": "payout_currency", "description": "Three-letter ISO currency code of the payout, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_created_at": {"name": "payout_created_at", "description": "Time at which the payout record was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_is_automatic": {"name": "payout_is_automatic", "description": "True if the payout was created by an automated payout schedule, and false if it was requested manually.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_arrival_date_at": {"name": "payout_arrival_date_at", "description": "Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "automatic_payout_effective_at": {"name": "automatic_payout_effective_at", "description": "The date we expect this automatic payout to arrive in your bank account, in UTC. This is also when the paid-out funds are deducted from your Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "destination_bank_account_id": {"name": "destination_bank_account_id", "description": "ID of the bank account the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "destination_card_id": {"name": "destination_card_id", "description": "ID of the card the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The customer associated with the balance transaction (based on charge or refund details)", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "The customer\u2019s email address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "receipt_email": {"name": "receipt_email", "description": "The email the receipt was emailed to for this transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "The description field associated with the customer", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_city": {"name": "customer_shipping_address_city", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_country": {"name": "customer_shipping_address_country", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_line_1": {"name": "customer_shipping_address_line_1", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_line_2": {"name": "customer_shipping_address_line_2", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_postal_code": {"name": "customer_shipping_address_postal_code", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_state": {"name": "customer_shipping_address_state", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_city": {"name": "customer_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.city"]}, "customer_address_country": {"name": "customer_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.country"]}, "customer_address_line_1": {"name": "customer_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.line_1"]}, "customer_address_line_2": {"name": "customer_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.line_2"]}, "customer_address_postal_code": {"name": "customer_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.postal_code"]}, "customer_address_state": {"name": "customer_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.state"]}, "charge_id": {"name": "charge_id", "description": "The id of the charge associated with the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_shipping_address_city": {"name": "charge_shipping_address_city", "description": "City, district, suburb, town, or village belonging to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_shipping_address_country": {"name": "charge_shipping_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2) belonging to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_shipping_address_line_1": {"name": "charge_shipping_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name) belonging to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_shipping_address_line_2": {"name": "charge_shipping_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building) belonging to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_shipping_address_postal_code": {"name": "charge_shipping_address_postal_code", "description": "ZIP or postal code belonging to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_shipping_address_state": {"name": "charge_shipping_address_state", "description": "State, county, province, or region belonging to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "The id of the payment intent associated with the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_created_at": {"name": "charge_created_at", "description": "Timestamp of the charge object associated with the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_method_type": {"name": "payment_method_type", "description": "The id of the payment method type associated with the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_method_brand": {"name": "payment_method_brand", "description": "Card brand used for the payment method. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_method_funding": {"name": "payment_method_funding", "description": "Card funding type for the payment method. Can be credit, debit, prepaid, or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_city": {"name": "card_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.city"]}, "card_address_country": {"name": "card_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.country"]}, "card_address_line_1": {"name": "card_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.line_1"]}, "card_address_line_2": {"name": "card_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.line_2"]}, "card_address_state": {"name": "card_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.state"]}, "card_address_postal_code": {"name": "card_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.postal_code"]}, "card_brand": {"name": "card_brand", "description": "The brand of the card associated with the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_funding": {"name": "card_funding", "description": "Card funding type. Can be credit, debit, prepaid, or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_country": {"name": "card_country", "description": "The country the card was issued in.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_id": {"name": "payout_id", "description": "ID for the payout associated with this balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_status": {"name": "payout_status", "description": "Current status of the payout. Can be paid, pending, in_transit, canceled or failed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_type": {"name": "payout_type", "description": "Whether the payout was to a bank_account or card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_description": {"name": "payout_description", "description": "An arbitrary string attached to the payout. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "refund_reason": {"name": "refund_reason", "description": "Reason for the refund, either user-provided (duplicate, fraudulent, or requested_by_customer) or generated by Stripe internally (expired_uncaptured_charge).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The ID of the invoice this record is a part of.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_number": {"name": "invoice_number", "description": "The number of the invoice associated with this record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription is associated with this record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_statement_descriptor": {"name": "charge_statement_descriptor", "description": "Extra information about a source. This will appear on your customer\u2019s statement every time you charge the source.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "dispute_ids": {"name": "dispute_ids", "description": "Unique identifiers for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "dispute_reasons": {"name": "dispute_reasons", "description": "Reasons given by cardholder for dispute. Possible values are bank_cannot_process, check_returned, credit_not_processed, customer_initiated, debit_not_authorized, duplicate, fraudulent, general, incorrect_account_details, insufficient_funds, product_not_received, product_unacceptable, subscription_canceled, or unrecognized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "refund_id": {"name": "refund_id", "description": "ID of the refund associated with this record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transfer_id": {"name": "transfer_id", "description": "ID of the transfer associated with this record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "The ID of the account connected to the transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_country": {"name": "connected_account_country", "description": "The country of the account connected to the transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_direct_charge_id": {"name": "connected_account_direct_charge_id", "description": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}, "latest_dispute_amount_won": {"name": "latest_dispute_amount_won", "description": "Latest disputed amount that was won in favor of the merchant. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "latest_dispute_amount_lost": {"name": "latest_dispute_amount_lost", "description": "Latest disputed amount that was lost and returned to the customer. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "latest_dispute_amount_under_review": {"name": "latest_dispute_amount_under_review", "description": "Latest disputed amount that is currently under review by the bank. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "latest_dispute_amount_needs_response": {"name": "latest_dispute_amount_needs_response", "description": "Latest disputed amount that currently needs a response (the dispute has been filed but the merchant has not yet responded with evidence). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "latest_dispute_amount_warning_closed": {"name": "latest_dispute_amount_warning_closed", "description": "Latest disputed amount that is currently of status `warning_under_closed` (early fraud warning being closed due to no formal dispute). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "latest_dispute_amount_warning_under_review": {"name": "latest_dispute_amount_warning_under_review", "description": "Latest disputed amount that is currently of status `warning_under_review` (card issuer suspects possible fraud but hasn't yet escalated the situation to a full dispute). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "latest_dispute_amount_warning_needs_response": {"name": "latest_dispute_amount_warning_needs_response", "description": "Latest disputed amount that is currently of status `warning_needs_response` (early fraud warning has been escalated into formal dispute or card issuer has requested more information). Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "dispute_count": {"name": "dispute_count", "description": "Count of disputes raised against this transaction. If > 1, join in `dispute` data for additional information on each dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_balance_transaction_is_current": {"name": "payout_balance_transaction_is_current", "description": "Boolean if the current record matches the most recent balance_transaction_id recorded in the corresponding PAYOUT.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.7643907, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"", "raw_code": "with balance_transaction as (\n\n select *\n from {{ ref('stg_stripe__balance_transaction') }}\n\n), account as (\n\n select *\n from {{ ref('stg_stripe__account') }}\n\n), cards as (\n\n select *\n from {{ ref('stg_stripe__card') }}\n\n), charge as (\n\n select *\n from {{ ref('stg_stripe__charge') }}\n\n), customer as (\n\n select *\n from {{ ref('stg_stripe__customer') }}\n\n), dispute as (\n\n select *\n from {{ ref('stg_stripe__dispute') }}\n\n{% if var('stripe__using_invoices', True) %}\n), invoice as (\n\n select *\n from {{ ref('stg_stripe__invoice') }}\n\n{% endif %}\n\n), payment_intent as (\n \n select *\n from {{ ref('stg_stripe__payment_intent') }}\n\n{% if var('stripe__using_payment_method', True) %}\n), payment_method as (\n \n select *\n from {{ ref('stg_stripe__payment_method') }}\n\n), payment_method_card as (\n\n select *\n from {{ ref('stg_stripe__payment_method_card') }}\n\n{% endif %}\n\n{% if var('stripe__using_payouts', True) %}\n), payout as (\n\n select *\n from {{ ref('stg_stripe__payout') }}\n\n), payout_balance_transaction as (\n\n select *\n from {{ ref('stg_stripe__payout_balance_transaction') }}\n\n), payout_balance_transaction_unified as (\n -- Create a unified mapping table to bridge records without mapping.\n select\n balance_transaction.source_relation,\n balance_transaction.balance_transaction_id,\n coalesce(payout_balance_transaction.payout_id, payout.payout_id) as payout_id\n from balance_transaction\n\n left join payout_balance_transaction\n on payout_balance_transaction.balance_transaction_id = balance_transaction.balance_transaction_id\n and payout_balance_transaction.source_relation = balance_transaction.source_relation\n left join payout\n on payout.balance_transaction_id = balance_transaction.balance_transaction_id\n and payout.source_relation = balance_transaction.source_relation\n\n{% endif %}\n\n), refund as (\n \n select *\n from {{ ref('stg_stripe__refund') }}\n\n{% if var('stripe__using_subscriptions', True) %}\n), subscription as (\n\n select *\n from {{ ref('stg_stripe__subscription') }}\n\n{% endif %}\n\n{% if var('stripe__using_transfers', True) %}\n), transfers as (\n\n select *\n from {{ ref('stg_stripe__transfer') }}\n\n{% endif %}\n\n), dispute_summary as (\n /* Although rare, payments can be disputed multiple times. \n Hence, we need to aggregate the disputes to get the total disputed amount.\n */\n select\n charge_id,\n source_relation,\n {{ fivetran_utils.string_agg('dispute_id', \"','\")}} as dispute_ids,\n {{ fivetran_utils.string_agg('distinct dispute_reason', \"','\")}} as dispute_reasons,\n count(dispute_id) as dispute_count\n from dispute\n group by 1,2\n\n), order_disputes as (\n\n select \n charge_id,\n source_relation,\n dispute_id,\n dispute_status,\n dispute_amount,\n row_number() over (partition by charge_id, dispute_status {{ fivetran_utils.partition_by_source_relation(package_name='stripe') }} order by dispute_created_at desc) = 1 as is_latest_status_dispute,\n row_number() over (partition by charge_id {{ fivetran_utils.partition_by_source_relation(package_name='stripe') }} order by dispute_created_at desc, dispute_amount desc) = 1 as is_absolute_latest_dispute -- include dispute_amount desc in off chance of identical dispute_created_ats \n from dispute \n\n), latest_disputes as (\n\n select \n charge_id,\n source_relation,\n -- Iterate over each type of possible status (according https://docs.stripe.com/api/disputes/object) and pull out the dispute_amount from the latest dispute\n {% for status in ['won', 'lost', 'under_review', 'needs_response', 'warning_closed', 'warning_under_review', 'warning_needs_response'] %}\n sum(case when lower(dispute_status) = '{{ status }}' then dispute_amount else 0 end) as latest_dispute_amount_{{ status }},\n {% endfor %}\n -- For the customer_facing_amount fields, pull out the generally latest dispute_amount\n sum(case when is_absolute_latest_dispute then dispute_amount else 0 end) as latest_dispute_amount\n\n from order_disputes \n where is_latest_status_dispute\n group by 1,2\n)\n\nselect\n balance_transaction.balance_transaction_id,\n balance_transaction.created_at as balance_transaction_created_at,\n balance_transaction.available_on as balance_transaction_available_on,\n balance_transaction.currency as balance_transaction_currency,\n balance_transaction.amount as balance_transaction_amount,\n balance_transaction.fee as balance_transaction_fee,\n balance_transaction.net as balance_transaction_net,\n balance_transaction.source as balance_transaction_source_id,\n balance_transaction.description as balance_transaction_description,\n balance_transaction.type as balance_transaction_type,\n coalesce(balance_transaction.reporting_category,\n case\n when balance_transaction.type in ('charge', 'payment') then 'charge'\n when balance_transaction.type in ('refund', 'payment_refund') then 'refund'\n when balance_transaction.type in ('payout_cancel', 'payout_failure') then 'payout_reversal'\n when balance_transaction.type in ('transfer', 'recipient_transfer') then 'transfer'\n when balance_transaction.type in ('transfer_cancel', 'transfer_failure', 'recipient_transfer_cancel', 'recipient_transfer_failure') then 'transfer_reversal'\n else balance_transaction.type end)\n as balance_transaction_reporting_category,\n case\n when balance_transaction.type in ('charge', 'payment') then charge.amount \n when balance_transaction.type in ('refund', 'payment_refund') then refund.amount\n when dispute_ids is not null then latest_disputes.latest_dispute_amount\n else null\n end as customer_facing_amount,\n case \n when balance_transaction.type = 'charge' then charge.currency \n end as customer_facing_currency,\n latest_disputes.latest_dispute_amount_won,\n latest_disputes.latest_dispute_amount_lost,\n latest_disputes.latest_dispute_amount_under_review,\n latest_disputes.latest_dispute_amount_needs_response,\n latest_disputes.latest_dispute_amount_warning_closed,\n latest_disputes.latest_dispute_amount_warning_under_review,\n latest_disputes.latest_dispute_amount_warning_needs_response,\n {{ dbt.dateadd('day', 1, 'balance_transaction.available_on') }} as effective_at,\n {% if var('stripe__using_payouts', True) %}\n case\n when payout.is_automatic = true then payout.payout_id\n else null\n end as automatic_payout_id,\n payout.payout_id,\n payout.created_at as payout_created_at,\n payout.currency as payout_currency,\n payout.is_automatic as payout_is_automatic,\n payout.arrival_date_at as payout_arrival_date_at,\n case\n when payout.is_automatic = true then payout.arrival_date_at\n else null\n end as automatic_payout_effective_at,\n payout.type as payout_type,\n payout.status as payout_status,\n payout.description as payout_description,\n payout.destination_bank_account_id,\n payout.destination_card_id,\n -- Checks if this balance transaction matches the most recent balance_transaction_id recorded in PAYOUT.\n payout_balance_transaction_unified.balance_transaction_id = payout.balance_transaction_id as payout_balance_transaction_is_current,\n {% endif %}\n coalesce(charge.customer_id, refund_charge.customer_id) as customer_id,\n charge.receipt_email,\n customer.email as customer_email,\n customer.customer_name,\n customer.description as customer_description,\n customer.shipping_address_line_1 as customer_shipping_address_line_1,\n customer.shipping_address_line_2 as customer_shipping_address_line_2,\n customer.shipping_address_city as customer_shipping_address_city,\n customer.shipping_address_state as customer_shipping_address_state,\n customer.shipping_address_postal_code as customer_shipping_address_postal_code,\n customer.shipping_address_country as customer_shipping_address_country,\n customer.customer_address_line_1,\n customer.customer_address_line_2,\n customer.customer_address_city,\n customer.customer_address_state,\n customer.customer_address_postal_code,\n customer.customer_address_country,\n {{ stripe.select_metadata_columns('customer', 'stripe__customer_metadata') }}\n charge.shipping_address_line_1 as charge_shipping_address_line_1,\n charge.shipping_address_line_2 as charge_shipping_address_line_2,\n charge.shipping_address_city as charge_shipping_address_city,\n charge.shipping_address_state as charge_shipping_address_state,\n charge.shipping_address_postal_code as charge_shipping_address_postal_code,\n charge.shipping_address_country as charge_shipping_address_country,\n cards.card_address_line_1,\n cards.card_address_line_2,\n cards.card_address_city,\n cards.card_address_state,\n cards.card_address_postal_code,\n cards.card_address_country,\n coalesce(charge.charge_id, refund.charge_id, dispute_summary.charge_id) as charge_id,\n charge.created_at as charge_created_at,\n {{ stripe.select_metadata_columns('charge', 'stripe__charge_metadata') }}\n payment_intent.payment_intent_id,\n\n {% if var('stripe__using_invoices', True) %}\n invoice.invoice_id,\n invoice.number as invoice_number,\n {{ stripe.select_metadata_columns('invoice', 'stripe__invoice_metadata') }}\n {% endif %}\n\n {% if var('stripe__using_subscriptions', True) %}\n subscription.subscription_id,\n {{ stripe.select_metadata_columns('subscription', 'stripe__subscription_metadata') }}\n {% endif %}\n\n {% if var('stripe__using_payment_method', True) %}\n payment_method.type as payment_method_type,\n payment_method_card.brand as payment_method_brand,\n payment_method_card.funding as payment_method_funding,\n {% endif %}\n\n cards.brand as card_brand,\n cards.funding as card_funding,\n cards.country as card_country,\n charge.statement_descriptor as charge_statement_descriptor,\n dispute_summary.dispute_ids,\n dispute_summary.dispute_reasons,\n dispute_summary.dispute_count,\n refund.refund_id,\n refund.reason as refund_reason,\n\n {% if var('stripe__using_transfers', True) %}\n transfers.transfer_id,\n {% endif %}\n \n coalesce(balance_transaction.connected_account_id, charge.connected_account_id) as connected_account_id,\n connected_account.country as connected_account_country,\n case \n when charge.connected_account_id is not null then charge.charge_id\n else null\n end as connected_account_direct_charge_id,\n balance_transaction.source_relation\n\nfrom balance_transaction\n\n{% if var('stripe__using_payouts', True) %}\nleft join payout_balance_transaction_unified\n on payout_balance_transaction_unified.balance_transaction_id = balance_transaction.balance_transaction_id\n and payout_balance_transaction_unified.source_relation = balance_transaction.source_relation\nleft join payout\n on payout.payout_id = payout_balance_transaction_unified.payout_id\n and payout.source_relation = payout_balance_transaction_unified.source_relation\n{% endif %}\n\nleft join account connected_account\n on balance_transaction.connected_account_id = connected_account.account_id\n and balance_transaction.source_relation = connected_account.source_relation\nleft join charge\n on charge.balance_transaction_id = balance_transaction.balance_transaction_id\n and charge.source_relation = balance_transaction.source_relation\nleft join customer \n on charge.customer_id = customer.customer_id\n and charge.source_relation = customer.source_relation\nleft join cards\n on charge.card_id = cards.card_id\n and charge.source_relation = cards.source_relation\nleft join payment_intent\n on charge.payment_intent_id = payment_intent.payment_intent_id\n and charge.source_relation = payment_intent.source_relation\n\n{% if var('stripe__using_payment_method', True) %}\nleft join payment_method\n on charge.payment_method_id = payment_method.payment_method_id\n and charge.source_relation = payment_method.source_relation\nleft join payment_method_card \n on payment_method_card.payment_method_id = payment_method.payment_method_id\n and charge.source_relation = balance_transaction.source_relation\n{% endif %}\n\n{% if var('stripe__using_invoices', True) %}\nleft join invoice \n on charge.invoice_id = invoice.invoice_id\n and charge.source_relation = invoice.source_relation\n{% endif %}\n\n{% if var('stripe__using_subscriptions', True) %}\nleft join subscription\n on subscription.latest_invoice_id = charge.invoice_id\n and subscription.source_relation = charge.source_relation\n{% endif %}\n\nleft join refund\n on refund.balance_transaction_id = balance_transaction.balance_transaction_id\n and refund.source_relation = balance_transaction.source_relation\n\n{% if var('stripe__using_transfers', True) %}\nleft join transfers\n on transfers.balance_transaction_id = balance_transaction.balance_transaction_id\n and transfers.source_relation = balance_transaction.source_relation\n{% endif %}\n\nleft join charge as refund_charge \n on refund.charge_id = refund_charge.charge_id\n and refund.source_relation = refund_charge.source_relation\nleft join dispute_summary\n on charge.charge_id = dispute_summary.charge_id\n and charge.source_relation = dispute_summary.source_relation\nleft join latest_disputes\n on charge.charge_id = latest_disputes.charge_id\n and charge.source_relation = latest_disputes.source_relation", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__balance_transaction", "package": null, "version": null}, {"name": "stg_stripe__account", "package": null, "version": null}, {"name": "stg_stripe__card", "package": null, "version": null}, {"name": "stg_stripe__charge", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}, {"name": "stg_stripe__dispute", "package": null, "version": null}, {"name": "stg_stripe__invoice", "package": null, "version": null}, {"name": "stg_stripe__payment_intent", "package": null, "version": null}, {"name": "stg_stripe__payment_method", "package": null, "version": null}, {"name": "stg_stripe__payment_method_card", "package": null, "version": null}, {"name": "stg_stripe__payout", "package": null, "version": null}, {"name": "stg_stripe__payout_balance_transaction", "package": null, "version": null}, {"name": "stg_stripe__refund", "package": null, "version": null}, {"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "stg_stripe__transfer", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.string_agg", "macro.fivetran_utils.partition_by_source_relation", "macro.dbt.dateadd", "macro.stripe.select_metadata_columns"], "nodes": ["model.stripe.stg_stripe__balance_transaction", "model.stripe.stg_stripe__account", "model.stripe.stg_stripe__card", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__customer", "model.stripe.stg_stripe__dispute", "model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__payment_intent", "model.stripe.stg_stripe__payment_method", "model.stripe.stg_stripe__payment_method_card", "model.stripe.stg_stripe__payout", "model.stripe.stg_stripe__payout_balance_transaction", "model.stripe.stg_stripe__refund", "model.stripe.stg_stripe__subscription", "model.stripe.stg_stripe__transfer"]}, "compiled_path": "target/compiled/stripe/models/stripe__balance_transactions.sql", "compiled": true, "compiled_code": "with balance_transaction as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__balance_transaction\"\n\n), account as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__account\"\n\n), cards as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__card\"\n\n), charge as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\"\n\n), customer as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\"\n\n), dispute as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__dispute\"\n\n\n), invoice as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice\"\n\n\n\n), payment_intent as (\n \n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_intent\"\n\n\n), payment_method as (\n \n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method\"\n\n), payment_method_card as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_card\"\n\n\n\n\n), payout as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payout\"\n\n), payout_balance_transaction as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payout_balance_transaction\"\n\n), payout_balance_transaction_unified as (\n -- Create a unified mapping table to bridge records without mapping.\n select\n balance_transaction.source_relation,\n balance_transaction.balance_transaction_id,\n coalesce(payout_balance_transaction.payout_id, payout.payout_id) as payout_id\n from balance_transaction\n\n left join payout_balance_transaction\n on payout_balance_transaction.balance_transaction_id = balance_transaction.balance_transaction_id\n and payout_balance_transaction.source_relation = balance_transaction.source_relation\n left join payout\n on payout.balance_transaction_id = balance_transaction.balance_transaction_id\n and payout.source_relation = balance_transaction.source_relation\n\n\n\n), refund as (\n \n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__refund\"\n\n\n), subscription as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\"\n\n\n\n\n), transfers as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__transfer\"\n\n\n\n), dispute_summary as (\n /* Although rare, payments can be disputed multiple times. \n Hence, we need to aggregate the disputes to get the total disputed amount.\n */\n select\n charge_id,\n source_relation,\n \n string_agg(dispute_id, ',')\n\n as dispute_ids,\n \n string_agg(distinct dispute_reason, ',')\n\n as dispute_reasons,\n count(dispute_id) as dispute_count\n from dispute\n group by 1,2\n\n), order_disputes as (\n\n select \n charge_id,\n source_relation,\n dispute_id,\n dispute_status,\n dispute_amount,\n row_number() over (partition by charge_id, dispute_status order by dispute_created_at desc) = 1 as is_latest_status_dispute,\n row_number() over (partition by charge_id order by dispute_created_at desc, dispute_amount desc) = 1 as is_absolute_latest_dispute -- include dispute_amount desc in off chance of identical dispute_created_ats \n from dispute \n\n), latest_disputes as (\n\n select \n charge_id,\n source_relation,\n -- Iterate over each type of possible status (according https://docs.stripe.com/api/disputes/object) and pull out the dispute_amount from the latest dispute\n \n sum(case when lower(dispute_status) = 'won' then dispute_amount else 0 end) as latest_dispute_amount_won,\n \n sum(case when lower(dispute_status) = 'lost' then dispute_amount else 0 end) as latest_dispute_amount_lost,\n \n sum(case when lower(dispute_status) = 'under_review' then dispute_amount else 0 end) as latest_dispute_amount_under_review,\n \n sum(case when lower(dispute_status) = 'needs_response' then dispute_amount else 0 end) as latest_dispute_amount_needs_response,\n \n sum(case when lower(dispute_status) = 'warning_closed' then dispute_amount else 0 end) as latest_dispute_amount_warning_closed,\n \n sum(case when lower(dispute_status) = 'warning_under_review' then dispute_amount else 0 end) as latest_dispute_amount_warning_under_review,\n \n sum(case when lower(dispute_status) = 'warning_needs_response' then dispute_amount else 0 end) as latest_dispute_amount_warning_needs_response,\n \n -- For the customer_facing_amount fields, pull out the generally latest dispute_amount\n sum(case when is_absolute_latest_dispute then dispute_amount else 0 end) as latest_dispute_amount\n\n from order_disputes \n where is_latest_status_dispute\n group by 1,2\n)\n\nselect\n balance_transaction.balance_transaction_id,\n balance_transaction.created_at as balance_transaction_created_at,\n balance_transaction.available_on as balance_transaction_available_on,\n balance_transaction.currency as balance_transaction_currency,\n balance_transaction.amount as balance_transaction_amount,\n balance_transaction.fee as balance_transaction_fee,\n balance_transaction.net as balance_transaction_net,\n balance_transaction.source as balance_transaction_source_id,\n balance_transaction.description as balance_transaction_description,\n balance_transaction.type as balance_transaction_type,\n coalesce(balance_transaction.reporting_category,\n case\n when balance_transaction.type in ('charge', 'payment') then 'charge'\n when balance_transaction.type in ('refund', 'payment_refund') then 'refund'\n when balance_transaction.type in ('payout_cancel', 'payout_failure') then 'payout_reversal'\n when balance_transaction.type in ('transfer', 'recipient_transfer') then 'transfer'\n when balance_transaction.type in ('transfer_cancel', 'transfer_failure', 'recipient_transfer_cancel', 'recipient_transfer_failure') then 'transfer_reversal'\n else balance_transaction.type end)\n as balance_transaction_reporting_category,\n case\n when balance_transaction.type in ('charge', 'payment') then charge.amount \n when balance_transaction.type in ('refund', 'payment_refund') then refund.amount\n when dispute_ids is not null then latest_disputes.latest_dispute_amount\n else null\n end as customer_facing_amount,\n case \n when balance_transaction.type = 'charge' then charge.currency \n end as customer_facing_currency,\n latest_disputes.latest_dispute_amount_won,\n latest_disputes.latest_dispute_amount_lost,\n latest_disputes.latest_dispute_amount_under_review,\n latest_disputes.latest_dispute_amount_needs_response,\n latest_disputes.latest_dispute_amount_warning_closed,\n latest_disputes.latest_dispute_amount_warning_under_review,\n latest_disputes.latest_dispute_amount_warning_needs_response,\n \n\n balance_transaction.available_on + ((interval '1 day') * (1))\n\n as effective_at,\n \n case\n when payout.is_automatic = true then payout.payout_id\n else null\n end as automatic_payout_id,\n payout.payout_id,\n payout.created_at as payout_created_at,\n payout.currency as payout_currency,\n payout.is_automatic as payout_is_automatic,\n payout.arrival_date_at as payout_arrival_date_at,\n case\n when payout.is_automatic = true then payout.arrival_date_at\n else null\n end as automatic_payout_effective_at,\n payout.type as payout_type,\n payout.status as payout_status,\n payout.description as payout_description,\n payout.destination_bank_account_id,\n payout.destination_card_id,\n -- Checks if this balance transaction matches the most recent balance_transaction_id recorded in PAYOUT.\n payout_balance_transaction_unified.balance_transaction_id = payout.balance_transaction_id as payout_balance_transaction_is_current,\n \n coalesce(charge.customer_id, refund_charge.customer_id) as customer_id,\n charge.receipt_email,\n customer.email as customer_email,\n customer.customer_name,\n customer.description as customer_description,\n customer.shipping_address_line_1 as customer_shipping_address_line_1,\n customer.shipping_address_line_2 as customer_shipping_address_line_2,\n customer.shipping_address_city as customer_shipping_address_city,\n customer.shipping_address_state as customer_shipping_address_state,\n customer.shipping_address_postal_code as customer_shipping_address_postal_code,\n customer.shipping_address_country as customer_shipping_address_country,\n customer.customer_address_line_1,\n customer.customer_address_line_2,\n customer.customer_address_city,\n customer.customer_address_state,\n customer.customer_address_postal_code,\n customer.customer_address_country,\n \n charge.shipping_address_line_1 as charge_shipping_address_line_1,\n charge.shipping_address_line_2 as charge_shipping_address_line_2,\n charge.shipping_address_city as charge_shipping_address_city,\n charge.shipping_address_state as charge_shipping_address_state,\n charge.shipping_address_postal_code as charge_shipping_address_postal_code,\n charge.shipping_address_country as charge_shipping_address_country,\n cards.card_address_line_1,\n cards.card_address_line_2,\n cards.card_address_city,\n cards.card_address_state,\n cards.card_address_postal_code,\n cards.card_address_country,\n coalesce(charge.charge_id, refund.charge_id, dispute_summary.charge_id) as charge_id,\n charge.created_at as charge_created_at,\n \n payment_intent.payment_intent_id,\n\n \n invoice.invoice_id,\n invoice.number as invoice_number,\n \n \n\n \n subscription.subscription_id,\n \n \n\n \n payment_method.type as payment_method_type,\n payment_method_card.brand as payment_method_brand,\n payment_method_card.funding as payment_method_funding,\n \n\n cards.brand as card_brand,\n cards.funding as card_funding,\n cards.country as card_country,\n charge.statement_descriptor as charge_statement_descriptor,\n dispute_summary.dispute_ids,\n dispute_summary.dispute_reasons,\n dispute_summary.dispute_count,\n refund.refund_id,\n refund.reason as refund_reason,\n\n \n transfers.transfer_id,\n \n \n coalesce(balance_transaction.connected_account_id, charge.connected_account_id) as connected_account_id,\n connected_account.country as connected_account_country,\n case \n when charge.connected_account_id is not null then charge.charge_id\n else null\n end as connected_account_direct_charge_id,\n balance_transaction.source_relation\n\nfrom balance_transaction\n\n\nleft join payout_balance_transaction_unified\n on payout_balance_transaction_unified.balance_transaction_id = balance_transaction.balance_transaction_id\n and payout_balance_transaction_unified.source_relation = balance_transaction.source_relation\nleft join payout\n on payout.payout_id = payout_balance_transaction_unified.payout_id\n and payout.source_relation = payout_balance_transaction_unified.source_relation\n\n\nleft join account connected_account\n on balance_transaction.connected_account_id = connected_account.account_id\n and balance_transaction.source_relation = connected_account.source_relation\nleft join charge\n on charge.balance_transaction_id = balance_transaction.balance_transaction_id\n and charge.source_relation = balance_transaction.source_relation\nleft join customer \n on charge.customer_id = customer.customer_id\n and charge.source_relation = customer.source_relation\nleft join cards\n on charge.card_id = cards.card_id\n and charge.source_relation = cards.source_relation\nleft join payment_intent\n on charge.payment_intent_id = payment_intent.payment_intent_id\n and charge.source_relation = payment_intent.source_relation\n\n\nleft join payment_method\n on charge.payment_method_id = payment_method.payment_method_id\n and charge.source_relation = payment_method.source_relation\nleft join payment_method_card \n on payment_method_card.payment_method_id = payment_method.payment_method_id\n and charge.source_relation = balance_transaction.source_relation\n\n\n\nleft join invoice \n on charge.invoice_id = invoice.invoice_id\n and charge.source_relation = invoice.source_relation\n\n\n\nleft join subscription\n on subscription.latest_invoice_id = charge.invoice_id\n and subscription.source_relation = charge.source_relation\n\n\nleft join refund\n on refund.balance_transaction_id = balance_transaction.balance_transaction_id\n and refund.source_relation = balance_transaction.source_relation\n\n\nleft join transfers\n on transfers.balance_transaction_id = balance_transaction.balance_transaction_id\n and transfers.source_relation = balance_transaction.source_relation\n\n\nleft join charge as refund_charge \n on refund.charge_id = refund_charge.charge_id\n and refund.source_relation = refund_charge.source_relation\nleft join dispute_summary\n on charge.charge_id = dispute_summary.charge_id\n and charge.source_relation = dispute_summary.source_relation\nleft join latest_disputes\n on charge.charge_id = latest_disputes.charge_id\n and charge.source_relation = latest_disputes.source_relation", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__customer_overview": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__customer_overview", "resource_type": "model", "package_name": "stripe", "path": "stripe__customer_overview.sql", "original_file_path": "models/stripe__customer_overview.sql", "unique_id": "model.stripe.stripe__customer_overview", "fqn": ["stripe", "stripe__customer_overview"], "alias": "stripe__customer_overview", "checksum": {"name": "sha256", "checksum": "2fe08be7f2b204266a1fbc4e6dbd6b9dadf715cfbd324dbe4dbcdd5ede613ebf"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Each record represents a customer, enriched with metrics about their associated transactions.", "columns": {"customer_id": {"name": "customer_id", "description": "Unique identifier for each record from the Stripe customer object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "email": {"name": "email", "description": "Email address associated with the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_created_at": {"name": "customer_created_at", "description": "Timestamp of when the customer entry was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_delinquent": {"name": "is_delinquent", "description": "When the customer\u2019s latest invoice is billed by charging automatically, delinquent is true if the invoice\u2019s latest charge is failed. When the customer\u2019s latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total_sales": {"name": "total_sales", "description": "Sum of all charges made to this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total_refunds": {"name": "total_refunds", "description": "Sum of all refunds made to this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total_gross_transaction_amount": {"name": "total_gross_transaction_amount", "description": "Gross amount of all transactions made with this customer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_fees": {"name": "total_fees", "description": "Total fees charged on all transactions made with this customer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_net_transaction_amount": {"name": "total_net_transaction_amount", "description": "Net amount of all transactions made with this customer. This is the gross amount excluding fees, refunds, and disputes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_sales_count": {"name": "total_sales_count", "description": "The total number of sales made to this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total_refund_count": {"name": "total_refund_count", "description": "The total number of refunds made to this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "sales_this_month": {"name": "sales_this_month", "description": "Sum of charges made to this customer this month.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "refunds_this_month": {"name": "refunds_this_month", "description": "Sum of refunds made to this customer this month.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "gross_transaction_amount_this_month": {"name": "gross_transaction_amount_this_month", "description": "Gross amount of transactions made with this customer this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "fees_this_month": {"name": "fees_this_month", "description": "Total fees charged on transactions made with this customer this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "net_transaction_amount_this_month": {"name": "net_transaction_amount_this_month", "description": "Net amount of transactions made with this customer this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "sales_count_this_month": {"name": "sales_count_this_month", "description": "The number of sales made to this customer this month.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "refund_count_this_month": {"name": "refund_count_this_month", "description": "The number of refunds made to this customer this month.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "first_sale_date": {"name": "first_sale_date", "description": "Date of the first time this customer was charged.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "most_recent_sale_date": {"name": "most_recent_sale_date", "description": "Date of the most recent time this customer was charged.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total_failed_charge_count": {"name": "total_failed_charge_count", "description": "The total number of incomplete charges this customer has had.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total_failed_charge_amount": {"name": "total_failed_charge_amount", "description": "The total amount from incomplete charges this customer has had. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "failed_charge_count_this_month": {"name": "failed_charge_count_this_month", "description": "The number of incomplete charges this customer has had this month.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "failed_charge_amount_this_month": {"name": "failed_charge_amount_this_month", "description": "The amount from incomplete charges this customer has had this month. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "customer_currency": {"name": "customer_currency", "description": "Currency used by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "default_card_id": {"name": "default_card_id", "description": "ID of the default card used by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_name": {"name": "shipping_name", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_phone": {"name": "shipping_phone", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}, "phone": {"name": "phone", "description": "Customer's phone number.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Boolean reflecting whether the customer has been deleted in Stripe.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "bank_account_id": {"name": "bank_account_id", "description": "ID of the bank account associated with this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_balance": {"name": "customer_balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_state": {"name": "customer_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.state"]}, "customer_address_postal_code": {"name": "customer_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.postal_code"]}, "customer_address_line_1": {"name": "customer_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.line_1"]}, "customer_address_line_2": {"name": "customer_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.line_2"]}, "customer_address_country": {"name": "customer_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.country"]}, "customer_address_city": {"name": "customer_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.city"]}, "account_balance": {"name": "account_balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.7800994, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__customer_overview\"", "raw_code": "with balance_transaction_joined as (\n\n select *\n from {{ ref('stripe__balance_transactions') }} \n\n), incomplete_charges as (\n\n select *\n from {{ ref('int_stripe__incomplete_charges') }} \n\n), customer as (\n\n select *\n from {{ ref('stg_stripe__customer') }} \n\n), transactions_grouped as (\n\n select\n customer_id,\n source_relation,\n sum(\n case \n when balance_transaction_type in ('charge', 'payment') \n then balance_transaction_amount\n else 0 \n end) \n as total_sales,\n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') \n then balance_transaction_amount\n else 0 \n end) \n as total_refunds, \n sum(balance_transaction_amount) as total_gross_transaction_amount,\n sum(balance_transaction_fee) as total_fees,\n sum(balance_transaction_net) as total_net_transaction_amount,\n sum(\n case \n when balance_transaction_type in ('charge', 'payment') \n then 1\n else 0 \n end) \n as total_sales_count, \n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') \n then 1\n else 0 \n end) \n as total_refund_count, \n sum(\n case \n when balance_transaction_type in ('charge', 'payment') and {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then balance_transaction_amount \n else 0 \n end) \n as sales_this_month,\n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') and {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then balance_transaction_amount \n else 0 \n end) \n as refunds_this_month,\n sum(\n case \n when {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then balance_transaction_amount \n else 0 \n end) \n as gross_transaction_amount_this_month,\n sum(\n case \n when {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then balance_transaction_fee \n else 0 \n end) \n as fees_this_month,\n sum(\n case \n when {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then balance_transaction_net \n else 0 \n end) \n as net_transaction_amount_this_month,\n sum(\n case \n when balance_transaction_type in ('charge', 'payment') and {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then 1 \n else 0 \n end) \n as sales_count_this_month,\n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') and {{ dbt.date_trunc('month', date_timezone('balance_transaction_created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then 1 \n else 0 \n end) \n as refund_count_this_month,\n min(\n case \n when balance_transaction_type in ('charge', 'payment') \n then {{ date_timezone('balance_transaction_created_at') }}\n else null \n end) \n as first_sale_date,\n max(\n case \n when balance_transaction_type in ('charge', 'payment') \n then {{ date_timezone('balance_transaction_created_at') }}\n else null \n end) \n as most_recent_sale_date\n from balance_transaction_joined\n where balance_transaction_type in ('payment', 'charge', 'payment_refund', 'refund')\n group by 1,2\n\n), failed_charges_by_customer as (\n\n select\n customer_id,\n source_relation,\n count(*) as total_failed_charge_count,\n sum(amount) as total_failed_charge_amount,\n sum(\n case \n when {{ dbt.date_trunc('month', date_timezone('created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then 1\n else 0 \n end) \n as failed_charge_count_this_month,\n sum(\n case \n when {{ dbt.date_trunc('month', date_timezone('created_at')) }} = {{ dbt.date_trunc('month', date_timezone(dbt.current_timestamp_backcompat())) }}\n then amount\n else 0 \n end) \n as failed_charge_amount_this_month\n from incomplete_charges\n group by 1,2\n\n), transactions_not_associated_with_customer as (\n\n select\n 'No Customer ID' as customer_id,\n 'No Associated Customer' as customer_description,\n customer.created_at as customer_created_at,\n customer.currency as customer_currency,\n {{ dbt_utils.star(from=ref('stg_stripe__customer'), relation_alias='customer', except=['customer_id','description','created_at','currency','metadata','source_relation']) }},\n coalesce(transactions_grouped.total_sales, 0) as total_sales,\n coalesce(transactions_grouped.total_refunds, 0) as total_refunds,\n coalesce(transactions_grouped.total_gross_transaction_amount, 0) as total_gross_transaction_amount,\n coalesce(transactions_grouped.total_fees, 0) as total_fees,\n coalesce(transactions_grouped.total_net_transaction_amount, 0) as total_net_transaction_amount,\n coalesce(transactions_grouped.total_sales_count, 0) as total_sales_count,\n coalesce(transactions_grouped.total_refund_count, 0) as total_refund_count, \n coalesce(transactions_grouped.sales_this_month, 0) as sales_this_month,\n coalesce(transactions_grouped.refunds_this_month, 0) as refunds_this_month,\n coalesce(transactions_grouped.gross_transaction_amount_this_month, 0) as gross_transaction_amount_this_month,\n coalesce(transactions_grouped.fees_this_month, 0) as fees_this_month,\n coalesce(transactions_grouped.net_transaction_amount_this_month, 0) as net_transaction_amount_this_month,\n coalesce(transactions_grouped.sales_count_this_month, 0) as sales_count_this_month,\n coalesce(transactions_grouped.refund_count_this_month, 0) as refund_count_this_month,\n transactions_grouped.first_sale_date,\n transactions_grouped.most_recent_sale_date,\n 0 as total_failed_charge_count,\n 0 as total_failed_charge_amount,\n 0 as failed_charge_count_this_month,\n 0 as failed_charge_amount_this_month,\n transactions_grouped.source_relation\n\n from transactions_grouped\n left join customer \n on transactions_grouped.customer_id = customer.customer_id\n and transactions_grouped.source_relation = customer.source_relation\n where customer.customer_id is null and customer.description is null\n\n\n), customer_transactions_overview as (\n\n select\n customer.customer_id,\n customer.description as customer_description,\n customer.created_at as customer_created_at,\n customer.currency as customer_currency,\n {{ dbt_utils.star(from=ref('stg_stripe__customer'), relation_alias='customer', except=['customer_id','description','created_at','currency','metadata','source_relation']) }},\n coalesce(transactions_grouped.total_sales, 0) as total_sales,\n coalesce(transactions_grouped.total_refunds, 0) as total_refunds,\n coalesce(transactions_grouped.total_gross_transaction_amount, 0) as total_gross_transaction_amount,\n coalesce(transactions_grouped.total_fees, 0) as total_fees,\n coalesce(transactions_grouped.total_net_transaction_amount, 0) as total_net_transaction_amount,\n coalesce(transactions_grouped.total_sales_count, 0) as total_sales_count,\n coalesce(transactions_grouped.total_refund_count, 0) as total_refund_count, \n coalesce(transactions_grouped.sales_this_month, 0) as sales_this_month,\n coalesce(transactions_grouped.refunds_this_month, 0) as refunds_this_month,\n coalesce(transactions_grouped.gross_transaction_amount_this_month, 0) as gross_transaction_amount_this_month,\n coalesce(transactions_grouped.fees_this_month, 0) as fees_this_month,\n coalesce(transactions_grouped.net_transaction_amount_this_month, 0) as net_transaction_amount_this_month,\n coalesce(transactions_grouped.sales_count_this_month, 0) as sales_count_this_month,\n coalesce(transactions_grouped.refund_count_this_month, 0) as refund_count_this_month,\n transactions_grouped.first_sale_date,\n transactions_grouped.most_recent_sale_date,\n coalesce(failed_charges_by_customer.total_failed_charge_count, 0) as total_failed_charge_count,\n coalesce(failed_charges_by_customer.total_failed_charge_amount, 0) as total_failed_charge_amount,\n coalesce(failed_charges_by_customer.failed_charge_count_this_month, 0) as failed_charge_count_this_month,\n coalesce(failed_charges_by_customer.failed_charge_amount_this_month, 0) as failed_charge_amount_this_month,\n customer.source_relation\n\n \n from customer\n left join transactions_grouped\n on customer.customer_id = transactions_grouped.customer_id\n and customer.source_relation = transactions_grouped.source_relation\n left join failed_charges_by_customer \n on customer.customer_id = failed_charges_by_customer.customer_id\n and customer.source_relation = failed_charges_by_customer.source_relation\n)\n\nselect *\nfrom transactions_not_associated_with_customer\nunion all \nselect *\nfrom customer_transactions_overview", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__balance_transactions", "package": null, "version": null}, {"name": "int_stripe__incomplete_charges", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.date_timezone", "macro.dbt.date_trunc", "macro.dbt.current_timestamp_backcompat", "macro.dbt_utils.star"], "nodes": ["model.stripe.stripe__balance_transactions", "model.stripe.int_stripe__incomplete_charges", "model.stripe.stg_stripe__customer"]}, "compiled_path": "target/compiled/stripe/models/stripe__customer_overview.sql", "compiled": true, "compiled_code": "with balance_transaction_joined as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\" \n\n), incomplete_charges as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"int_stripe__incomplete_charges\" \n\n), customer as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\" \n\n), transactions_grouped as (\n\n select\n customer_id,\n source_relation,\n sum(\n case \n when balance_transaction_type in ('charge', 'payment') \n then balance_transaction_amount\n else 0 \n end) \n as total_sales,\n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') \n then balance_transaction_amount\n else 0 \n end) \n as total_refunds, \n sum(balance_transaction_amount) as total_gross_transaction_amount,\n sum(balance_transaction_fee) as total_fees,\n sum(balance_transaction_net) as total_net_transaction_amount,\n sum(\n case \n when balance_transaction_type in ('charge', 'payment') \n then 1\n else 0 \n end) \n as total_sales_count, \n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') \n then 1\n else 0 \n end) \n as total_refund_count, \n sum(\n case \n when balance_transaction_type in ('charge', 'payment') and date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then balance_transaction_amount \n else 0 \n end) \n as sales_this_month,\n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') and date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then balance_transaction_amount \n else 0 \n end) \n as refunds_this_month,\n sum(\n case \n when date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then balance_transaction_amount \n else 0 \n end) \n as gross_transaction_amount_this_month,\n sum(\n case \n when date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then balance_transaction_fee \n else 0 \n end) \n as fees_this_month,\n sum(\n case \n when date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then balance_transaction_net \n else 0 \n end) \n as net_transaction_amount_this_month,\n sum(\n case \n when balance_transaction_type in ('charge', 'payment') and date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then 1 \n else 0 \n end) \n as sales_count_this_month,\n sum(\n case \n when balance_transaction_type in ('payment_refund', 'refund') and date_trunc('month', \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then 1 \n else 0 \n end) \n as refund_count_this_month,\n min(\n case \n when balance_transaction_type in ('charge', 'payment') \n then \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)\n else null \n end) \n as first_sale_date,\n max(\n case \n when balance_transaction_type in ('charge', 'payment') \n then \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)\n else null \n end) \n as most_recent_sale_date\n from balance_transaction_joined\n where balance_transaction_type in ('payment', 'charge', 'payment_refund', 'refund')\n group by 1,2\n\n), failed_charges_by_customer as (\n\n select\n customer_id,\n source_relation,\n count(*) as total_failed_charge_count,\n sum(amount) as total_failed_charge_amount,\n sum(\n case \n when date_trunc('month', \n\ndate_trunc('day', \n\n\n created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then 1\n else 0 \n end) \n as failed_charge_count_this_month,\n sum(\n case \n when date_trunc('month', \n\ndate_trunc('day', \n\n\n created_at\n\n\n)) = date_trunc('month', \n\ndate_trunc('day', \n\n\n \n current_timestamp::timestamp\n\n\n\n))\n then amount\n else 0 \n end) \n as failed_charge_amount_this_month\n from incomplete_charges\n group by 1,2\n\n), transactions_not_associated_with_customer as (\n\n select\n 'No Customer ID' as customer_id,\n 'No Associated Customer' as customer_description,\n customer.created_at as customer_created_at,\n customer.currency as customer_currency,\n customer.\"account_balance\",\n customer.\"customer_address_city\",\n customer.\"customer_address_country\",\n customer.\"customer_address_line_1\",\n customer.\"customer_address_line_2\",\n customer.\"customer_address_postal_code\",\n customer.\"customer_address_state\",\n customer.\"customer_balance\",\n customer.\"bank_account_id\",\n customer.\"default_card_id\",\n customer.\"is_delinquent\",\n customer.\"email\",\n customer.\"customer_name\",\n customer.\"phone\",\n customer.\"shipping_address_city\",\n customer.\"shipping_address_country\",\n customer.\"shipping_address_line_1\",\n customer.\"shipping_address_line_2\",\n customer.\"shipping_address_postal_code\",\n customer.\"shipping_address_state\",\n customer.\"shipping_name\",\n customer.\"shipping_phone\",\n customer.\"is_deleted\",\n coalesce(transactions_grouped.total_sales, 0) as total_sales,\n coalesce(transactions_grouped.total_refunds, 0) as total_refunds,\n coalesce(transactions_grouped.total_gross_transaction_amount, 0) as total_gross_transaction_amount,\n coalesce(transactions_grouped.total_fees, 0) as total_fees,\n coalesce(transactions_grouped.total_net_transaction_amount, 0) as total_net_transaction_amount,\n coalesce(transactions_grouped.total_sales_count, 0) as total_sales_count,\n coalesce(transactions_grouped.total_refund_count, 0) as total_refund_count, \n coalesce(transactions_grouped.sales_this_month, 0) as sales_this_month,\n coalesce(transactions_grouped.refunds_this_month, 0) as refunds_this_month,\n coalesce(transactions_grouped.gross_transaction_amount_this_month, 0) as gross_transaction_amount_this_month,\n coalesce(transactions_grouped.fees_this_month, 0) as fees_this_month,\n coalesce(transactions_grouped.net_transaction_amount_this_month, 0) as net_transaction_amount_this_month,\n coalesce(transactions_grouped.sales_count_this_month, 0) as sales_count_this_month,\n coalesce(transactions_grouped.refund_count_this_month, 0) as refund_count_this_month,\n transactions_grouped.first_sale_date,\n transactions_grouped.most_recent_sale_date,\n 0 as total_failed_charge_count,\n 0 as total_failed_charge_amount,\n 0 as failed_charge_count_this_month,\n 0 as failed_charge_amount_this_month,\n transactions_grouped.source_relation\n\n from transactions_grouped\n left join customer \n on transactions_grouped.customer_id = customer.customer_id\n and transactions_grouped.source_relation = customer.source_relation\n where customer.customer_id is null and customer.description is null\n\n\n), customer_transactions_overview as (\n\n select\n customer.customer_id,\n customer.description as customer_description,\n customer.created_at as customer_created_at,\n customer.currency as customer_currency,\n customer.\"account_balance\",\n customer.\"customer_address_city\",\n customer.\"customer_address_country\",\n customer.\"customer_address_line_1\",\n customer.\"customer_address_line_2\",\n customer.\"customer_address_postal_code\",\n customer.\"customer_address_state\",\n customer.\"customer_balance\",\n customer.\"bank_account_id\",\n customer.\"default_card_id\",\n customer.\"is_delinquent\",\n customer.\"email\",\n customer.\"customer_name\",\n customer.\"phone\",\n customer.\"shipping_address_city\",\n customer.\"shipping_address_country\",\n customer.\"shipping_address_line_1\",\n customer.\"shipping_address_line_2\",\n customer.\"shipping_address_postal_code\",\n customer.\"shipping_address_state\",\n customer.\"shipping_name\",\n customer.\"shipping_phone\",\n customer.\"is_deleted\",\n coalesce(transactions_grouped.total_sales, 0) as total_sales,\n coalesce(transactions_grouped.total_refunds, 0) as total_refunds,\n coalesce(transactions_grouped.total_gross_transaction_amount, 0) as total_gross_transaction_amount,\n coalesce(transactions_grouped.total_fees, 0) as total_fees,\n coalesce(transactions_grouped.total_net_transaction_amount, 0) as total_net_transaction_amount,\n coalesce(transactions_grouped.total_sales_count, 0) as total_sales_count,\n coalesce(transactions_grouped.total_refund_count, 0) as total_refund_count, \n coalesce(transactions_grouped.sales_this_month, 0) as sales_this_month,\n coalesce(transactions_grouped.refunds_this_month, 0) as refunds_this_month,\n coalesce(transactions_grouped.gross_transaction_amount_this_month, 0) as gross_transaction_amount_this_month,\n coalesce(transactions_grouped.fees_this_month, 0) as fees_this_month,\n coalesce(transactions_grouped.net_transaction_amount_this_month, 0) as net_transaction_amount_this_month,\n coalesce(transactions_grouped.sales_count_this_month, 0) as sales_count_this_month,\n coalesce(transactions_grouped.refund_count_this_month, 0) as refund_count_this_month,\n transactions_grouped.first_sale_date,\n transactions_grouped.most_recent_sale_date,\n coalesce(failed_charges_by_customer.total_failed_charge_count, 0) as total_failed_charge_count,\n coalesce(failed_charges_by_customer.total_failed_charge_amount, 0) as total_failed_charge_amount,\n coalesce(failed_charges_by_customer.failed_charge_count_this_month, 0) as failed_charge_count_this_month,\n coalesce(failed_charges_by_customer.failed_charge_amount_this_month, 0) as failed_charge_amount_this_month,\n customer.source_relation\n\n \n from customer\n left join transactions_grouped\n on customer.customer_id = transactions_grouped.customer_id\n and customer.source_relation = transactions_grouped.source_relation\n left join failed_charges_by_customer \n on customer.customer_id = failed_charges_by_customer.customer_id\n and customer.source_relation = failed_charges_by_customer.source_relation\n)\n\nselect *\nfrom transactions_not_associated_with_customer\nunion all \nselect *\nfrom customer_transactions_overview", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__subscription_details": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__subscription_details", "resource_type": "model", "package_name": "stripe", "path": "stripe__subscription_details.sql", "original_file_path": "models/stripe__subscription_details.sql", "unique_id": "model.stripe.stripe__subscription_details", "fqn": ["stripe", "stripe__subscription_details"], "alias": "stripe__subscription_details", "checksum": {"name": "sha256", "checksum": "22072c10a1d24afa204ae9986f0e17cbc3936bbd8de9c6ed42d73870c6e9a2fd"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Each record represents a subscription, enriched with customer details and payment aggregations.", "columns": {"subscription_id": {"name": "subscription_id", "description": "Unique identifier for the subscription object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the customer who owns the subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "Description of the customer who owns the subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "Email of the customer who owns the subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "start_date_at": {"name": "start_date_at", "description": "Date when the subscription was first created. The date might differ from the created date due to backdating.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "ended_at": {"name": "ended_at", "description": "If the subscription has ended, the date the subscription ended.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing": {"name": "billing", "description": "How the description is billed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_cycle_anchor": {"name": "billing_cycle_anchor", "description": "Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "canceled_at": {"name": "canceled_at", "description": "If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with cancel_at_period_end, canceled_at will still reflect the date of the initial cancellation request, not the end of the subscription period when the subscription is automatically moved to a canceled state.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the subscription object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "current_period_start": {"name": "current_period_start", "description": "Start of the current period that the subscription has been invoiced for.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "current_period_end": {"name": "current_period_end", "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "days_until_due": {"name": "days_until_due", "description": "Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_cancel_at_period_end": {"name": "is_cancel_at_period_end", "description": "If the subscription has been canceled with the at_period_end flag set to true, cancel_at_period_end on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "cancel_at": {"name": "cancel_at", "description": "A date in the future at which the subscription will automatically get canceled", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "number_invoices_generated": {"name": "number_invoices_generated", "description": "Number of invoices that have been generated for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total_amount_billed": {"name": "total_amount_billed", "description": "The total amount that has been billed to the customer for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_amount_paid": {"name": "total_amount_paid", "description": "The total amount paid by the customer for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_amount_remaining": {"name": "total_amount_remaining", "description": "Any outstanding balance for invoices related to this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "most_recent_invoice_created_at": {"name": "most_recent_invoice_created_at", "description": "The timestamp of the most recent invoice for this subscription created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "average_invoice_amount": {"name": "average_invoice_amount", "description": "The average amount of invoices generated for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "average_line_item_amount": {"name": "average_line_item_amount", "description": "The average sum of the line items for invoices generated for this subscription. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "avg_num_line_items": {"name": "avg_num_line_items", "description": "The average number of line items for invoices generated for this subscription", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "fivetran_utils.enabled_vars(['stripe__using_invoices', 'stripe__using_subscriptions'])", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.808275, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__subscription_details\"", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['stripe__using_invoices','stripe__using_subscriptions'])) }}\n\nwith invoice as (\n\n select *\n from {{ ref('stg_stripe__invoice') }} \n\n), charge as (\n\n select *\n from {{ ref('stg_stripe__charge') }} \n\n), invoice_line_item as (\n\n select *\n from {{ ref('stg_stripe__invoice_line_item') }} \n\n), subscription as (\n\n select *\n from {{ ref('stg_stripe__subscription') }} \n\n), subscription_item as (\n\n select *\n from {{ ref('int_stripe__deduped_subscription_item') }} \n\n), customer as (\n\n select *\n from {{ ref('stg_stripe__customer') }} \n\n), line_items_groups as (\n\n select\n invoice.invoice_id,\n invoice.amount_due,\n invoice.amount_paid,\n invoice.amount_remaining,\n invoice.created_at,\n invoice.source_relation,\n max(invoice_line_item.subscription_id) as subscription_id,\n coalesce(sum(invoice_line_item.amount),0) as total_line_item_amount,\n coalesce(count(distinct invoice_line_item.unique_invoice_line_item_id),0) as number_of_line_items\n from invoice_line_item\n join invoice \n on invoice.invoice_id = invoice_line_item.invoice_id\n group by 1, 2, 3, 4, 5, 6\n\n), grouped_by_subscription as (\n\n select\n subscription_id,\n source_relation,\n count(distinct invoice_id) as number_invoices_generated,\n sum(amount_due) as total_amount_billed,\n sum(amount_paid) as total_amount_paid,\n sum(amount_remaining) total_amount_remaining,\n max(created_at) as most_recent_invoice_created_at,\n avg(amount_due) as average_invoice_amount,\n avg(total_line_item_amount) as average_line_item_amount,\n avg(number_of_line_items) as avg_num_line_items\n from line_items_groups\n group by 1, 2\n\n)\n\n\nselect\n subscription.subscription_id,\n subscription.customer_id,\n customer.description as customer_description,\n customer.email as customer_email,\n {{ stripe.select_metadata_columns('customer', 'stripe__customer_metadata') }}\n subscription.status,\n subscription.start_date_at,\n subscription.ended_at,\n subscription.billing,\n subscription.billing_cycle_anchor,\n subscription.canceled_at,\n subscription.created_at,\n --Newer Stripe connections will store current_period_start/end fields in SUBSCRIPTION_ITEM while older ones house these fields in SUBSCRIPTION_HISTORY -> grab both and coalesce\n coalesce(subscription.current_period_start, subscription_item.current_period_start) as current_period_start,\n coalesce(subscription.current_period_end, subscription_item.current_period_end) as current_period_end,\n subscription.days_until_due,\n subscription.is_cancel_at_period_end,\n subscription.cancel_at,\n {{ stripe.select_metadata_columns('subscription', 'stripe__subscription_metadata') }}\n number_invoices_generated,\n total_amount_billed,\n total_amount_paid,\n total_amount_remaining,\n most_recent_invoice_created_at,\n average_invoice_amount,\n average_line_item_amount,\n avg_num_line_items,\n subscription.source_relation\nfrom subscription\nleft join subscription_item\n on subscription.subscription_id = subscription_item.subscription_id\n and subscription.source_relation = subscription_item.source_relation\nleft join grouped_by_subscription \n on subscription.subscription_id = grouped_by_subscription.subscription_id\n and subscription.source_relation = grouped_by_subscription.source_relation\nleft join customer\n on subscription.customer_id = customer.customer_id\n and subscription.source_relation = customer.source_relation", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice", "package": null, "version": null}, {"name": "stg_stripe__charge", "package": null, "version": null}, {"name": "stg_stripe__invoice_line_item", "package": null, "version": null}, {"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "int_stripe__deduped_subscription_item", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars", "macro.stripe.select_metadata_columns"], "nodes": ["model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__subscription", "model.stripe.int_stripe__deduped_subscription_item", "model.stripe.stg_stripe__customer"]}, "compiled_path": "target/compiled/stripe/models/stripe__subscription_details.sql", "compiled": true, "compiled_code": "\n\nwith __dbt__cte__int_stripe__deduped_subscription_item as (\nwith subscription_item as ( \n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\n\n)\n\n/*\nSUBSCRIPTION_ITEM allows for one-to-many relationships between subscriptions and plans, so we need to dedupe to the subscription_id level\n*/\n\nselect\n subscription_id,\n source_relation,\n min(current_period_start) as current_period_start,\n max(current_period_end) as current_period_end\n \nfrom subscription_item\ngroup by 1, 2\n), invoice as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice\" \n\n), charge as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\" \n\n), invoice_line_item as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\" \n\n), subscription as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\" \n\n), subscription_item as (\n\n select *\n from __dbt__cte__int_stripe__deduped_subscription_item \n\n), customer as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\" \n\n), line_items_groups as (\n\n select\n invoice.invoice_id,\n invoice.amount_due,\n invoice.amount_paid,\n invoice.amount_remaining,\n invoice.created_at,\n invoice.source_relation,\n max(invoice_line_item.subscription_id) as subscription_id,\n coalesce(sum(invoice_line_item.amount),0) as total_line_item_amount,\n coalesce(count(distinct invoice_line_item.unique_invoice_line_item_id),0) as number_of_line_items\n from invoice_line_item\n join invoice \n on invoice.invoice_id = invoice_line_item.invoice_id\n group by 1, 2, 3, 4, 5, 6\n\n), grouped_by_subscription as (\n\n select\n subscription_id,\n source_relation,\n count(distinct invoice_id) as number_invoices_generated,\n sum(amount_due) as total_amount_billed,\n sum(amount_paid) as total_amount_paid,\n sum(amount_remaining) total_amount_remaining,\n max(created_at) as most_recent_invoice_created_at,\n avg(amount_due) as average_invoice_amount,\n avg(total_line_item_amount) as average_line_item_amount,\n avg(number_of_line_items) as avg_num_line_items\n from line_items_groups\n group by 1, 2\n\n)\n\n\nselect\n subscription.subscription_id,\n subscription.customer_id,\n customer.description as customer_description,\n customer.email as customer_email,\n \n subscription.status,\n subscription.start_date_at,\n subscription.ended_at,\n subscription.billing,\n subscription.billing_cycle_anchor,\n subscription.canceled_at,\n subscription.created_at,\n --Newer Stripe connections will store current_period_start/end fields in SUBSCRIPTION_ITEM while older ones house these fields in SUBSCRIPTION_HISTORY -> grab both and coalesce\n coalesce(subscription.current_period_start, subscription_item.current_period_start) as current_period_start,\n coalesce(subscription.current_period_end, subscription_item.current_period_end) as current_period_end,\n subscription.days_until_due,\n subscription.is_cancel_at_period_end,\n subscription.cancel_at,\n \n number_invoices_generated,\n total_amount_billed,\n total_amount_paid,\n total_amount_remaining,\n most_recent_invoice_created_at,\n average_invoice_amount,\n average_line_item_amount,\n avg_num_line_items,\n subscription.source_relation\nfrom subscription\nleft join subscription_item\n on subscription.subscription_id = subscription_item.subscription_id\n and subscription.source_relation = subscription_item.source_relation\nleft join grouped_by_subscription \n on subscription.subscription_id = grouped_by_subscription.subscription_id\n and subscription.source_relation = grouped_by_subscription.source_relation\nleft join customer\n on subscription.customer_id = customer.customer_id\n and subscription.source_relation = customer.source_relation", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.stripe.int_stripe__deduped_subscription_item", "sql": " __dbt__cte__int_stripe__deduped_subscription_item as (\nwith subscription_item as ( \n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\n\n)\n\n/*\nSUBSCRIPTION_ITEM allows for one-to-many relationships between subscriptions and plans, so we need to dedupe to the subscription_id level\n*/\n\nselect\n subscription_id,\n source_relation,\n min(current_period_start) as current_period_start,\n max(current_period_end) as current_period_end\n \nfrom subscription_item\ngroup by 1, 2\n)"}], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__subscription_item_mrr_report": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__subscription_item_mrr_report", "resource_type": "model", "package_name": "stripe", "path": "stripe__subscription_item_mrr_report.sql", "original_file_path": "models/stripe__subscription_item_mrr_report.sql", "unique_id": "model.stripe.stripe__subscription_item_mrr_report", "fqn": ["stripe", "stripe__subscription_item_mrr_report"], "alias": "stripe__subscription_item_mrr_report", "checksum": {"name": "sha256", "checksum": "bce0980b958c524d9f32c853f12b2209f5ba9dda7e6ddda499c5c5c583459ae6"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Each record represents a subscription item for a given month with monthly recurring revenue (MRR) metrics and movement classification. Tracks MRR changes over time, classifying each month as new, expansion, contraction, churned, reactivation, or unchanged. Reconstructs historical MRR amount changes from invoice line items and anchors each item's timeline to its creation date. Requires `stripe__using_invoices`: true to build. See the [DECISIONLOG](https://github.com/fivetran/dbt_stripe/blob/main/DECISIONLOG.md) for full details.\n", "columns": {"source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}, "subscription_item_id": {"name": "subscription_item_id", "description": "Unique identifier for the subscription item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "Unique identifier for the subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the customer who owns the subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "ID of the product associated with this subscription item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "price_plan_id": {"name": "price_plan_id", "description": "ID of the price plan associated with this subscription item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_status": {"name": "subscription_status", "description": "Current status of the subscription. Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_month": {"name": "subscription_month", "description": "Month of the subscription period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_year": {"name": "subscription_year", "description": "Year of the subscription period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "month_contract_mrr": {"name": "month_contract_mrr", "description": "Contracted monthly recurring revenue for this subscription item for this subscription month before discounts are applied. Historical months use current price with historical quantity. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "month_discount_applied": {"name": "month_discount_applied", "description": "Discount amount applied to this subscription item for this month, allocated proportionally based on the item's share of the subscription's total contracted MRR. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "month_billed_mrr": {"name": "month_billed_mrr", "description": "Net monthly recurring revenue for this subscription item for this subscription month after discounts are applied (month_contract_mrr minus month_discount_applied). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "prior_month_contract_mrr": {"name": "prior_month_contract_mrr", "description": "Contracted monthly recurring revenue for this subscription item for the previous subscription month before discounts are applied. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "item_month_number": {"name": "item_month_number", "description": "Sequential month number for this subscription item, starting from 1 for the first month.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "contract_mrr_type": {"name": "contract_mrr_type", "description": "Classification of the contracted MRR change for this month based on month_contract_mrr. Possible values are new (first month with MRR), expansion (MRR increased), contraction (MRR decreased but still positive), churned (MRR went to zero), reactivation (MRR returned after being zero for at least 3 months), unchanged (MRR stayed the same), or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_subscriptions', True) and var('stripe__using_invoices', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8432698, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__subscription_item_mrr_report\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True) and var('stripe__using_invoices', True)) }}\n\n{% if execute and flags.WHICH in ('run', 'build') %}\n\n {%- set first_month_query -%}\n select coalesce(\n min(\n cast(\n {{ dbt.date_trunc(\n 'month',\n \"coalesce(subscription_item.created_at, subscription.created_at)\"\n ) }} as date\n )\n ),\n cast({{ dbt.dateadd('month', -1, 'current_date') }} as date)\n ) as min_month\n from {{ ref('stg_stripe__subscription_item') }} as subscription_item\n left join {{ ref('stg_stripe__subscription') }} as subscription\n on subscription_item.subscription_id = subscription.subscription_id\n and subscription_item.source_relation = subscription.source_relation\n {%- endset -%}\n\n {# dbt_utils.get_single_value returns a string, so cast it back to date #}\n {% set first_month_pre = dbt_utils.get_single_value(first_month_query) %}\n\n {% set first_month = \"cast('\" ~ first_month_pre ~ \"' as date)\" %}\n {% set last_month = dbt.date_trunc('month', 'current_date') %}\n\n{% else %}\n\n {# Fallback for compile / docs / parsing #}\n {% set first_month = dbt.dateadd('month', -1, 'current_date') %}\n {% set last_month = dbt.date_trunc('month', 'current_date') %}\n\n{% endif %}\n\nwith subscription_item as (\n\n select *\n from {{ ref('stg_stripe__subscription_item') }}\n\n),\n\nsubscription as (\n\n select *,\n row_number() over (partition by subscription_id {{ fivetran_utils.partition_by_source_relation(package_name='stripe') }}\n order by created_at desc) as rn\n from {{ ref('stg_stripe__subscription') }}\n),\n\nsubscription_deduped as (\n\n select *\n from subscription\n where rn = 1\n),\n\n--deduping is necessary in cases where subscription_history table is used, multiple records can exist for the same subscription\n\nprice_plan as (\n\n select *\n from {{ ref('stg_stripe__price_plan') }}\n\n),\n\n-- Actual billed quantity per period; provides quantity history subscription_item lacks. Prorations excluded.\ninvoice_line_item as (\n\n select *\n from {{ ref('stg_stripe__invoice_line_item') }}\n where subscription_item_id is not null\n and not coalesce(proration, false)\n\n),\n\n{% if var('stripe__using_coupons', True) and var('stripe__using_subscription_discounts', True) %}\nsubscription_discount as (\n\n select *\n from {{ ref('int_stripe__subscription_discount') }}\n\n),\n{% endif %}\n\n\ndate_spine as (\n\n {{ dbt_utils.date_spine(\n datepart = \"month\",\n start_date = first_month,\n end_date = dbt.dateadd(\"month\", 1, last_month)\n ) }}\n\n),\n\n-- Only keep month and year\ndate_dimensions as (\n\n select\n cast(date_month as date) as subscription_month,\n cast({{ dbt.date_trunc('year', 'date_month') }} as date) as subscription_year\n from date_spine\n\n),\n\n-- Anchor each billed quantity to its period_start month, keeping the latest line per month.\n-- Months the period spans beyond period_start are filled later by the carry-forward logic.\ninvoiced_quantity_by_month as (\n\n select\n invoice_line_item.source_relation,\n invoice_line_item.subscription_item_id,\n date_dimensions.subscription_month,\n invoice_line_item.quantity,\n row_number() over (\n partition by\n invoice_line_item.source_relation,\n invoice_line_item.subscription_item_id,\n date_dimensions.subscription_month\n order by invoice_line_item.period_start desc\n ) as rn\n from invoice_line_item\n inner join date_dimensions\n on date_dimensions.subscription_month = cast({{ dbt.date_trunc('month', 'invoice_line_item.period_start') }} as date)\n\n),\n\ninvoiced_quantity_deduped as (\n\n select \n source_relation, \n subscription_item_id, \n subscription_month, \n quantity\n from invoiced_quantity_by_month\n where rn = 1\n\n),\n\nbase as (\n\n select\n subscription_item.source_relation,\n subscription_item.subscription_item_id,\n subscription_item.subscription_id,\n subscription.customer_id,\n subscription.status as subscription_status,\n coalesce(subscription_item.created_at, subscription.created_at) as item_created_at,\n coalesce(subscription_item.current_period_start, subscription.current_period_start) as current_period_start,\n coalesce(subscription_item.current_period_end, subscription.current_period_end) as current_period_end,\n subscription_item.quantity as current_quantity,\n price_plan.product_id,\n price_plan.price_plan_id,\n price_plan.recurring_interval,\n price_plan.recurring_interval_count,\n price_plan.currency,\n price_plan.unit_amount * coalesce(subscription_item.quantity, 1) as amount\n from subscription_item\n left join subscription_deduped as subscription\n on subscription_item.subscription_id = subscription.subscription_id\n and subscription_item.source_relation = subscription.source_relation\n left join price_plan\n on subscription_item.plan_id = price_plan.price_plan_id\n and subscription_item.source_relation = price_plan.source_relation\n\n),\n\nnormalized as (\n select\n source_relation,\n subscription_item_id,\n subscription_id,\n customer_id,\n subscription_status,\n item_created_at,\n current_period_start,\n current_period_end,\n current_quantity,\n product_id,\n price_plan_id,\n recurring_interval,\n recurring_interval_count,\n currency,\n amount,\n case\n when lower(recurring_interval) = 'week' then\n {{ dbt_utils.safe_divide(\n \"amount * \" ~ dbt_utils.safe_divide('52', '12'),\n \"coalesce(recurring_interval_count, 1)\"\n ) }}\n\n when lower(recurring_interval) = 'month' then\n {{ dbt_utils.safe_divide(\n \"amount\",\n \"coalesce(recurring_interval_count, 1)\"\n ) }}\n\n when lower(recurring_interval) = 'year' then\n {{ dbt_utils.safe_divide(\n \"amount\",\n \"12 * coalesce(recurring_interval_count, 1)\"\n ) }}\n\n else null\n end as mrr\n from base\n\n),\n\n-- Get distinct subscription items with their earliest and latest periods\n-- Extend the timeline 3 months past the last active period to track churn\nsubscription_item_periods as (\n\n select\n source_relation,\n subscription_item_id,\n subscription_id,\n customer_id,\n product_id,\n price_plan_id,\n subscription_status,\n currency,\n min(cast({{ dbt.date_trunc('month', 'item_created_at') }} as date)) as first_active_month,\n cast({{ dbt.dateadd('month', 3, 'max(cast(' ~ dbt.date_trunc('month', 'current_period_end') ~ ' as date))') }} as date) as last_month_to_track\n from normalized\n {{ dbt_utils.group_by(8) }}\n\n),\n\n-- Create all possible month combinations for each subscription item\nall_item_months as (\n\n select\n subscription_item_periods.source_relation,\n subscription_item_periods.subscription_item_id,\n subscription_item_periods.subscription_id,\n subscription_item_periods.customer_id,\n subscription_item_periods.product_id,\n subscription_item_periods.price_plan_id,\n subscription_item_periods.subscription_status,\n subscription_item_periods.currency,\n date_dimensions.subscription_year,\n date_dimensions.subscription_month\n from subscription_item_periods\n cross join date_dimensions\n where date_dimensions.subscription_month >= subscription_item_periods.first_active_month\n and date_dimensions.subscription_month < subscription_item_periods.last_month_to_track\n\n),\n\n-- attach the invoiced quantity to each month, then carry the most recent invoiced\n-- quantity forward across any months missing an invoice (gap months)\nitem_month_invoiced as (\n\n select\n all_item_months.*,\n invoiced_quantity_deduped.quantity as invoiced_quantity\n from all_item_months\n left join invoiced_quantity_deduped\n on all_item_months.source_relation = invoiced_quantity_deduped.source_relation\n and all_item_months.subscription_item_id = invoiced_quantity_deduped.subscription_item_id\n and all_item_months.subscription_month = invoiced_quantity_deduped.subscription_month\n\n),\n\n-- increment a group id each time an invoiced quantity appears; gap months inherit the prior group\nitem_month_grouped as (\n\n select\n *,\n sum(case when invoiced_quantity is not null then 1 else 0 end) over (\n partition by source_relation, subscription_item_id\n order by subscription_month\n rows between unbounded preceding and current row\n ) as invoiced_group\n from item_month_invoiced\n\n),\n\n-- within each group the single invoiced value carries forward to the gap months\nitem_month_carried as (\n\n select\n *,\n max(invoiced_quantity) over (\n partition by source_relation, subscription_item_id, invoiced_group\n ) as carried_quantity\n from item_month_grouped\n\n),\n\n-- Join back to normalized to determine if subscription was active in each month\nitem_months as (\n\n select\n item_month_carried.source_relation,\n item_month_carried.subscription_item_id,\n item_month_carried.subscription_id,\n item_month_carried.customer_id,\n item_month_carried.product_id,\n item_month_carried.price_plan_id,\n item_month_carried.subscription_status,\n item_month_carried.currency,\n item_month_carried.subscription_year,\n item_month_carried.subscription_month,\n -- set once to stay DRY; reused in the mrr calculation below\n {% set effective_quantity %}\n case\n when item_month_carried.subscription_month = cast({{ last_month }} as date)\n then coalesce(normalized.current_quantity, 1)\n else coalesce(item_month_carried.carried_quantity, normalized.current_quantity, 1)\n end\n {% endset %}\n -- current month uses live quantity, history uses the carried-forward invoiced quantity\n coalesce(normalized.mrr, 0)\n * {{ dbt_utils.safe_divide(effective_quantity, \"coalesce(normalized.current_quantity, 1)\") }} as mrr\n from item_month_carried\n left join normalized\n on item_month_carried.source_relation = normalized.source_relation\n and item_month_carried.subscription_item_id = normalized.subscription_item_id\n and item_month_carried.price_plan_id = normalized.price_plan_id\n and item_month_carried.subscription_month >= cast({{ dbt.date_trunc('month', 'normalized.item_created_at') }} as date)\n and item_month_carried.subscription_month < cast({{ dbt.date_trunc('month', 'normalized.current_period_end') }} as date)\n\n),\n\nitem_mrr_by_month as (\n\n select\n source_relation,\n subscription_item_id,\n subscription_id,\n customer_id,\n product_id,\n price_plan_id,\n subscription_status,\n currency,\n subscription_year,\n subscription_month,\n sum(mrr) as month_mrr\n from item_months\n {{ dbt_utils.group_by(10) }}\n\n),\n\nsubscription_billing_cycle as (\n\n select\n normalized.source_relation,\n normalized.subscription_id,\n max(\n case\n when normalized.recurring_interval = 'week' then\n coalesce(normalized.recurring_interval_count, 1) * {{ dbt_utils.safe_divide('52', '12') }}\n when normalized.recurring_interval = 'month' then\n coalesce(normalized.recurring_interval_count, 1)\n when normalized.recurring_interval = 'year' then\n 12 * coalesce(normalized.recurring_interval_count, 1)\n else null\n end\n ) as subscription_cycle_months\n from normalized\n {{ dbt_utils.group_by(2) }}\n\n),\n\nsubscription_month_contracted as (\n\n select\n item_mrr_by_month.source_relation,\n item_mrr_by_month.subscription_id,\n item_mrr_by_month.currency,\n item_mrr_by_month.subscription_month,\n sum(item_mrr_by_month.month_mrr) as subscription_month_contracted_mrr\n from item_mrr_by_month\n {{ dbt_utils.group_by(4) }}\n\n),\n\n{% if var('stripe__using_coupons', True) and var('stripe__using_subscription_discounts', True) %}\nsubscription_month_discount_amount as (\n\n select\n subscription_month_contracted.source_relation,\n subscription_month_contracted.subscription_id,\n subscription_month_contracted.subscription_month,\n subscription_month_contracted.currency,\n subscription_month_contracted.subscription_month_contracted_mrr,\n sum(coalesce(cast(subscription_discount.amount_off as {{ dbt.type_numeric() }}), 0)) as amount_off,\n max(coalesce(cast(subscription_discount.percent_off as {{ dbt.type_numeric() }}), 0)) as percent_off\n from subscription_month_contracted\n left join subscription_discount\n on subscription_month_contracted.source_relation = subscription_discount.source_relation\n and subscription_month_contracted.subscription_id = subscription_discount.subscription_id\n and subscription_month_contracted.subscription_month >= subscription_discount.start_month\n and (\n subscription_discount.end_month is null\n or subscription_month_contracted.subscription_month < subscription_discount.end_month\n )\n {{ dbt_utils.group_by(5) }}\n),\n\nsubscription_month_discount_mrr as (\n\n select\n subscription_month_discount_amount.source_relation,\n subscription_month_discount_amount.subscription_id,\n subscription_month_discount_amount.subscription_month,\n subscription_month_discount_amount.amount_off,\n subscription_month_discount_amount.percent_off,\n\n -- Monthly discount from amount_off (spread across billing cycle)\n {{ dbt_utils.safe_divide(\n \"subscription_month_discount_amount.amount_off\",\n \"coalesce(subscription_billing_cycle.subscription_cycle_months, 1)\"\n ) }} as amount_off_monthly_discount,\n\n -- Monthly discount from percent_off (applies directly to monthly contracted MRR)\n (subscription_month_discount_amount.subscription_month_contracted_mrr\n * {{ dbt_utils.safe_divide(\"subscription_month_discount_amount.percent_off\", \"100\") }}\n ) as percent_off_monthly_discount,\n\n -- Total monthly discount to allocate to items\n (coalesce({{ dbt_utils.safe_divide(\"subscription_month_discount_amount.amount_off\",\n \"coalesce(subscription_billing_cycle.subscription_cycle_months, 1)\") }}, 0)\n + coalesce((subscription_month_discount_amount.subscription_month_contracted_mrr\n * {{ dbt_utils.safe_divide(\"subscription_month_discount_amount.percent_off\", \"100\") }}), 0)\n ) as subscription_month_discount_mrr\n\n from subscription_month_discount_amount\n left join subscription_billing_cycle\n on subscription_month_discount_amount.source_relation = subscription_billing_cycle.source_relation\n and subscription_month_discount_amount.subscription_id = subscription_billing_cycle.subscription_id\n\n),\n{% endif %}\n\nitem_mrr_with_discounts as (\n\n select\n item_mrr_by_month.source_relation,\n item_mrr_by_month.subscription_item_id,\n item_mrr_by_month.subscription_id,\n item_mrr_by_month.customer_id,\n item_mrr_by_month.product_id,\n item_mrr_by_month.price_plan_id,\n item_mrr_by_month.subscription_status,\n item_mrr_by_month.currency,\n item_mrr_by_month.subscription_year,\n item_mrr_by_month.subscription_month,\n item_mrr_by_month.month_mrr as month_contract_mrr,\n\n -- applied discount at item grain (monthly)\n {% if var('stripe__using_coupons', True) and var('stripe__using_subscription_discounts', True) %}\n (\n coalesce(subscription_month_discount_mrr.subscription_month_discount_mrr, 0)\n * {{ dbt_utils.safe_divide(\n \"item_mrr_by_month.month_mrr\",\n \"subscription_month_contracted.subscription_month_contracted_mrr\"\n ) }}\n ) as month_discount_applied,\n {% else %}\n 0 as month_discount_applied,\n {% endif %}\n\n -- net / invoiced monthly MRR at item grain\n {% if var('stripe__using_coupons', True) and var('stripe__using_subscription_discounts', True) %}\n (\n item_mrr_by_month.month_mrr\n - (\n coalesce(subscription_month_discount_mrr.subscription_month_discount_mrr, 0)\n * {{ dbt_utils.safe_divide(\n \"item_mrr_by_month.month_mrr\",\n \"subscription_month_contracted.subscription_month_contracted_mrr\"\n ) }}\n )\n ) as month_billed_mrr\n {% else %}\n item_mrr_by_month.month_mrr as month_billed_mrr\n {% endif %}\n\n from item_mrr_by_month\n left join subscription_month_contracted\n on item_mrr_by_month.source_relation = subscription_month_contracted.source_relation\n and item_mrr_by_month.subscription_id = subscription_month_contracted.subscription_id\n and item_mrr_by_month.currency = subscription_month_contracted.currency\n and item_mrr_by_month.subscription_month = subscription_month_contracted.subscription_month\n {% if var('stripe__using_coupons', True) and var('stripe__using_subscription_discounts', True) %}\n left join subscription_month_discount_mrr\n on item_mrr_by_month.source_relation = subscription_month_discount_mrr.source_relation\n and item_mrr_by_month.subscription_id = subscription_month_discount_mrr.subscription_id\n and item_mrr_by_month.subscription_month = subscription_month_discount_mrr.subscription_month\n {% endif %}\n\n),\n\nlagged as (\n\n select\n item_mrr_with_discounts.source_relation,\n item_mrr_with_discounts.subscription_item_id,\n item_mrr_with_discounts.subscription_id,\n item_mrr_with_discounts.customer_id,\n item_mrr_with_discounts.product_id,\n item_mrr_with_discounts.price_plan_id,\n item_mrr_with_discounts.subscription_status,\n item_mrr_with_discounts.currency,\n item_mrr_with_discounts.subscription_month,\n item_mrr_with_discounts.subscription_year,\n item_mrr_with_discounts.month_contract_mrr,\n item_mrr_with_discounts.month_discount_applied,\n item_mrr_with_discounts.month_billed_mrr,\n lag(item_mrr_with_discounts.month_contract_mrr) over (\n partition by\n item_mrr_with_discounts.source_relation,\n item_mrr_with_discounts.subscription_item_id,\n item_mrr_with_discounts.price_plan_id\n order by\n item_mrr_with_discounts.subscription_year,\n item_mrr_with_discounts.subscription_month\n ) as prior_month_contract_mrr,\n row_number() over (\n partition by\n item_mrr_with_discounts.source_relation,\n item_mrr_with_discounts.subscription_item_id,\n item_mrr_with_discounts.price_plan_id\n order by\n item_mrr_with_discounts.subscription_year,\n item_mrr_with_discounts.subscription_month\n ) as item_month_number\n from item_mrr_with_discounts\n\n),\n\nclassified as (\n\n select\n *,\n case\n when prior_month_contract_mrr is null \n and month_contract_mrr > 0\n then 'new'\n\n when month_contract_mrr > prior_month_contract_mrr\n then 'expansion'\n\n when prior_month_contract_mrr > month_contract_mrr\n and month_contract_mrr > 0\n then 'contraction'\n\n when (month_contract_mrr = 0 or month_contract_mrr is null)\n and prior_month_contract_mrr > 0\n then 'churned'\n\n when prior_month_contract_mrr = 0\n and month_contract_mrr > 0\n and item_month_number >= 3\n then 'reactivation'\n\n when month_contract_mrr = prior_month_contract_mrr\n then 'unchanged'\n\n else 'unknown'\n end as contract_mrr_type\n from lagged\n)\n\nselect *\nfrom classified", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_item", "package": null, "version": null}, {"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "stg_stripe__price_plan", "package": null, "version": null}, {"name": "stg_stripe__invoice_line_item", "package": null, "version": null}, {"name": "int_stripe__subscription_discount", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc", "macro.fivetran_utils.partition_by_source_relation", "macro.dbt_utils.date_spine", "macro.dbt_utils.safe_divide", "macro.dbt_utils.group_by", "macro.dbt.type_numeric"], "nodes": ["model.stripe.stg_stripe__subscription_item", "model.stripe.stg_stripe__subscription", "model.stripe.stg_stripe__price_plan", "model.stripe.stg_stripe__invoice_line_item", "model.stripe.int_stripe__subscription_discount"]}, "compiled_path": "target/compiled/stripe/models/stripe__subscription_item_mrr_report.sql", "compiled": true, "compiled_code": "\n\n\n\n \n \n \n\n\n\nwith __dbt__cte__int_stripe__subscription_discount as (\n\n\nwith subscription_discount as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_discount\"\n\n),\n\ncoupon as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__coupon\"\n\n),\n\nsubscription_discount_schedule as (\n\n select\n subscription_discount.source_relation,\n subscription_discount.subscription_id,\n subscription_discount.customer_id,\n subscription_discount.coupon_id,\n subscription_discount.start_at,\n subscription_discount.end_at,\n cast(date_trunc('month', subscription_discount.start_at) as date) as start_month,\n coupon.percent_off,\n coupon.amount_off,\n coupon.duration,\n coupon.duration_in_months,\n coupon.currency as coupon_currency\n from subscription_discount\n left join coupon\n on subscription_discount.source_relation = coupon.source_relation\n and subscription_discount.coupon_id = coupon.coupon_id\n where subscription_discount.coupon_id is not null\n and subscription_discount.start_at is not null\n\n),\n\nsubscription_discount_bounds as (\n\n select\n subscription_discount_schedule.*,\n\n case\n when duration = 'forever' then null\n\n when duration = 'once' then\n cast(\n\n date_trunc('month', subscription_discount_schedule.start_at) + ((interval '1 month') * (1))\n\n as date)\n\n when duration = 'repeating' then\n cast(\n\n date_trunc('month', subscription_discount_schedule.start_at) + ((interval '1 month') * (coalesce(subscription_discount_schedule.duration_in_months, 1)))\n\n as date)\n\n else null\n end as end_month\n\n from subscription_discount_schedule\n\n)\n\nselect *\nfrom subscription_discount_bounds\n), subscription_item as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\n\n),\n\nsubscription as (\n\n select *,\n row_number() over (partition by subscription_id \n order by created_at desc) as rn\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\"\n),\n\nsubscription_deduped as (\n\n select *\n from subscription\n where rn = 1\n),\n\n--deduping is necessary in cases where subscription_history table is used, multiple records can exist for the same subscription\n\nprice_plan as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan\"\n\n),\n\n-- Actual billed quantity per period; provides quantity history subscription_item lacks. Prorations excluded.\ninvoice_line_item as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\"\n where subscription_item_id is not null\n and not coalesce(proration, false)\n\n),\n\n\nsubscription_discount as (\n\n select *\n from __dbt__cte__int_stripe__subscription_discount\n\n),\n\n\n\ndate_spine as (\n\n \n\n\n\n\n\nwith rawdata as (\n\n \n\n \n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n \n p0.generated_number * power(2, 0)\n \n \n + 1\n as generated_number\n\n from\n\n \n p as p0\n \n \n\n )\n\n select *\n from unioned\n where generated_number <= 2.0\n order by generated_number\n\n\n\n),\n\nall_periods as (\n\n select (\n \n\n \n\n current_date + ((interval '1 month') * (-1))\n\n + ((interval '1 month') * (row_number() over (order by generated_number) - 1))\n\n\n ) as date_month\n from rawdata\n\n),\n\nfiltered as (\n\n select *\n from all_periods\n where date_month <= \n\n date_trunc('month', current_date) + ((interval '1 month') * (1))\n\n\n\n)\n\nselect * from filtered\n\n\n\n),\n\n-- Only keep month and year\ndate_dimensions as (\n\n select\n cast(date_month as date) as subscription_month,\n cast(date_trunc('year', date_month) as date) as subscription_year\n from date_spine\n\n),\n\n-- Anchor each billed quantity to its period_start month, keeping the latest line per month.\n-- Months the period spans beyond period_start are filled later by the carry-forward logic.\ninvoiced_quantity_by_month as (\n\n select\n invoice_line_item.source_relation,\n invoice_line_item.subscription_item_id,\n date_dimensions.subscription_month,\n invoice_line_item.quantity,\n row_number() over (\n partition by\n invoice_line_item.source_relation,\n invoice_line_item.subscription_item_id,\n date_dimensions.subscription_month\n order by invoice_line_item.period_start desc\n ) as rn\n from invoice_line_item\n inner join date_dimensions\n on date_dimensions.subscription_month = cast(date_trunc('month', invoice_line_item.period_start) as date)\n\n),\n\ninvoiced_quantity_deduped as (\n\n select \n source_relation, \n subscription_item_id, \n subscription_month, \n quantity\n from invoiced_quantity_by_month\n where rn = 1\n\n),\n\nbase as (\n\n select\n subscription_item.source_relation,\n subscription_item.subscription_item_id,\n subscription_item.subscription_id,\n subscription.customer_id,\n subscription.status as subscription_status,\n coalesce(subscription_item.created_at, subscription.created_at) as item_created_at,\n coalesce(subscription_item.current_period_start, subscription.current_period_start) as current_period_start,\n coalesce(subscription_item.current_period_end, subscription.current_period_end) as current_period_end,\n subscription_item.quantity as current_quantity,\n price_plan.product_id,\n price_plan.price_plan_id,\n price_plan.recurring_interval,\n price_plan.recurring_interval_count,\n price_plan.currency,\n price_plan.unit_amount * coalesce(subscription_item.quantity, 1) as amount\n from subscription_item\n left join subscription_deduped as subscription\n on subscription_item.subscription_id = subscription.subscription_id\n and subscription_item.source_relation = subscription.source_relation\n left join price_plan\n on subscription_item.plan_id = price_plan.price_plan_id\n and subscription_item.source_relation = price_plan.source_relation\n\n),\n\nnormalized as (\n select\n source_relation,\n subscription_item_id,\n subscription_id,\n customer_id,\n subscription_status,\n item_created_at,\n current_period_start,\n current_period_end,\n current_quantity,\n product_id,\n price_plan_id,\n recurring_interval,\n recurring_interval_count,\n currency,\n amount,\n case\n when lower(recurring_interval) = 'week' then\n \n ( amount * \n ( 52 ) / nullif( ( 12 ), 0)\n ) / nullif( ( coalesce(recurring_interval_count, 1) ), 0)\n\n\n when lower(recurring_interval) = 'month' then\n \n ( amount ) / nullif( ( coalesce(recurring_interval_count, 1) ), 0)\n\n\n when lower(recurring_interval) = 'year' then\n \n ( amount ) / nullif( ( 12 * coalesce(recurring_interval_count, 1) ), 0)\n\n\n else null\n end as mrr\n from base\n\n),\n\n-- Get distinct subscription items with their earliest and latest periods\n-- Extend the timeline 3 months past the last active period to track churn\nsubscription_item_periods as (\n\n select\n source_relation,\n subscription_item_id,\n subscription_id,\n customer_id,\n product_id,\n price_plan_id,\n subscription_status,\n currency,\n min(cast(date_trunc('month', item_created_at) as date)) as first_active_month,\n cast(\n\n max(cast(date_trunc('month', current_period_end) as date)) + ((interval '1 month') * (3))\n\n as date) as last_month_to_track\n from normalized\n group by 1,2,3,4,5,6,7,8\n\n),\n\n-- Create all possible month combinations for each subscription item\nall_item_months as (\n\n select\n subscription_item_periods.source_relation,\n subscription_item_periods.subscription_item_id,\n subscription_item_periods.subscription_id,\n subscription_item_periods.customer_id,\n subscription_item_periods.product_id,\n subscription_item_periods.price_plan_id,\n subscription_item_periods.subscription_status,\n subscription_item_periods.currency,\n date_dimensions.subscription_year,\n date_dimensions.subscription_month\n from subscription_item_periods\n cross join date_dimensions\n where date_dimensions.subscription_month >= subscription_item_periods.first_active_month\n and date_dimensions.subscription_month < subscription_item_periods.last_month_to_track\n\n),\n\n-- attach the invoiced quantity to each month, then carry the most recent invoiced\n-- quantity forward across any months missing an invoice (gap months)\nitem_month_invoiced as (\n\n select\n all_item_months.*,\n invoiced_quantity_deduped.quantity as invoiced_quantity\n from all_item_months\n left join invoiced_quantity_deduped\n on all_item_months.source_relation = invoiced_quantity_deduped.source_relation\n and all_item_months.subscription_item_id = invoiced_quantity_deduped.subscription_item_id\n and all_item_months.subscription_month = invoiced_quantity_deduped.subscription_month\n\n),\n\n-- increment a group id each time an invoiced quantity appears; gap months inherit the prior group\nitem_month_grouped as (\n\n select\n *,\n sum(case when invoiced_quantity is not null then 1 else 0 end) over (\n partition by source_relation, subscription_item_id\n order by subscription_month\n rows between unbounded preceding and current row\n ) as invoiced_group\n from item_month_invoiced\n\n),\n\n-- within each group the single invoiced value carries forward to the gap months\nitem_month_carried as (\n\n select\n *,\n max(invoiced_quantity) over (\n partition by source_relation, subscription_item_id, invoiced_group\n ) as carried_quantity\n from item_month_grouped\n\n),\n\n-- Join back to normalized to determine if subscription was active in each month\nitem_months as (\n\n select\n item_month_carried.source_relation,\n item_month_carried.subscription_item_id,\n item_month_carried.subscription_id,\n item_month_carried.customer_id,\n item_month_carried.product_id,\n item_month_carried.price_plan_id,\n item_month_carried.subscription_status,\n item_month_carried.currency,\n item_month_carried.subscription_year,\n item_month_carried.subscription_month,\n -- set once to stay DRY; reused in the mrr calculation below\n \n -- current month uses live quantity, history uses the carried-forward invoiced quantity\n coalesce(normalized.mrr, 0)\n * \n ( \n case\n when item_month_carried.subscription_month = cast(date_trunc('month', current_date) as date)\n then coalesce(normalized.current_quantity, 1)\n else coalesce(item_month_carried.carried_quantity, normalized.current_quantity, 1)\n end\n ) / nullif( ( coalesce(normalized.current_quantity, 1) ), 0)\n as mrr\n from item_month_carried\n left join normalized\n on item_month_carried.source_relation = normalized.source_relation\n and item_month_carried.subscription_item_id = normalized.subscription_item_id\n and item_month_carried.price_plan_id = normalized.price_plan_id\n and item_month_carried.subscription_month >= cast(date_trunc('month', normalized.item_created_at) as date)\n and item_month_carried.subscription_month < cast(date_trunc('month', normalized.current_period_end) as date)\n\n),\n\nitem_mrr_by_month as (\n\n select\n source_relation,\n subscription_item_id,\n subscription_id,\n customer_id,\n product_id,\n price_plan_id,\n subscription_status,\n currency,\n subscription_year,\n subscription_month,\n sum(mrr) as month_mrr\n from item_months\n group by 1,2,3,4,5,6,7,8,9,10\n\n),\n\nsubscription_billing_cycle as (\n\n select\n normalized.source_relation,\n normalized.subscription_id,\n max(\n case\n when normalized.recurring_interval = 'week' then\n coalesce(normalized.recurring_interval_count, 1) * \n ( 52 ) / nullif( ( 12 ), 0)\n\n when normalized.recurring_interval = 'month' then\n coalesce(normalized.recurring_interval_count, 1)\n when normalized.recurring_interval = 'year' then\n 12 * coalesce(normalized.recurring_interval_count, 1)\n else null\n end\n ) as subscription_cycle_months\n from normalized\n group by 1,2\n\n),\n\nsubscription_month_contracted as (\n\n select\n item_mrr_by_month.source_relation,\n item_mrr_by_month.subscription_id,\n item_mrr_by_month.currency,\n item_mrr_by_month.subscription_month,\n sum(item_mrr_by_month.month_mrr) as subscription_month_contracted_mrr\n from item_mrr_by_month\n group by 1,2,3,4\n\n),\n\n\nsubscription_month_discount_amount as (\n\n select\n subscription_month_contracted.source_relation,\n subscription_month_contracted.subscription_id,\n subscription_month_contracted.subscription_month,\n subscription_month_contracted.currency,\n subscription_month_contracted.subscription_month_contracted_mrr,\n sum(coalesce(cast(subscription_discount.amount_off as numeric(28,6)), 0)) as amount_off,\n max(coalesce(cast(subscription_discount.percent_off as numeric(28,6)), 0)) as percent_off\n from subscription_month_contracted\n left join subscription_discount\n on subscription_month_contracted.source_relation = subscription_discount.source_relation\n and subscription_month_contracted.subscription_id = subscription_discount.subscription_id\n and subscription_month_contracted.subscription_month >= subscription_discount.start_month\n and (\n subscription_discount.end_month is null\n or subscription_month_contracted.subscription_month < subscription_discount.end_month\n )\n group by 1,2,3,4,5\n),\n\nsubscription_month_discount_mrr as (\n\n select\n subscription_month_discount_amount.source_relation,\n subscription_month_discount_amount.subscription_id,\n subscription_month_discount_amount.subscription_month,\n subscription_month_discount_amount.amount_off,\n subscription_month_discount_amount.percent_off,\n\n -- Monthly discount from amount_off (spread across billing cycle)\n \n ( subscription_month_discount_amount.amount_off ) / nullif( ( coalesce(subscription_billing_cycle.subscription_cycle_months, 1) ), 0)\n as amount_off_monthly_discount,\n\n -- Monthly discount from percent_off (applies directly to monthly contracted MRR)\n (subscription_month_discount_amount.subscription_month_contracted_mrr\n * \n ( subscription_month_discount_amount.percent_off ) / nullif( ( 100 ), 0)\n\n ) as percent_off_monthly_discount,\n\n -- Total monthly discount to allocate to items\n (coalesce(\n ( subscription_month_discount_amount.amount_off ) / nullif( ( coalesce(subscription_billing_cycle.subscription_cycle_months, 1) ), 0)\n, 0)\n + coalesce((subscription_month_discount_amount.subscription_month_contracted_mrr\n * \n ( subscription_month_discount_amount.percent_off ) / nullif( ( 100 ), 0)\n), 0)\n ) as subscription_month_discount_mrr\n\n from subscription_month_discount_amount\n left join subscription_billing_cycle\n on subscription_month_discount_amount.source_relation = subscription_billing_cycle.source_relation\n and subscription_month_discount_amount.subscription_id = subscription_billing_cycle.subscription_id\n\n),\n\n\nitem_mrr_with_discounts as (\n\n select\n item_mrr_by_month.source_relation,\n item_mrr_by_month.subscription_item_id,\n item_mrr_by_month.subscription_id,\n item_mrr_by_month.customer_id,\n item_mrr_by_month.product_id,\n item_mrr_by_month.price_plan_id,\n item_mrr_by_month.subscription_status,\n item_mrr_by_month.currency,\n item_mrr_by_month.subscription_year,\n item_mrr_by_month.subscription_month,\n item_mrr_by_month.month_mrr as month_contract_mrr,\n\n -- applied discount at item grain (monthly)\n \n (\n coalesce(subscription_month_discount_mrr.subscription_month_discount_mrr, 0)\n * \n ( item_mrr_by_month.month_mrr ) / nullif( ( subscription_month_contracted.subscription_month_contracted_mrr ), 0)\n\n ) as month_discount_applied,\n \n\n -- net / invoiced monthly MRR at item grain\n \n (\n item_mrr_by_month.month_mrr\n - (\n coalesce(subscription_month_discount_mrr.subscription_month_discount_mrr, 0)\n * \n ( item_mrr_by_month.month_mrr ) / nullif( ( subscription_month_contracted.subscription_month_contracted_mrr ), 0)\n\n )\n ) as month_billed_mrr\n \n\n from item_mrr_by_month\n left join subscription_month_contracted\n on item_mrr_by_month.source_relation = subscription_month_contracted.source_relation\n and item_mrr_by_month.subscription_id = subscription_month_contracted.subscription_id\n and item_mrr_by_month.currency = subscription_month_contracted.currency\n and item_mrr_by_month.subscription_month = subscription_month_contracted.subscription_month\n \n left join subscription_month_discount_mrr\n on item_mrr_by_month.source_relation = subscription_month_discount_mrr.source_relation\n and item_mrr_by_month.subscription_id = subscription_month_discount_mrr.subscription_id\n and item_mrr_by_month.subscription_month = subscription_month_discount_mrr.subscription_month\n \n\n),\n\nlagged as (\n\n select\n item_mrr_with_discounts.source_relation,\n item_mrr_with_discounts.subscription_item_id,\n item_mrr_with_discounts.subscription_id,\n item_mrr_with_discounts.customer_id,\n item_mrr_with_discounts.product_id,\n item_mrr_with_discounts.price_plan_id,\n item_mrr_with_discounts.subscription_status,\n item_mrr_with_discounts.currency,\n item_mrr_with_discounts.subscription_month,\n item_mrr_with_discounts.subscription_year,\n item_mrr_with_discounts.month_contract_mrr,\n item_mrr_with_discounts.month_discount_applied,\n item_mrr_with_discounts.month_billed_mrr,\n lag(item_mrr_with_discounts.month_contract_mrr) over (\n partition by\n item_mrr_with_discounts.source_relation,\n item_mrr_with_discounts.subscription_item_id,\n item_mrr_with_discounts.price_plan_id\n order by\n item_mrr_with_discounts.subscription_year,\n item_mrr_with_discounts.subscription_month\n ) as prior_month_contract_mrr,\n row_number() over (\n partition by\n item_mrr_with_discounts.source_relation,\n item_mrr_with_discounts.subscription_item_id,\n item_mrr_with_discounts.price_plan_id\n order by\n item_mrr_with_discounts.subscription_year,\n item_mrr_with_discounts.subscription_month\n ) as item_month_number\n from item_mrr_with_discounts\n\n),\n\nclassified as (\n\n select\n *,\n case\n when prior_month_contract_mrr is null \n and month_contract_mrr > 0\n then 'new'\n\n when month_contract_mrr > prior_month_contract_mrr\n then 'expansion'\n\n when prior_month_contract_mrr > month_contract_mrr\n and month_contract_mrr > 0\n then 'contraction'\n\n when (month_contract_mrr = 0 or month_contract_mrr is null)\n and prior_month_contract_mrr > 0\n then 'churned'\n\n when prior_month_contract_mrr = 0\n and month_contract_mrr > 0\n and item_month_number >= 3\n then 'reactivation'\n\n when month_contract_mrr = prior_month_contract_mrr\n then 'unchanged'\n\n else 'unknown'\n end as contract_mrr_type\n from lagged\n)\n\nselect *\nfrom classified", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.stripe.int_stripe__subscription_discount", "sql": " __dbt__cte__int_stripe__subscription_discount as (\n\n\nwith subscription_discount as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_discount\"\n\n),\n\ncoupon as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__coupon\"\n\n),\n\nsubscription_discount_schedule as (\n\n select\n subscription_discount.source_relation,\n subscription_discount.subscription_id,\n subscription_discount.customer_id,\n subscription_discount.coupon_id,\n subscription_discount.start_at,\n subscription_discount.end_at,\n cast(date_trunc('month', subscription_discount.start_at) as date) as start_month,\n coupon.percent_off,\n coupon.amount_off,\n coupon.duration,\n coupon.duration_in_months,\n coupon.currency as coupon_currency\n from subscription_discount\n left join coupon\n on subscription_discount.source_relation = coupon.source_relation\n and subscription_discount.coupon_id = coupon.coupon_id\n where subscription_discount.coupon_id is not null\n and subscription_discount.start_at is not null\n\n),\n\nsubscription_discount_bounds as (\n\n select\n subscription_discount_schedule.*,\n\n case\n when duration = 'forever' then null\n\n when duration = 'once' then\n cast(\n\n date_trunc('month', subscription_discount_schedule.start_at) + ((interval '1 month') * (1))\n\n as date)\n\n when duration = 'repeating' then\n cast(\n\n date_trunc('month', subscription_discount_schedule.start_at) + ((interval '1 month') * (coalesce(subscription_discount_schedule.duration_in_months, 1)))\n\n as date)\n\n else null\n end as end_month\n\n from subscription_discount_schedule\n\n)\n\nselect *\nfrom subscription_discount_bounds\n)"}], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__invoice_line_item_details": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__invoice_line_item_details", "resource_type": "model", "package_name": "stripe", "path": "stripe__invoice_line_item_details.sql", "original_file_path": "models/stripe__invoice_line_item_details.sql", "unique_id": "model.stripe.stripe__invoice_line_item_details", "fqn": ["stripe", "stripe__invoice_line_item_details"], "alias": "stripe__invoice_line_item_details", "checksum": {"name": "sha256", "checksum": "8c5bf41f90175c2ac503290546505a2aed0ba1844704cc31db435d1d945a4776"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Each record represents an invoice line item, enriched with details about the associated invoice, charge, customer, subscription, and pricing data.", "columns": {"invoice_line_item_id": {"name": "invoice_line_item_id", "description": "The unique Identifier of the invoice line object. Note that the same line item can be shown across different invoices, so this value can appear multiple times.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The unique Identifier of the invoice object. Note invoices can have many line items, so this value can appear multiple times.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The ID of the invoice item this item is a part of", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_line_item_amount": {"name": "invoice_line_item_amount", "description": "Amount for this line item. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "currency": {"name": "currency", "description": "Currency of this line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_line_item_memo": {"name": "invoice_line_item_memo", "description": "Description for this line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_discountable": {"name": "is_discountable", "description": "Whether this line item is discountable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "plan_id": {"name": "plan_id", "description": "The ID that documents the plan record detailing the base price, currency, and billing information for each product. Valid if you are using the Plan API.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "price_id": {"name": "price_id", "description": "The ID that documents the price record detailing the base price, currency, and billing information for each product. Valid if you are using the new Prices API.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "proration": {"name": "proration", "description": "Whether this is a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The quantity of the subscription, if the line item is a subscription or a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription that the invoice item pertains to, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_item_id": {"name": "subscription_item_id", "description": "The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "A string identifying the type of the source of this line item, either an invoice item or a subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "unique_invoice_line_item_id": {"name": "unique_invoice_line_item_id", "description": "A unique id generated for old invoice line item ID's from a past version of the API", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "period_start": {"name": "period_start", "description": "Start of the usage period during which invoice items were added to this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "period_end": {"name": "period_end", "description": "End of the usage period during which invoice items were added to this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_created_at": {"name": "invoice_created_at", "description": "Timestamp of when the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_status": {"name": "invoice_status", "description": "Current status of the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_due_date": {"name": "invoice_due_date", "description": "Date when payment for the invoice is due.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_amount_due": {"name": "invoice_amount_due", "description": "Final amount due at this time for this invoice. If the invoice\u2019s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "invoice_amount_paid": {"name": "invoice_amount_paid", "description": "The amount, if any, that the customer has paid on the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "invoice_subtotal": {"name": "invoice_subtotal", "description": "The amount of the invoice before discounts and taxes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "invoice_tax": {"name": "invoice_tax", "description": "The amount of tax being charged in the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "invoice_total": {"name": "invoice_total", "description": "The total of the invoice after discounts and taxes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "The ID of the account connected to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The associated customer reference.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_billing": {"name": "subscription_billing", "description": "How the subscription is billed", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_start_date": {"name": "subscription_start_date", "description": "The start date of the subscription", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_ended_at": {"name": "subscription_ended_at", "description": "The end date of the subscription", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "price_plan_is_active": {"name": "price_plan_is_active", "description": "Boolean indicating if the plan or price is active (true) or in-active (false).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "price_plan_amount": {"name": "price_plan_amount", "description": "The unit amount in currency units to be charged, represented as a whole integer if possible. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "price_plan_interval": {"name": "price_plan_interval", "description": "The frequency at which a subscription is billed. One of day, week, month or year.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "price_plan_interval_count": {"name": "price_plan_interval_count", "description": "The number of intervals between subscription billings. For example, interval_count=3 bills every 3 months.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "price_plan_nickname": {"name": "price_plan_nickname", "description": "A brief description of the plan or price, hidden from customers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "price_plan_product_id": {"name": "price_plan_product_id", "description": "Reference to the product this price or plan is about.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_invoices', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8003623, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__invoice_line_item_details\"", "raw_code": "{{ config(enabled=var('stripe__using_invoices', True)) }}\n\nwith invoice_line_item as (\n\n select *\n from {{ ref('stg_stripe__invoice_line_item') }} \n\n), invoice_details as (\n\n select *\n from {{ ref('stripe__invoice_details') }}\n\n{% if var('stripe__using_subscriptions', True) %}\n), subscription as (\n\n select *\n from {{ ref('stg_stripe__subscription') }} \n\n), price_plan as (\n\n select *\n from {{ ref('stg_stripe__price_plan') }} \n\n{% endif %}\n)\n\nselect \n invoice_line_item.invoice_line_item_id,\n invoice_line_item.invoice_id,\n invoice_line_item.invoice_item_id,\n coalesce(invoice_line_item.amount,0) as invoice_line_item_amount,\n invoice_line_item.currency,\n invoice_line_item.description as invoice_line_item_memo,\n invoice_line_item.is_discountable,\n invoice_line_item.plan_id,\n invoice_line_item.price_id,\n invoice_line_item.proration,\n invoice_line_item.quantity,\n invoice_line_item.subscription_id,\n invoice_line_item.subscription_item_id,\n invoice_line_item.type,\n invoice_line_item.unique_invoice_line_item_id,\n invoice_line_item.period_start,\n invoice_line_item.period_end,\n invoice_details.invoice_created_at,\n invoice_details.status as invoice_status,\n invoice_details.due_date as invoice_due_date,\n coalesce(invoice_details.amount_due,0) as invoice_amount_due,\n coalesce(invoice_details.amount_paid,0) as invoice_amount_paid,\n coalesce(invoice_details.subtotal,0) as invoice_subtotal,\n coalesce(invoice_details.tax,0) as invoice_tax,\n coalesce(invoice_details.total,0) as invoice_total,\n invoice_details.connected_account_id as connected_account_id,\n invoice_details.customer_id as customer_id,\n\n {% if var('stripe__using_subscriptions', True) %}\n\n subscription.billing as subscription_billing,\n subscription.start_date_at as subscription_start_date,\n subscription.ended_at as subscription_ended_at,\n {{ stripe.select_metadata_columns('subscription', 'stripe__subscription_metadata') }}\n price_plan.is_active as price_plan_is_active,\n price_plan.unit_amount as price_plan_amount,\n price_plan.recurring_interval as price_plan_interval,\n price_plan.recurring_interval_count as price_plan_interval_count,\n price_plan.nickname as price_plan_nickname,\n price_plan.product_id as price_plan_product_id,\n {% endif %}\n\n invoice_line_item.source_relation\n \nfrom invoice_line_item\n\nleft join invoice_details \n on invoice_line_item.invoice_id = invoice_details.invoice_id\n and invoice_line_item.source_relation = invoice_details.source_relation\n\n{% if var('stripe__using_subscriptions', True) %}\n\nleft join subscription\n on invoice_line_item.subscription_id = subscription.subscription_id\n and invoice_line_item.source_relation = subscription.source_relation\n\nleft join price_plan\n\n{% if var('stripe__using_price', stripe.does_table_exist('price')=='exists') %}\n on invoice_line_item.price_id = price_plan.price_plan_id\n{% else %}\n on invoice_line_item.plan_id = price_plan.price_plan_id\n{% endif %}\n\n and invoice_line_item.source_relation = price_plan.source_relation\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice_line_item", "package": null, "version": null}, {"name": "stripe__invoice_details", "package": null, "version": null}, {"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "stg_stripe__price_plan", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.select_metadata_columns", "macro.stripe.does_table_exist"], "nodes": ["model.stripe.stg_stripe__invoice_line_item", "model.stripe.stripe__invoice_details", "model.stripe.stg_stripe__subscription", "model.stripe.stg_stripe__price_plan"]}, "compiled_path": "target/compiled/stripe/models/stripe__invoice_line_item_details.sql", "compiled": true, "compiled_code": "\n\nwith invoice_line_item as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\" \n\n), invoice_details as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__invoice_details\"\n\n\n), subscription as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\" \n\n), price_plan as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan\" \n\n\n)\n\nselect \n invoice_line_item.invoice_line_item_id,\n invoice_line_item.invoice_id,\n invoice_line_item.invoice_item_id,\n coalesce(invoice_line_item.amount,0) as invoice_line_item_amount,\n invoice_line_item.currency,\n invoice_line_item.description as invoice_line_item_memo,\n invoice_line_item.is_discountable,\n invoice_line_item.plan_id,\n invoice_line_item.price_id,\n invoice_line_item.proration,\n invoice_line_item.quantity,\n invoice_line_item.subscription_id,\n invoice_line_item.subscription_item_id,\n invoice_line_item.type,\n invoice_line_item.unique_invoice_line_item_id,\n invoice_line_item.period_start,\n invoice_line_item.period_end,\n invoice_details.invoice_created_at,\n invoice_details.status as invoice_status,\n invoice_details.due_date as invoice_due_date,\n coalesce(invoice_details.amount_due,0) as invoice_amount_due,\n coalesce(invoice_details.amount_paid,0) as invoice_amount_paid,\n coalesce(invoice_details.subtotal,0) as invoice_subtotal,\n coalesce(invoice_details.tax,0) as invoice_tax,\n coalesce(invoice_details.total,0) as invoice_total,\n invoice_details.connected_account_id as connected_account_id,\n invoice_details.customer_id as customer_id,\n\n \n\n subscription.billing as subscription_billing,\n subscription.start_date_at as subscription_start_date,\n subscription.ended_at as subscription_ended_at,\n \n price_plan.is_active as price_plan_is_active,\n price_plan.unit_amount as price_plan_amount,\n price_plan.recurring_interval as price_plan_interval,\n price_plan.recurring_interval_count as price_plan_interval_count,\n price_plan.nickname as price_plan_nickname,\n price_plan.product_id as price_plan_product_id,\n \n\n invoice_line_item.source_relation\n \nfrom invoice_line_item\n\nleft join invoice_details \n on invoice_line_item.invoice_id = invoice_details.invoice_id\n and invoice_line_item.source_relation = invoice_details.source_relation\n\n\n\nleft join subscription\n on invoice_line_item.subscription_id = subscription.subscription_id\n and invoice_line_item.source_relation = subscription.source_relation\n\nleft join price_plan\n\n\n on invoice_line_item.price_id = price_plan.price_plan_id\n\n\n and invoice_line_item.source_relation = price_plan.source_relation\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__daily_overview": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__daily_overview", "resource_type": "model", "package_name": "stripe", "path": "stripe__daily_overview.sql", "original_file_path": "models/stripe__daily_overview.sql", "unique_id": "model.stripe.stripe__daily_overview", "fqn": ["stripe", "stripe__daily_overview"], "alias": "stripe__daily_overview", "checksum": {"name": "sha256", "checksum": "ef3db4da6ab830d22135cff51b7582d97373061697c0f02435a73ffbe5e31026"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Each record represents, per account per day, a summary of daily totals and rolling totals by transaction type (balances, payments, refunds, payouts, and other transactions).", "columns": {"account_id": {"name": "account_id", "description": "The ID of the account tied to the balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "account_daily_id": {"name": "account_daily_id", "description": "A surrogate key made up of account_id and date_day.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "date_day": {"name": "date_day", "description": "Day of record, taken from the date of each balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "date_week": {"name": "date_week", "description": "Week of record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "date_month": {"name": "date_month", "description": "Month of record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "date_year": {"name": "date_year", "description": "Year of record.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "date_index": {"name": "date_index", "description": "Index indicating the relative position of the date to all other dates available in this model.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}, "total_daily_sales_amount": {"name": "total_daily_sales_amount", "description": "Total amount for when transaction type is a charge or payment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_refunds_amount": {"name": "total_daily_refunds_amount", "description": "Total amount for when transaction type is payment_refund or refund. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_adjustments_amount": {"name": "total_daily_adjustments_amount", "description": "Total amount for when transaction type is adjustment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_other_transactions_amount": {"name": "total_daily_other_transactions_amount", "description": "Total amount for when transaction type is not of the prior types. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_gross_transaction_amount": {"name": "total_daily_gross_transaction_amount", "description": "Total amount for when transaction type is not payout or transfer \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_net_transactions_amount": {"name": "total_daily_net_transactions_amount", "description": "Total net for when transaction type is not payout or transfer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_payout_fee_amount": {"name": "total_daily_payout_fee_amount", "description": "Total fee for when transaction type is payout or transfer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_gross_payout_amount": {"name": "total_daily_gross_payout_amount", "description": "Total amount for when transaction type is payout or transfer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "daily_net_activity_amount": {"name": "daily_net_activity_amount", "description": "Net amount minus fees from payouts and transfers. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "daily_end_balance_amount": {"name": "daily_end_balance_amount", "description": "daily_net_activity_amount + total_daily_gross_payout_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total_daily_sales_count": {"name": "total_daily_sales_count", "description": "Count of total balance transactions where type is payment or charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total_daily_payouts_count": {"name": "total_daily_payouts_count", "description": "Count of total balance transactions where type is payout.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total_daily_adjustments_count": {"name": "total_daily_adjustments_count", "description": "Count of total balance transactions where type is adjustment.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total_daily_failed_charge_count": {"name": "total_daily_failed_charge_count", "description": "Count of incomplete charges.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total_daily_failed_charge_amount": {"name": "total_daily_failed_charge_amount", "description": "Total amount of incomplete charges. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_sales_amount": {"name": "rolling_total_daily_sales_amount", "description": "Rolling total of total_daily_sales_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_refunds_amount": {"name": "rolling_total_daily_refunds_amount", "description": "Rolling total of total_daily_refunds_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_adjustments_amount": {"name": "rolling_total_daily_adjustments_amount", "description": "Rolling total of total_daily_adjustments_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_other_transactions_amount": {"name": "rolling_total_daily_other_transactions_amount", "description": "Rolling total of total_daily_other_transactions_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_gross_transaction_amount": {"name": "rolling_total_daily_gross_transaction_amount", "description": "Rolling total of total_daily_gross_transaction_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_net_transactions_amount": {"name": "rolling_total_daily_net_transactions_amount", "description": "Rolling total of total_daily_net_transactions_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_payout_fee_amount": {"name": "rolling_total_daily_payout_fee_amount", "description": "Rolling total of total_daily_payout_fee_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_gross_payout_amount": {"name": "rolling_total_daily_gross_payout_amount", "description": "Rolling total of total_daily_gross_payout_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_daily_net_activity_amount": {"name": "rolling_daily_net_activity_amount", "description": "Rolling total of daily_net_activity_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_daily_end_balance_amount": {"name": "rolling_daily_end_balance_amount", "description": "Rolling total of daily_end_balance_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "rolling_total_daily_sales_count": {"name": "rolling_total_daily_sales_count", "description": "Rolling total of total_daily_sales_count", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "rolling_total_daily_payouts_count": {"name": "rolling_total_daily_payouts_count", "description": "Rolling total of total_daily_payouts_count", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "rolling_total_daily_adjustments_count": {"name": "rolling_total_daily_adjustments_count", "description": "Rolling total of total_daily_adjustments_count", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "rolling_total_daily_failed_charge_count": {"name": "rolling_total_daily_failed_charge_count", "description": "Rolling total of total_daily_failed_charge_count", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "rolling_total_daily_failed_charge_amount": {"name": "rolling_total_daily_failed_charge_amount", "description": "Rolling total of total_daily_failed_charge_amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8225522, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__daily_overview\"", "raw_code": "{% set rolling_fields = ['rolling_total_daily_sales_amount', 'rolling_total_daily_refunds_amount', 'rolling_total_daily_adjustments_amount', 'rolling_total_daily_other_transactions_amount', 'rolling_total_daily_gross_transaction_amount', 'rolling_total_daily_net_transactions_amount', 'rolling_total_daily_payout_fee_amount', 'rolling_total_daily_gross_payout_amount', 'rolling_daily_net_activity_amount', 'rolling_daily_end_balance_amount', 'rolling_total_daily_sales_count', 'rolling_total_daily_payouts_count', 'rolling_total_daily_adjustments_count', 'rolling_total_daily_failed_charge_count', 'rolling_total_daily_failed_charge_amount'] %}\n\nwith account_partitions as (\n\n select * \n from {{ ref('int_stripe__account_partitions') }}\n),\n\nfinal as (\n\n select\n account_id,\n {{ dbt_utils.generate_surrogate_key(['account_id','date_day']) }} as account_daily_id,\n\n date_day, \n date_week,\n date_month, \n date_year, \n date_index,\n source_relation,\n coalesce(total_daily_sales_amount,0) as total_daily_sales_amount,\n coalesce(total_daily_refunds_amount,0) as total_daily_refunds_amount,\n coalesce(total_daily_adjustments_amount,0) as total_daily_adjustments_amount,\n coalesce(total_daily_other_transactions_amount,0) as total_daily_other_transactions_amount,\n coalesce(total_daily_gross_transaction_amount,0) as total_daily_gross_transaction_amount,\n coalesce(total_daily_net_transactions_amount,0) as total_daily_net_transactions_amount,\n coalesce(total_daily_payout_fee_amount,0) as total_daily_payout_fee_amount,\n coalesce(total_daily_gross_payout_amount,0) as total_daily_gross_payout_amount,\n coalesce(daily_net_activity_amount,0) as daily_net_activity_amount,\n coalesce(daily_end_balance_amount,0) as daily_end_balance_amount,\n coalesce(total_daily_sales_count,0) as total_daily_sales_count,\n coalesce(total_daily_payouts_count,0) as total_daily_payouts_count,\n coalesce(total_daily_adjustments_count,0) as total_daily_adjustments_count,\n coalesce(total_daily_failed_charge_count,0) as total_daily_failed_charge_count,\n coalesce(total_daily_failed_charge_amount,0) as total_daily_failed_charge_amount,\n {% for f in rolling_fields %}\n coalesce({{ f }}, \n first_value({{ f }}) over (partition by {{ f }}_partition order by date_day rows unbounded preceding)) as {{ f }}\n {%- if not loop.last -%},{%- endif -%}\n {% endfor %}\n\n from account_partitions\n) \n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_stripe__account_partitions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.stripe.int_stripe__account_partitions"]}, "compiled_path": "target/compiled/stripe/models/stripe__daily_overview.sql", "compiled": true, "compiled_code": "\n\nwith account_partitions as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"int_stripe__account_partitions\"\n),\n\nfinal as (\n\n select\n account_id,\n md5(cast(coalesce(cast(account_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(date_day as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as account_daily_id,\n\n date_day, \n date_week,\n date_month, \n date_year, \n date_index,\n source_relation,\n coalesce(total_daily_sales_amount,0) as total_daily_sales_amount,\n coalesce(total_daily_refunds_amount,0) as total_daily_refunds_amount,\n coalesce(total_daily_adjustments_amount,0) as total_daily_adjustments_amount,\n coalesce(total_daily_other_transactions_amount,0) as total_daily_other_transactions_amount,\n coalesce(total_daily_gross_transaction_amount,0) as total_daily_gross_transaction_amount,\n coalesce(total_daily_net_transactions_amount,0) as total_daily_net_transactions_amount,\n coalesce(total_daily_payout_fee_amount,0) as total_daily_payout_fee_amount,\n coalesce(total_daily_gross_payout_amount,0) as total_daily_gross_payout_amount,\n coalesce(daily_net_activity_amount,0) as daily_net_activity_amount,\n coalesce(daily_end_balance_amount,0) as daily_end_balance_amount,\n coalesce(total_daily_sales_count,0) as total_daily_sales_count,\n coalesce(total_daily_payouts_count,0) as total_daily_payouts_count,\n coalesce(total_daily_adjustments_count,0) as total_daily_adjustments_count,\n coalesce(total_daily_failed_charge_count,0) as total_daily_failed_charge_count,\n coalesce(total_daily_failed_charge_amount,0) as total_daily_failed_charge_amount,\n \n coalesce(rolling_total_daily_sales_amount, \n first_value(rolling_total_daily_sales_amount) over (partition by rolling_total_daily_sales_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_sales_amount,\n coalesce(rolling_total_daily_refunds_amount, \n first_value(rolling_total_daily_refunds_amount) over (partition by rolling_total_daily_refunds_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_refunds_amount,\n coalesce(rolling_total_daily_adjustments_amount, \n first_value(rolling_total_daily_adjustments_amount) over (partition by rolling_total_daily_adjustments_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_adjustments_amount,\n coalesce(rolling_total_daily_other_transactions_amount, \n first_value(rolling_total_daily_other_transactions_amount) over (partition by rolling_total_daily_other_transactions_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_other_transactions_amount,\n coalesce(rolling_total_daily_gross_transaction_amount, \n first_value(rolling_total_daily_gross_transaction_amount) over (partition by rolling_total_daily_gross_transaction_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_gross_transaction_amount,\n coalesce(rolling_total_daily_net_transactions_amount, \n first_value(rolling_total_daily_net_transactions_amount) over (partition by rolling_total_daily_net_transactions_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_net_transactions_amount,\n coalesce(rolling_total_daily_payout_fee_amount, \n first_value(rolling_total_daily_payout_fee_amount) over (partition by rolling_total_daily_payout_fee_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_payout_fee_amount,\n coalesce(rolling_total_daily_gross_payout_amount, \n first_value(rolling_total_daily_gross_payout_amount) over (partition by rolling_total_daily_gross_payout_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_gross_payout_amount,\n coalesce(rolling_daily_net_activity_amount, \n first_value(rolling_daily_net_activity_amount) over (partition by rolling_daily_net_activity_amount_partition order by date_day rows unbounded preceding)) as rolling_daily_net_activity_amount,\n coalesce(rolling_daily_end_balance_amount, \n first_value(rolling_daily_end_balance_amount) over (partition by rolling_daily_end_balance_amount_partition order by date_day rows unbounded preceding)) as rolling_daily_end_balance_amount,\n coalesce(rolling_total_daily_sales_count, \n first_value(rolling_total_daily_sales_count) over (partition by rolling_total_daily_sales_count_partition order by date_day rows unbounded preceding)) as rolling_total_daily_sales_count,\n coalesce(rolling_total_daily_payouts_count, \n first_value(rolling_total_daily_payouts_count) over (partition by rolling_total_daily_payouts_count_partition order by date_day rows unbounded preceding)) as rolling_total_daily_payouts_count,\n coalesce(rolling_total_daily_adjustments_count, \n first_value(rolling_total_daily_adjustments_count) over (partition by rolling_total_daily_adjustments_count_partition order by date_day rows unbounded preceding)) as rolling_total_daily_adjustments_count,\n coalesce(rolling_total_daily_failed_charge_count, \n first_value(rolling_total_daily_failed_charge_count) over (partition by rolling_total_daily_failed_charge_count_partition order by date_day rows unbounded preceding)) as rolling_total_daily_failed_charge_count,\n coalesce(rolling_total_daily_failed_charge_amount, \n first_value(rolling_total_daily_failed_charge_amount) over (partition by rolling_total_daily_failed_charge_amount_partition order by date_day rows unbounded preceding)) as rolling_total_daily_failed_charge_amount\n\n from account_partitions\n) \n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__invoice_details": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__invoice_details", "resource_type": "model", "package_name": "stripe", "path": "stripe__invoice_details.sql", "original_file_path": "models/stripe__invoice_details.sql", "unique_id": "model.stripe.stripe__invoice_details", "fqn": ["stripe", "stripe__invoice_details"], "alias": "stripe__invoice_details", "checksum": {"name": "sha256", "checksum": "dd37ff70d519d5edbcfc5b57da8d443e87a927b0af70f041f1e4bf10c681c0fc"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Each record represents an invoice, enriched with details about the associated charge, customer, and subscription data.", "columns": {"invoice_id": {"name": "invoice_id", "description": "The unique Identifier of the invoice object. Note invoices can have many line items, so this value can appear multiple times.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_number": {"name": "invoice_number", "description": "A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer\u2019s unique invoice_prefix if it is specified.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_created_at": {"name": "invoice_created_at", "description": "Timestamp of when the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "period_start": {"name": "period_start", "description": "Timestamp of the start of the period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "period_end": {"name": "period_end", "description": "Timestamp of the end of the period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Current status of the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "due_date": {"name": "due_date", "description": "Date when payment for the invoice is due.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "The currency that the invoice is in. Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount_paid": {"name": "amount_paid", "description": "The amount, if any, that the customer has paid on the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "amount_due": {"name": "amount_due", "description": "Final amount due at this time for this invoice. If the invoice\u2019s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "subtotal": {"name": "subtotal", "description": "The amount of the invoice before discounts and taxes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "tax": {"name": "tax", "description": "The amount of tax being charged in the invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total": {"name": "total", "description": "The Total after discounts and taxes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount_remaining": {"name": "amount_remaining", "description": "The amount of the invoice remaining to be paid. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "attempt_count": {"name": "attempt_count", "description": "Number of payment attempts made for this invoice, from the perspective of the payment retry schedule.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_memo": {"name": "invoice_memo", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "number_of_line_items": {"name": "number_of_line_items", "description": "Number of line item records for this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total_quantity": {"name": "total_quantity", "description": "The total quantity of items for this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "The ID of the balance transaction object representing payment", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_amount": {"name": "charge_amount", "description": "The amount charged to the customer. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "charge_status": {"name": "charge_status", "description": "The status of the charge for the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_created_at": {"name": "charge_created_at", "description": "When the charge for the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_is_refunded": {"name": "charge_is_refunded", "description": "Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "The ID of the account connected to the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The associated customer reference.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "Description of the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_account_balance": {"name": "customer_account_balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_currency": {"name": "customer_currency", "description": "Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_is_delinquent": {"name": "customer_is_delinquent", "description": "When the customer\u2019s latest invoice is billed by charging automatically, delinquent is true if the invoice\u2019s latest charge is failed. When the customer\u2019s latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "Email of the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "ID of the subscription this invoice relates to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_billing": {"name": "subscription_billing", "description": "How the subscription is billed", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_start_date": {"name": "subscription_start_date", "description": "The start date of the subscription", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_ended_at": {"name": "subscription_ended_at", "description": "The end date of the subscription", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_invoices', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.789972, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__invoice_details\"", "raw_code": "{{ config(enabled=var('stripe__using_invoices', True)) }}\n\nwith invoice as (\n\n select *\n from {{ ref('stg_stripe__invoice') }} \n\n), charge as (\n\n select *\n from {{ ref('stg_stripe__charge') }} \n\n), invoice_line_item as (\n\n select\n invoice_id,\n source_relation,\n coalesce(count(distinct unique_invoice_line_item_id),0) as number_of_line_items,\n coalesce(sum(quantity),0) as total_quantity\n\n from {{ ref('stg_stripe__invoice_line_item') }} \n group by 1,2\n\n), customer as (\n\n select *\n from {{ ref('stg_stripe__customer') }} \n\n{% if var('stripe__using_subscriptions', True) %}\n\n), subscription as (\n\n select *\n from {{ ref('stg_stripe__subscription') }} \n\n), price_plan as (\n\n select *\n from {{ ref('stg_stripe__price_plan') }} \n\n{% endif %}\n)\n\nselect \n invoice.invoice_id,\n invoice.number as invoice_number,\n invoice.created_at as invoice_created_at,\n invoice.period_start,\n invoice.period_end,\n invoice.status,\n invoice.due_date,\n invoice.currency,\n coalesce(invoice.amount_due,0) as amount_due,\n coalesce(invoice.amount_paid,0) as amount_paid,\n coalesce(invoice.subtotal,0) as subtotal,\n coalesce(invoice.tax,0) as tax,\n coalesce(invoice.total,0) as total,\n coalesce(invoice.amount_remaining,0) as amount_remaining,\n coalesce(invoice.attempt_count,0) as attempt_count,\n invoice.description as invoice_memo,\n {{ stripe.select_metadata_columns('invoice', 'stripe__invoice_metadata') }}\n invoice_line_item.number_of_line_items,\n invoice_line_item.total_quantity,\n charge.balance_transaction_id,\n charge.amount as charge_amount, \n charge.status as charge_status,\n charge.connected_account_id, \n charge.created_at as charge_created_at,\n charge.is_refunded as charge_is_refunded,\n {{ stripe.select_metadata_columns('charge', 'stripe__charge_metadata') }}\n customer.customer_id,\n customer.description as customer_description,\n customer.account_balance as customer_account_balance,\n customer.currency as customer_currency,\n customer.is_delinquent as customer_is_delinquent,\n customer.email as customer_email,\n {{ stripe.select_metadata_columns('customer', 'stripe__customer_metadata') }}\n\n {% if var('stripe__using_subscriptions', True) %}\n subscription.subscription_id,\n subscription.billing as subscription_billing,\n subscription.start_date_at as subscription_start_date,\n subscription.ended_at as subscription_ended_at,\n {{ stripe.select_metadata_columns('subscription', 'stripe__subscription_metadata') }}\n\n {% endif %}\n invoice.source_relation\n\nfrom invoice\n\nleft join invoice_line_item \n on invoice.invoice_id = invoice_line_item.invoice_id\n and invoice.source_relation = invoice_line_item.source_relation\n\nleft join charge \n on invoice.charge_id = charge.charge_id\n and invoice.invoice_id = charge.invoice_id\n and invoice.source_relation = charge.source_relation\n\n{% if var('stripe__using_subscriptions', True) %}\nleft join subscription\n on invoice.subscription_id = subscription.subscription_id\n and invoice.source_relation = subscription.source_relation\n\n{% endif %}\n\nleft join customer \n on invoice.customer_id = customer.customer_id\n and invoice.source_relation = customer.source_relation", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice", "package": null, "version": null}, {"name": "stg_stripe__charge", "package": null, "version": null}, {"name": "stg_stripe__invoice_line_item", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}, {"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "stg_stripe__price_plan", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.select_metadata_columns"], "nodes": ["model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__customer", "model.stripe.stg_stripe__subscription", "model.stripe.stg_stripe__price_plan"]}, "compiled_path": "target/compiled/stripe/models/stripe__invoice_details.sql", "compiled": true, "compiled_code": "\n\nwith invoice as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice\" \n\n), charge as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\" \n\n), invoice_line_item as (\n\n select\n invoice_id,\n source_relation,\n coalesce(count(distinct unique_invoice_line_item_id),0) as number_of_line_items,\n coalesce(sum(quantity),0) as total_quantity\n\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\" \n group by 1,2\n\n), customer as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\" \n\n\n\n), subscription as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\" \n\n), price_plan as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan\" \n\n\n)\n\nselect \n invoice.invoice_id,\n invoice.number as invoice_number,\n invoice.created_at as invoice_created_at,\n invoice.period_start,\n invoice.period_end,\n invoice.status,\n invoice.due_date,\n invoice.currency,\n coalesce(invoice.amount_due,0) as amount_due,\n coalesce(invoice.amount_paid,0) as amount_paid,\n coalesce(invoice.subtotal,0) as subtotal,\n coalesce(invoice.tax,0) as tax,\n coalesce(invoice.total,0) as total,\n coalesce(invoice.amount_remaining,0) as amount_remaining,\n coalesce(invoice.attempt_count,0) as attempt_count,\n invoice.description as invoice_memo,\n \n invoice_line_item.number_of_line_items,\n invoice_line_item.total_quantity,\n charge.balance_transaction_id,\n charge.amount as charge_amount, \n charge.status as charge_status,\n charge.connected_account_id, \n charge.created_at as charge_created_at,\n charge.is_refunded as charge_is_refunded,\n \n customer.customer_id,\n customer.description as customer_description,\n customer.account_balance as customer_account_balance,\n customer.currency as customer_currency,\n customer.is_delinquent as customer_is_delinquent,\n customer.email as customer_email,\n \n\n \n subscription.subscription_id,\n subscription.billing as subscription_billing,\n subscription.start_date_at as subscription_start_date,\n subscription.ended_at as subscription_ended_at,\n \n\n \n invoice.source_relation\n\nfrom invoice\n\nleft join invoice_line_item \n on invoice.invoice_id = invoice_line_item.invoice_id\n and invoice.source_relation = invoice_line_item.source_relation\n\nleft join charge \n on invoice.charge_id = charge.charge_id\n and invoice.invoice_id = charge.invoice_id\n and invoice.source_relation = charge.source_relation\n\n\nleft join subscription\n on invoice.subscription_id = subscription.subscription_id\n and invoice.source_relation = subscription.source_relation\n\n\n\nleft join customer \n on invoice.customer_id = customer.customer_id\n and invoice.source_relation = customer.source_relation", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__line_item_enhanced": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__line_item_enhanced", "resource_type": "model", "package_name": "stripe", "path": "standardized_models/stripe__line_item_enhanced.sql", "original_file_path": "models/standardized_models/stripe__line_item_enhanced.sql", "unique_id": "model.stripe.stripe__line_item_enhanced", "fqn": ["stripe", "standardized_models", "stripe__line_item_enhanced"], "alias": "stripe__line_item_enhanced", "checksum": {"name": "sha256", "checksum": "505b7865d40bb16c83cbd23a71263b5c228a570574602e7b4d109a89b9b4a64f"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "This model constructs a comprehensive, denormalized analytical table that enables reporting on key revenue, subscription, customer, and product metrics from your billing platform. It\u2019s designed to align with the schema of the `*__line_item_enhanced` model found in Stripe, Recharge, Recurly, Shopify, and Zuora, offering standardized reporting across various billing platforms. To see the kinds of insights this model can generate, explore example visualizations in the [Fivetran Billing Model Streamlit App](https://fivetran-billing-model.streamlit.app/). Visit the app for more details.", "columns": {"header_id": {"name": "header_id", "description": "Id of corresponding invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "line_item_id": {"name": "line_item_id", "description": "Invoice line item id.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "line_item_index": {"name": "line_item_index", "description": "Unique index of each line item id for each invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "record_type": {"name": "record_type", "description": "header or line_item", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "When the invoice was created", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "header_status": {"name": "header_status", "description": "Status of the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_type": {"name": "billing_type", "description": "Type of invoice line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Currency used in the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "Product ID", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "product_name": {"name": "product_name", "description": "Product name", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "product_type": {"name": "product_type", "description": "Product type", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transaction_type": {"name": "transaction_type", "description": "Balance transaction type. If refunds and charges are tied to one invoice, it's designated as 'charge + refund'. If a charge isn't tied to a refund, it's designated as 'payment intent + refund'. Otherwise, it's just 'charge'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The number of units of this line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "unit_amount": {"name": "unit_amount", "description": "Amount per unit.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "discount_amount": {"name": "discount_amount", "description": "The discount amount associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "tax_amount": {"name": "tax_amount", "description": "The tax amount associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total_amount": {"name": "total_amount", "description": "Invoice total", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_id": {"name": "payment_id", "description": "Payment intent ID", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_method": {"name": "payment_method", "description": "Payment method type", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_method_id": {"name": "payment_method_id", "description": "Payment method ID", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_at": {"name": "payment_at", "description": "Charge created date", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "fee_amount": {"name": "fee_amount", "description": "Balance transaction fee from charges and refunds.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "refund_amount": {"name": "refund_amount", "description": "Refund amount associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "Subscription associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_plan": {"name": "subscription_plan", "description": "The product associated with the subscription item. In Stripe a subscription plan would best be attributed to the product which the price/plan is of the subscription is linked.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_period_started_at": {"name": "subscription_period_started_at", "description": "Subscription's current period start", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_period_ended_at": {"name": "subscription_period_ended_at", "description": "Subscription's current period end", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_status": {"name": "subscription_status", "description": "Subscription status", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "Customer associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_created_at": {"name": "customer_created_at", "description": "Date which the customer was created in Stripe.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_level": {"name": "customer_level", "description": "Whether 'account' or 'customer'. For Stripe, the level is 'customer'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Customer name", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_company": {"name": "customer_company", "description": "Associated account's company if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "Customer email", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_city": {"name": "customer_city", "description": "Customer city", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_country": {"name": "customer_country", "description": "Customer country", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/standardized_models/stripe__standardized_models.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__standardized_billing_model_enabled', True) and var('stripe__using_invoices', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8545027, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__line_item_enhanced\"", "raw_code": "{{ config(\n enabled=(\n var('stripe__standardized_billing_model_enabled', True) and (var('stripe__using_invoices', True))\n )\n) }}\n\n\nwith invoice_line_item as (\n\n select *\n from {{ ref('stg_stripe__invoice_line_item') }} \n\n), invoice as (\n\n select *\n from {{ ref('stg_stripe__invoice') }}\n\n{% if var('stripe__using_subscriptions', True) %}\n), subscription as (\n\n select *\n from {{ ref('stg_stripe__subscription') }} \n\n), subscription_item as (\n\n select *\n from {{ ref('int_stripe__deduped_subscription_item') }} \n\n--Newer Stripe connections will store current_period_start/end fields in SUBSCRIPTION_ITEM while older ones house these fields in SUBSCRIPTION_HISTORY -> grab both and coalesce\n), subscription_item_merge as (\n select \n coalesce(subscription.subscription_id, subscription_item.subscription_id) as subscription_id,\n subscription.status,\n coalesce(subscription.source_relation, subscription_item.source_relation) as source_relation,\n coalesce(subscription.current_period_start, subscription_item.current_period_start) as current_period_start,\n coalesce(subscription.current_period_end, subscription_item.current_period_end) as current_period_end\n from subscription\n left join subscription_item\n on subscription.subscription_id = subscription_item.subscription_id\n and subscription.source_relation = subscription_item.source_relation\n\n), price_plan as (\n\n select *\n from {{ ref('stg_stripe__price_plan') }} \n\n), product as (\n\n select *\n from {{ ref('stg_stripe__product') }}\n\n{% endif %}\n\n), payment_intent as (\n\n select *\n from {{ ref('stg_stripe__payment_intent') }} \n\n{% if var('stripe__using_payment_method', True) %}\n), payment_method as (\n\n select *\n from {{ ref('stg_stripe__payment_method') }}\n\n{% endif %}\n\n), fee as (\n\n select *\n from {{ ref('stg_stripe__fee') }} \n\n), account as (\n\n select *\n from {{ ref('stg_stripe__account') }}\n\n), balance_transaction as (\n\n select *\n from {{ ref('stg_stripe__balance_transaction') }} \n\n), charge as (\n\n select *\n from {{ ref('stg_stripe__charge') }} \n\n), discount as (\n\n select\n invoice_id,\n source_relation,\n sum(amount) as total_discount_amount\n from {{ ref('stg_stripe__discount') }}\n group by 1, 2\n\n), line_item_aggregate as (\n\n select\n invoice_id,\n source_relation,\n sum(amount) as total_line_item_amount\n from {{ ref('stg_stripe__invoice_line_item') }}\n group by 1, 2\n\n), refund as (\n\n select *\n from {{ ref('stg_stripe__refund') }} \n\n), customer as (\n\n select *\n from {{ ref('stg_stripe__customer') }} \n\n), enhanced as (\n\n select\n invoice_line_item.invoice_id as header_id,\n cast(invoice_line_item.invoice_line_item_id as {{ dbt.type_string() }}) as line_item_id,\n row_number() over (partition by invoice_line_item.invoice_id{{ fivetran_utils.partition_by_source_relation(package_name='stripe', alias='invoice_line_item') }} order by invoice_line_item.amount desc) as line_item_index,\n invoice.created_at as created_at,\n cast(invoice_line_item.currency as {{ dbt.type_string() }}) as currency,\n cast(invoice.status as {{ dbt.type_string() }}) as header_status,\n\n cast({{ \"price_plan.product_id\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_string() }}) as product_id, -- The ID of the product this price is associated with. https://docs.stripe.com/api/invoices/line_item#invoice_line_item_object-price-product\n cast({{ \"product.name\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_string() }}) as product_name,\n cast({{ \"product.type\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_string() }}) as product_type,\n\n case \n when bt_refund.balance_transaction_id is not null and bt_charge.balance_transaction_id is not null then 'charge + refund'\n when bt_charge.balance_transaction_id is not null then 'charge'\n when bt_refund.balance_transaction_id is not null then 'payment intent + refund'\n else coalesce(bt_charge.type, bt_refund.type)\n end as transaction_type,\n \n cast(invoice_line_item.type as {{ dbt.type_string() }}) as billing_type,\n cast(invoice_line_item.quantity as {{ dbt.type_numeric() }}) as quantity,\n\n cast(case \n when invoice_line_item.quantity = 0 then 0\n else (invoice_line_item.amount / invoice_line_item.quantity) \n end as {{ dbt.type_numeric() }}) as unit_amount,\n\n cast(discount.total_discount_amount as {{ dbt.type_numeric() }}) as discount_amount,\n cast(invoice.tax as {{ dbt.type_numeric() }}) as tax_amount,\n cast(line_item_aggregate.total_line_item_amount as {{ dbt.type_numeric() }}) as total_line_item_amount,\n cast(invoice.total as {{ dbt.type_numeric() }}) as total_invoice_amount,\n cast(invoice_line_item.amount as {{ dbt.type_numeric() }}) as total_amount,\n cast(payment_intent.payment_intent_id as {{ dbt.type_string() }}) as payment_id,\n cast({{ \"payment_method.payment_method_id\" if var('stripe__using_payment_method', True) else 'null' }} as {{ dbt.type_string() }}) as payment_method_id,\n cast({{ \"payment_method.type\" if var('stripe__using_payment_method', True) else 'null' }} as {{ dbt.type_string() }}) as payment_method,\n cast(charge.created_at as {{ dbt.type_timestamp() }}) as payment_at,\n cast(coalesce(bt_charge.fee, 0) as {{ dbt.type_numeric() }}) + cast(coalesce(bt_refund.fee, 0) as {{ dbt.type_numeric() }}) as fee_amount,\n cast(refund.amount as {{ dbt.type_numeric() }}) as refund_amount,\n cast(invoice.subscription_id as {{ dbt.type_string() }}) as subscription_id,\n\n cast({{ \"product.name\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_string() }}) as subscription_plan,\n cast({{ \"subscription_item_merge.current_period_start\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_timestamp() }}) as subscription_period_started_at,\n cast({{ \"subscription_item_merge.current_period_end\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_timestamp() }}) as subscription_period_ended_at,\n cast({{ \"subscription_item_merge.status\" if var('stripe__using_subscriptions', True) else 'null' }} as {{ dbt.type_string() }}) as subscription_status,\n\n cast(invoice.customer_id as {{ dbt.type_string() }}) as customer_id,\n cast(customer.created_at as {{ dbt.type_timestamp() }}) as customer_created_at,\n 'customer' as customer_level,\n cast(customer.customer_name as {{ dbt.type_string() }}) as customer_name, \n cast(connected_account.company_name as {{ dbt.type_string() }}) as customer_company, \n cast(customer.email as {{ dbt.type_string() }}) as customer_email,\n cast(customer.customer_address_city as {{ dbt.type_string() }}) as customer_city,\n cast(customer.customer_address_country as {{ dbt.type_string() }}) as customer_country,\n invoice_line_item.source_relation\n\n from invoice_line_item\n\n left join invoice\n on invoice.invoice_id = invoice_line_item.invoice_id\n and invoice.source_relation = invoice_line_item.source_relation\n\n left join line_item_aggregate\n on invoice.invoice_id = line_item_aggregate.invoice_id\n and invoice.source_relation = line_item_aggregate.source_relation\n\n left join charge \n on invoice.charge_id = charge.charge_id\n and invoice.invoice_id = charge.invoice_id\n and invoice.source_relation = charge.source_relation\n\n left join refund\n on charge.charge_id = refund.charge_id\n and charge.source_relation = refund.source_relation\n\n left join balance_transaction bt_charge\n on charge.balance_transaction_id = bt_charge.balance_transaction_id\n and charge.source_relation = bt_charge.source_relation\n\n left join balance_transaction bt_refund\n on refund.balance_transaction_id = bt_refund.balance_transaction_id\n and refund.source_relation = bt_refund.source_relation\n\n left join discount \n on invoice.invoice_id = discount.invoice_id\n and invoice.source_relation = discount.source_relation\n\n left join account connected_account\n on coalesce(bt_charge.connected_account_id, bt_refund.connected_account_id) = connected_account.account_id\n and coalesce(bt_charge.source_relation, bt_refund.source_relation) = connected_account.source_relation\n\n left join payment_intent\n on charge.payment_intent_id = payment_intent.payment_intent_id\n and charge.source_relation = payment_intent.source_relation\n\n {% if var('stripe__using_payment_method', True) %}\n left join payment_method\n on charge.payment_method_id = payment_method.payment_method_id\n and charge.source_relation = payment_method.source_relation\n {% endif %}\n\n left join customer \n on invoice.customer_id = customer.customer_id\n and invoice.source_relation = customer.source_relation\n\n {% if var('stripe__using_subscriptions', True) %}\n\n left join subscription_item_merge\n on invoice.subscription_id = subscription_item_merge.subscription_id\n and invoice.source_relation = subscription_item_merge.source_relation\n\n left join price_plan\n\n {% if var('stripe__using_price', stripe.does_table_exist('price')=='exists') %}\n on invoice_line_item.price_id = price_plan.price_plan_id\n {% else %}\n on invoice_line_item.plan_id = price_plan.price_plan_id\n {% endif %}\n and invoice_line_item.source_relation = price_plan.source_relation\n\n left join product\n on price_plan.product_id = product.product_id\n and price_plan.source_relation = product.source_relation\n {% endif %}\n\n), final as (\n\n-- invoice_line_item_level\n select\n header_id,\n line_item_id,\n line_item_index,\n 'line_item' as record_type,\n created_at,\n currency,\n header_status,\n product_id,\n product_name,\n transaction_type,\n billing_type,\n product_type,\n quantity,\n unit_amount,\n cast(null as {{ dbt.type_numeric() }}) as discount_amount,\n cast(null as {{ dbt.type_numeric() }}) as tax_amount,\n total_amount,\n payment_id,\n payment_method_id,\n payment_method,\n payment_at,\n cast(null as {{ dbt.type_numeric() }}) as fee_amount,\n cast(null as {{ dbt.type_numeric() }}) as refund_amount,\n subscription_id,\n subscription_plan,\n subscription_period_started_at,\n subscription_period_ended_at,\n subscription_status,\n customer_id,\n customer_created_at,\n customer_level,\n customer_name,\n customer_company,\n customer_email,\n customer_city,\n customer_country,\n source_relation\n from enhanced\n\n union all\n\n -- create records for fields only pertinent at the invoice level\n select\n header_id,\n cast(null as {{ dbt.type_string() }}) as line_item_id,\n cast(0 as {{ dbt.type_int() }}) as line_item_index,\n 'header' as record_type,\n created_at,\n currency,\n header_status,\n cast(null as {{ dbt.type_string() }}) as product_id,\n cast(null as {{ dbt.type_string() }}) as product_name,\n transaction_type,\n billing_type,\n cast(null as {{ dbt.type_string() }}) as product_type,\n cast(null as {{ dbt.type_float() }}) as quantity,\n cast(null as {{ dbt.type_float() }}) as unit_amount,\n discount_amount,\n tax_amount,\n cast((total_invoice_amount - total_line_item_amount) as {{ dbt.type_float() }}) as total_amount,\n payment_id,\n payment_method_id,\n payment_method,\n payment_at,\n fee_amount,\n refund_amount,\n subscription_id,\n subscription_plan,\n subscription_period_started_at,\n subscription_period_ended_at,\n subscription_status,\n customer_id,\n customer_created_at,\n customer_level,\n customer_name,\n customer_company,\n customer_email,\n customer_city,\n customer_country,\n source_relation\n from enhanced\n where line_item_index = 1\n and (discount_amount is not null or tax_amount is not null or fee_amount != 0 or refund_amount is not null)\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice_line_item", "package": null, "version": null}, {"name": "stg_stripe__invoice", "package": null, "version": null}, {"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "int_stripe__deduped_subscription_item", "package": null, "version": null}, {"name": "stg_stripe__price_plan", "package": null, "version": null}, {"name": "stg_stripe__product", "package": null, "version": null}, {"name": "stg_stripe__payment_intent", "package": null, "version": null}, {"name": "stg_stripe__payment_method", "package": null, "version": null}, {"name": "stg_stripe__fee", "package": null, "version": null}, {"name": "stg_stripe__account", "package": null, "version": null}, {"name": "stg_stripe__balance_transaction", "package": null, "version": null}, {"name": "stg_stripe__charge", "package": null, "version": null}, {"name": "stg_stripe__discount", "package": null, "version": null}, {"name": "stg_stripe__invoice_line_item", "package": null, "version": null}, {"name": "stg_stripe__refund", "package": null, "version": null}, {"name": "stg_stripe__customer", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.type_string", "macro.fivetran_utils.partition_by_source_relation", "macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.stripe.does_table_exist", "macro.dbt.type_int", "macro.dbt.type_float"], "nodes": ["model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__subscription", "model.stripe.int_stripe__deduped_subscription_item", "model.stripe.stg_stripe__price_plan", "model.stripe.stg_stripe__product", "model.stripe.stg_stripe__payment_intent", "model.stripe.stg_stripe__payment_method", "model.stripe.stg_stripe__fee", "model.stripe.stg_stripe__account", "model.stripe.stg_stripe__balance_transaction", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__discount", "model.stripe.stg_stripe__refund", "model.stripe.stg_stripe__customer"]}, "compiled_path": "target/compiled/stripe/models/standardized_models/stripe__line_item_enhanced.sql", "compiled": true, "compiled_code": "\n\n\nwith __dbt__cte__int_stripe__deduped_subscription_item as (\nwith subscription_item as ( \n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\n\n)\n\n/*\nSUBSCRIPTION_ITEM allows for one-to-many relationships between subscriptions and plans, so we need to dedupe to the subscription_id level\n*/\n\nselect\n subscription_id,\n source_relation,\n min(current_period_start) as current_period_start,\n max(current_period_end) as current_period_end\n \nfrom subscription_item\ngroup by 1, 2\n), invoice_line_item as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\" \n\n), invoice as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice\"\n\n\n), subscription as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\" \n\n), subscription_item as (\n\n select *\n from __dbt__cte__int_stripe__deduped_subscription_item \n\n--Newer Stripe connections will store current_period_start/end fields in SUBSCRIPTION_ITEM while older ones house these fields in SUBSCRIPTION_HISTORY -> grab both and coalesce\n), subscription_item_merge as (\n select \n coalesce(subscription.subscription_id, subscription_item.subscription_id) as subscription_id,\n subscription.status,\n coalesce(subscription.source_relation, subscription_item.source_relation) as source_relation,\n coalesce(subscription.current_period_start, subscription_item.current_period_start) as current_period_start,\n coalesce(subscription.current_period_end, subscription_item.current_period_end) as current_period_end\n from subscription\n left join subscription_item\n on subscription.subscription_id = subscription_item.subscription_id\n and subscription.source_relation = subscription_item.source_relation\n\n), price_plan as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan\" \n\n), product as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__product\"\n\n\n\n), payment_intent as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_intent\" \n\n\n), payment_method as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method\"\n\n\n\n), fee as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__fee\" \n\n), account as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__account\"\n\n), balance_transaction as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__balance_transaction\" \n\n), charge as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\" \n\n), discount as (\n\n select\n invoice_id,\n source_relation,\n sum(amount) as total_discount_amount\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__discount\"\n group by 1, 2\n\n), line_item_aggregate as (\n\n select\n invoice_id,\n source_relation,\n sum(amount) as total_line_item_amount\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\"\n group by 1, 2\n\n), refund as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__refund\" \n\n), customer as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\" \n\n), enhanced as (\n\n select\n invoice_line_item.invoice_id as header_id,\n cast(invoice_line_item.invoice_line_item_id as TEXT) as line_item_id,\n row_number() over (partition by invoice_line_item.invoice_id order by invoice_line_item.amount desc) as line_item_index,\n invoice.created_at as created_at,\n cast(invoice_line_item.currency as TEXT) as currency,\n cast(invoice.status as TEXT) as header_status,\n\n cast(price_plan.product_id as TEXT) as product_id, -- The ID of the product this price is associated with. https://docs.stripe.com/api/invoices/line_item#invoice_line_item_object-price-product\n cast(product.name as TEXT) as product_name,\n cast(product.type as TEXT) as product_type,\n\n case \n when bt_refund.balance_transaction_id is not null and bt_charge.balance_transaction_id is not null then 'charge + refund'\n when bt_charge.balance_transaction_id is not null then 'charge'\n when bt_refund.balance_transaction_id is not null then 'payment intent + refund'\n else coalesce(bt_charge.type, bt_refund.type)\n end as transaction_type,\n \n cast(invoice_line_item.type as TEXT) as billing_type,\n cast(invoice_line_item.quantity as numeric(28,6)) as quantity,\n\n cast(case \n when invoice_line_item.quantity = 0 then 0\n else (invoice_line_item.amount / invoice_line_item.quantity) \n end as numeric(28,6)) as unit_amount,\n\n cast(discount.total_discount_amount as numeric(28,6)) as discount_amount,\n cast(invoice.tax as numeric(28,6)) as tax_amount,\n cast(line_item_aggregate.total_line_item_amount as numeric(28,6)) as total_line_item_amount,\n cast(invoice.total as numeric(28,6)) as total_invoice_amount,\n cast(invoice_line_item.amount as numeric(28,6)) as total_amount,\n cast(payment_intent.payment_intent_id as TEXT) as payment_id,\n cast(payment_method.payment_method_id as TEXT) as payment_method_id,\n cast(payment_method.type as TEXT) as payment_method,\n cast(charge.created_at as timestamp) as payment_at,\n cast(coalesce(bt_charge.fee, 0) as numeric(28,6)) + cast(coalesce(bt_refund.fee, 0) as numeric(28,6)) as fee_amount,\n cast(refund.amount as numeric(28,6)) as refund_amount,\n cast(invoice.subscription_id as TEXT) as subscription_id,\n\n cast(product.name as TEXT) as subscription_plan,\n cast(subscription_item_merge.current_period_start as timestamp) as subscription_period_started_at,\n cast(subscription_item_merge.current_period_end as timestamp) as subscription_period_ended_at,\n cast(subscription_item_merge.status as TEXT) as subscription_status,\n\n cast(invoice.customer_id as TEXT) as customer_id,\n cast(customer.created_at as timestamp) as customer_created_at,\n 'customer' as customer_level,\n cast(customer.customer_name as TEXT) as customer_name, \n cast(connected_account.company_name as TEXT) as customer_company, \n cast(customer.email as TEXT) as customer_email,\n cast(customer.customer_address_city as TEXT) as customer_city,\n cast(customer.customer_address_country as TEXT) as customer_country,\n invoice_line_item.source_relation\n\n from invoice_line_item\n\n left join invoice\n on invoice.invoice_id = invoice_line_item.invoice_id\n and invoice.source_relation = invoice_line_item.source_relation\n\n left join line_item_aggregate\n on invoice.invoice_id = line_item_aggregate.invoice_id\n and invoice.source_relation = line_item_aggregate.source_relation\n\n left join charge \n on invoice.charge_id = charge.charge_id\n and invoice.invoice_id = charge.invoice_id\n and invoice.source_relation = charge.source_relation\n\n left join refund\n on charge.charge_id = refund.charge_id\n and charge.source_relation = refund.source_relation\n\n left join balance_transaction bt_charge\n on charge.balance_transaction_id = bt_charge.balance_transaction_id\n and charge.source_relation = bt_charge.source_relation\n\n left join balance_transaction bt_refund\n on refund.balance_transaction_id = bt_refund.balance_transaction_id\n and refund.source_relation = bt_refund.source_relation\n\n left join discount \n on invoice.invoice_id = discount.invoice_id\n and invoice.source_relation = discount.source_relation\n\n left join account connected_account\n on coalesce(bt_charge.connected_account_id, bt_refund.connected_account_id) = connected_account.account_id\n and coalesce(bt_charge.source_relation, bt_refund.source_relation) = connected_account.source_relation\n\n left join payment_intent\n on charge.payment_intent_id = payment_intent.payment_intent_id\n and charge.source_relation = payment_intent.source_relation\n\n \n left join payment_method\n on charge.payment_method_id = payment_method.payment_method_id\n and charge.source_relation = payment_method.source_relation\n \n\n left join customer \n on invoice.customer_id = customer.customer_id\n and invoice.source_relation = customer.source_relation\n\n \n\n left join subscription_item_merge\n on invoice.subscription_id = subscription_item_merge.subscription_id\n and invoice.source_relation = subscription_item_merge.source_relation\n\n left join price_plan\n\n \n on invoice_line_item.price_id = price_plan.price_plan_id\n \n and invoice_line_item.source_relation = price_plan.source_relation\n\n left join product\n on price_plan.product_id = product.product_id\n and price_plan.source_relation = product.source_relation\n \n\n), final as (\n\n-- invoice_line_item_level\n select\n header_id,\n line_item_id,\n line_item_index,\n 'line_item' as record_type,\n created_at,\n currency,\n header_status,\n product_id,\n product_name,\n transaction_type,\n billing_type,\n product_type,\n quantity,\n unit_amount,\n cast(null as numeric(28,6)) as discount_amount,\n cast(null as numeric(28,6)) as tax_amount,\n total_amount,\n payment_id,\n payment_method_id,\n payment_method,\n payment_at,\n cast(null as numeric(28,6)) as fee_amount,\n cast(null as numeric(28,6)) as refund_amount,\n subscription_id,\n subscription_plan,\n subscription_period_started_at,\n subscription_period_ended_at,\n subscription_status,\n customer_id,\n customer_created_at,\n customer_level,\n customer_name,\n customer_company,\n customer_email,\n customer_city,\n customer_country,\n source_relation\n from enhanced\n\n union all\n\n -- create records for fields only pertinent at the invoice level\n select\n header_id,\n cast(null as TEXT) as line_item_id,\n cast(0 as integer) as line_item_index,\n 'header' as record_type,\n created_at,\n currency,\n header_status,\n cast(null as TEXT) as product_id,\n cast(null as TEXT) as product_name,\n transaction_type,\n billing_type,\n cast(null as TEXT) as product_type,\n cast(null as float) as quantity,\n cast(null as float) as unit_amount,\n discount_amount,\n tax_amount,\n cast((total_invoice_amount - total_line_item_amount) as float) as total_amount,\n payment_id,\n payment_method_id,\n payment_method,\n payment_at,\n fee_amount,\n refund_amount,\n subscription_id,\n subscription_plan,\n subscription_period_started_at,\n subscription_period_ended_at,\n subscription_status,\n customer_id,\n customer_created_at,\n customer_level,\n customer_name,\n customer_company,\n customer_email,\n customer_city,\n customer_country,\n source_relation\n from enhanced\n where line_item_index = 1\n and (discount_amount is not null or tax_amount is not null or fee_amount != 0 or refund_amount is not null)\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.stripe.int_stripe__deduped_subscription_item", "sql": " __dbt__cte__int_stripe__deduped_subscription_item as (\nwith subscription_item as ( \n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\n\n)\n\n/*\nSUBSCRIPTION_ITEM allows for one-to-many relationships between subscriptions and plans, so we need to dedupe to the subscription_id level\n*/\n\nselect\n subscription_id,\n source_relation,\n min(current_period_start) as current_period_start,\n max(current_period_end) as current_period_end\n \nfrom subscription_item\ngroup by 1, 2\n)"}], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__invoice": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__invoice", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__invoice.sql", "original_file_path": "models/staging/stg_stripe__invoice.sql", "unique_id": "model.stripe.stg_stripe__invoice", "fqn": ["stripe", "staging", "stg_stripe__invoice"], "alias": "stg_stripe__invoice", "checksum": {"name": "sha256", "checksum": "5840e31d5c5705d76a24efba6ad35a47175ce16aef593ac1d24e0811a53bbbcb"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Invoices are statements of amounts owed by a customer, and are either generated one-off, or generated periodically from a subscription.", "columns": {"invoice_id": {"name": "invoice_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount_due": {"name": "amount_due", "description": "Final amount due at this time for this invoice. If the invoice\u2019s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "amount_paid": {"name": "amount_paid", "description": "The amount, that was paid. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "amount_remaining": {"name": "amount_remaining", "description": "The amount remaining, that is due. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "attempt_count": {"name": "attempt_count", "description": "Number of payment attempts made for this invoice, from the perspective of the payment retry schedule.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "auto_advance": {"name": "auto_advance", "description": "Controls whether Stripe will perform automatic collection of the invoice. When false, the invoice\u2019s state will not automatically advance without an explicit action.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_reason": {"name": "billing_reason", "description": "Indicates the reason why the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the latest charge generated for this invoice, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the customer who will be billed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users. Referenced as \u2018memo\u2019 in the Dashboard.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "due_date": {"name": "due_date", "description": "The date on which payment for this invoice is due. This value will be null for invoices where collection_method=charge_automatically.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "number": {"name": "number", "description": "A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer\u2019s unique invoice_prefix if it is specified.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_paid": {"name": "is_paid", "description": "Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer\u2019s account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "receipt_number": {"name": "receipt_number", "description": "This is the transaction number that appears on email receipts sent for this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription that the invoice pertains to,.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subtotal": {"name": "subtotal", "description": "Total of all subscriptions, invoice items, and prorations on the invoice before any discount or tax is applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "tax": {"name": "tax", "description": "The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "total": {"name": "total", "description": "Total after discounts and taxes. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "period_start": {"name": "period_start", "description": "Start of the usage period during for which the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "period_end": {"name": "period_end", "description": "End of the usage period during for which the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "default_payment_method_id": {"name": "default_payment_method_id", "description": "ID of the default payment method in this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "ID of the PaymentIntent associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "post_payment_credit_notes_amount": {"name": "post_payment_credit_notes_amount", "description": "Total amount of all post-payment credit notes issued for this invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "pre_payment_credit_notes_amount": {"name": "pre_payment_credit_notes_amount", "description": "Total amount of all pre-payment credit notes issued for this invoice. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "status_transitions_finalized_at": {"name": "status_transitions_finalized_at", "description": "The time that the invoice draft was finalized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status_transitions_marked_uncollectible_at": {"name": "status_transitions_marked_uncollectible_at", "description": "The time that the invoice was marked uncollectible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status_transitions_paid_at": {"name": "status_transitions_paid_at", "description": "The time that the invoice was paid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status_transitions_voided_at": {"name": "status_transitions_voided_at", "description": "The time that the invoice was voided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_invoices', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.984739, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice\"", "raw_code": "{{ config(enabled=var('stripe__using_invoices', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__invoice_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__invoice_tmp')),\n staging_columns=get_invoice_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as invoice_id,\n default_payment_method_id,\n payment_intent_id,\n subscription_id,\n {{ stripe.convert_values('amount_due') }},\n {{ stripe.convert_values('amount_paid') }},\n {{ stripe.convert_values('amount_remaining') }},\n {{ stripe.convert_values('post_payment_credit_notes_amount') }},\n {{ stripe.convert_values('pre_payment_credit_notes_amount') }},\n {{ stripe.convert_values('subtotal') }},\n {{ stripe.convert_values('tax') }},\n {{ stripe.convert_values('total') }},\n attempt_count,\n auto_advance,\n billing_reason,\n charge_id,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n currency,\n customer_id,\n description,\n due_date,\n metadata,\n number,\n paid as is_paid,\n receipt_number,\n status,\n period_start,\n period_end,\n cast(status_transitions_finalized_at as {{ dbt.type_timestamp() }}) as status_transitions_finalized_at,\n cast(status_transitions_marked_uncollectible_at as {{ dbt.type_timestamp() }}) as status_transitions_marked_uncollectible_at,\n cast(status_transitions_paid_at as {{ dbt.type_timestamp() }}) as status_transitions_paid_at,\n cast(status_transitions_voided_at as {{ dbt.type_timestamp() }}) as status_transitions_voided_at,\n source_relation\n\n {% if var('stripe__invoice_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__invoice_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n and not coalesce(is_deleted, false)\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice_tmp", "package": null, "version": null}, {"name": "stg_stripe__invoice_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_invoice_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__invoice_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__invoice.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount_due as amount_due,\n amount_paid as amount_paid,\n amount_remaining as amount_remaining,\n cast(null as integer) as application_fee_amount,\n post_payment_credit_notes_amount as post_payment_credit_notes_amount,\n pre_payment_credit_notes_amount as pre_payment_credit_notes_amount,\n attempt_count as attempt_count,\n cast(null as boolean) as attempted,\n auto_advance as auto_advance,\n cast(null as TEXT) as billing,\n billing_reason as billing_reason,\n cast(null as TEXT) as charge_id,\n cast(null as timestamp) as created,\n currency as currency,\n customer_id as customer_id,\n cast(null as timestamp) as date,\n cast(null as TEXT) as default_source_id,\n description as description,\n due_date as due_date,\n cast(null as integer) as ending_balance,\n cast(null as timestamp) as finalized_at,\n cast(null as TEXT) as footer,\n cast(null as TEXT) as hosted_invoice_url,\n id as id,\n cast(null as TEXT) as invoice_pdf,\n is_deleted as is_deleted,\n livemode as livemode,\n metadata as metadata,\n cast(null as timestamp) as next_payment_attempt,\n number as number,\n paid as paid,\n default_payment_method_id as default_payment_method_id,\n cast(null as TEXT) as payment_intent_id,\n subscription_id as subscription_id,\n period_end as period_end,\n period_start as period_start,\n receipt_number as receipt_number,\n cast(null as integer) as starting_balance,\n cast(null as TEXT) as statement_descriptor,\n status as status,\n cast(null as timestamp) as status_transitions_finalized_at,\n cast(null as timestamp) as status_transitions_marked_uncollectible_at,\n cast(null as timestamp) as status_transitions_paid_at,\n cast(null as timestamp) as status_transitions_voided_at,\n cast(null as integer) as subscription_proration_date,\n subtotal as subtotal,\n tax as tax,\n cast(null as numeric(28,6)) as tax_percent,\n cast(null as integer) as threshold_reason_amount_gte,\n total as total,\n cast(null as timestamp) as webhooks_delivered_at\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as invoice_id,\n default_payment_method_id,\n payment_intent_id,\n subscription_id,\n \n\n\n\n \n amount_due as amount_due\n \n\n,\n \n\n\n\n \n amount_paid as amount_paid\n \n\n,\n \n\n\n\n \n amount_remaining as amount_remaining\n \n\n,\n \n\n\n\n \n post_payment_credit_notes_amount as post_payment_credit_notes_amount\n \n\n,\n \n\n\n\n \n pre_payment_credit_notes_amount as pre_payment_credit_notes_amount\n \n\n,\n \n\n\n\n \n subtotal as subtotal\n \n\n,\n \n\n\n\n \n tax as tax\n \n\n,\n \n\n\n\n \n total as total\n \n\n,\n attempt_count,\n auto_advance,\n billing_reason,\n charge_id,\n cast(created as timestamp) as created_at,\n currency,\n customer_id,\n description,\n due_date,\n metadata,\n number,\n paid as is_paid,\n receipt_number,\n status,\n period_start,\n period_end,\n cast(status_transitions_finalized_at as timestamp) as status_transitions_finalized_at,\n cast(status_transitions_marked_uncollectible_at as timestamp) as status_transitions_marked_uncollectible_at,\n cast(status_transitions_paid_at as timestamp) as status_transitions_paid_at,\n cast(status_transitions_voided_at as timestamp) as status_transitions_voided_at,\n source_relation\n\n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n and not coalesce(is_deleted, false)\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__transfer": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__transfer", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__transfer.sql", "original_file_path": "models/staging/stg_stripe__transfer.sql", "unique_id": "model.stripe.stg_stripe__transfer", "fqn": ["stripe", "staging", "stg_stripe__transfer"], "alias": "stg_stripe__transfer", "checksum": {"name": "sha256", "checksum": "4731313035c21eca72000c4b8fe37e3889ac3b665014801d5dae70de995c78e1"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Properties belonging to a Stripe transfer.", "columns": {"transfer_id": {"name": "transfer_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transfer_amount": {"name": "transfer_amount", "description": "Amount in currency units to be transferred. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "transfer_amount_reversed": {"name": "transfer_amount_reversed", "description": "Amount in currency units reversed (can be less than the amount attribute on the transfer if a partial reversal was issued). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "Balance transaction that describes the impact of this transfer on your account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transfer_created_at": {"name": "transfer_created_at", "description": "Time that this record of the transfer was first created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transfer_currency": {"name": "transfer_currency", "description": "Three-letter ISO currency code, in lowercase. Must be a supported currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transfer_description": {"name": "transfer_description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transfer_destination": {"name": "transfer_destination", "description": "ID of the Stripe account the transfer was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "destination_payment": {"name": "destination_payment", "description": "If the destination is a Stripe account, the payment that the destination account received for the transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "destination_payment_id": {"name": "destination_payment_id", "description": "If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transfer_metadata": {"name": "transfer_metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transfer_is_reversed": {"name": "transfer_is_reversed", "description": "Boolean of whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_transaction": {"name": "source_transaction", "description": "The source transaction related to this transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_transaction_id": {"name": "source_transaction_id", "description": "ID of the charge or payment that was used to fund the transfer. If null, the transfer was funded from the available balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_type": {"name": "source_type", "description": "The source balance this transfer came from. One of card, fpx, or bank_account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transfer_group": {"name": "transfer_group", "description": "A string that identifies this transaction as part of a group. See the Connect documentation for details.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_transfers', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670938.0291653, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__transfer\"", "raw_code": "{{ config(enabled=var('stripe__using_transfers', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__transfer_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__transfer_tmp')),\n staging_columns=get_transfer_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select\n id as transfer_id,\n {{ stripe.convert_values('amount', alias='transfer_amount') }},\n {{ stripe.convert_values('amount_reversed', alias='transfer_amount_reversed') }},\n balance_transaction_id,\n cast(created as {{ dbt.type_timestamp() }}) as transfer_created_at,\n currency as transfer_currency,\n description as transfer_description,\n destination as transfer_destination,\n destination_payment,\n destination_payment_id,\n metadata as transfer_metadata,\n reversed as transfer_is_reversed,\n source_transaction,\n source_transaction_id,\n source_type,\n transfer_group,\n source_relation\n \n {% if var('stripe__transfer_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__transfer_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__transfer_tmp", "package": null, "version": null}, {"name": "stg_stripe__transfer_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_transfer_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__transfer_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__transfer.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__transfer_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n amount_reversed as amount_reversed,\n balance_transaction_id as balance_transaction_id,\n created as created,\n currency as currency,\n description as description,\n destination as destination,\n destination_payment as destination_payment,\n destination_payment_id as destination_payment_id,\n id as id,\n livemode as livemode,\n metadata as metadata,\n reversed as reversed,\n source_transaction as source_transaction,\n source_transaction_id as source_transaction_id,\n source_type as source_type,\n transfer_group as transfer_group\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select\n id as transfer_id,\n \n\n\n\n \n amount as transfer_amount\n \n\n,\n \n\n\n\n \n amount_reversed as transfer_amount_reversed\n \n\n,\n balance_transaction_id,\n cast(created as timestamp) as transfer_created_at,\n currency as transfer_currency,\n description as transfer_description,\n destination as transfer_destination,\n destination_payment,\n destination_payment_id,\n metadata as transfer_metadata,\n reversed as transfer_is_reversed,\n source_transaction,\n source_transaction_id,\n source_type,\n transfer_group,\n source_relation\n \n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__dispute": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__dispute", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__dispute.sql", "original_file_path": "models/staging/stg_stripe__dispute.sql", "unique_id": "model.stripe.stg_stripe__dispute", "fqn": ["stripe", "staging", "stg_stripe__dispute"], "alias": "stg_stripe__dispute", "checksum": {"name": "sha256", "checksum": "530a5c29c36bb6a7575fbae92b0b0f9ebde55bcc151bea41021208d3d92d8e0a"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Properties belonging to a Stripe dispute.", "columns": {"dispute_id": {"name": "dispute_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "dispute_amount": {"name": "dispute_amount", "description": "Disputed amount. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed). \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "balance_transaction": {"name": "balance_transaction", "description": "List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the charge that was disputed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "Account id associated with this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "dispute_created_at": {"name": "dispute_created_at", "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "dispute_currency": {"name": "dispute_currency", "description": "Three-letter ISO currency code, in lowercase. Must be a supported currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_access_activity_log": {"name": "evidence_access_activity_log", "description": "Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_billing_address": {"name": "evidence_billing_address", "description": "The billing address provided by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_cancellation_policy": {"name": "evidence_cancellation_policy", "description": "(ID of a file upload) Your subscription cancellation policy, as shown to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_cancellation_policy_disclosure": {"name": "evidence_cancellation_policy_disclosure", "description": "An explanation of how and when the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_cancellation_rebuttal": {"name": "evidence_cancellation_rebuttal", "description": "A justification for why the customer\u2019s subscription was not canceled. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_customer_communication": {"name": "evidence_customer_communication", "description": "(ID of a file upload) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_customer_email_address": {"name": "evidence_customer_email_address", "description": "The email address of the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_customer_name": {"name": "evidence_customer_name", "description": "The name of the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_customer_purchase_ip": {"name": "evidence_customer_purchase_ip", "description": "The IP address that the customer used when making the purchase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_customer_signature": {"name": "evidence_customer_signature", "description": "(ID of a file upload) A relevant document or contract showing the customer\u2019s signature.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_details_due_by": {"name": "evidence_details_due_by", "description": "Date by which evidence must be submitted in order to successfully challenge dispute. Will be 0 if the customer\u2019s bank or credit card company doesn\u2019t allow a response for this particular dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_details_has_evidence": {"name": "evidence_details_has_evidence", "description": "Whether evidence has been staged for this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_details_past_due": {"name": "evidence_details_past_due", "description": "Whether the last evidence submission was submitted past the due date. Defaults to false if no evidence submissions have occurred. If true, then delivery of the latest evidence is not guaranteed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_details_submission_count": {"name": "evidence_details_submission_count", "description": "The number of times evidence has been submitted. Typically, you may only submit evidence once.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_duplicate_charge_documentation": {"name": "evidence_duplicate_charge_documentation", "description": "(ID of a file upload) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_duplicate_charge_explanation": {"name": "evidence_duplicate_charge_explanation", "description": "An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_duplicate_charge_id": {"name": "evidence_duplicate_charge_id", "description": "The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_product_description": {"name": "evidence_product_description", "description": "A description of the product or service that was sold. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_receipt": {"name": "evidence_receipt", "description": "(ID of a file upload) Any receipt or message sent to the customer notifying them of the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_refund_policy": {"name": "evidence_refund_policy", "description": "(ID of a file upload) Your refund policy, as shown to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_refund_policy_disclosure": {"name": "evidence_refund_policy_disclosure", "description": "Documentation demonstrating that the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_refund_refusal_explanation": {"name": "evidence_refund_refusal_explanation", "description": "A justification for why the customer is not entitled to a refund. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_service_date": {"name": "evidence_service_date", "description": "The date on which the customer received or began receiving the purchased service, in a clear human-readable format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_service_documentation": {"name": "evidence_service_documentation", "description": "(ID of a file upload) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_shipping_address": {"name": "evidence_shipping_address", "description": "The address to which a physical product was shipped. You should try to include as complete address information as possible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_shipping_carrier": {"name": "evidence_shipping_carrier", "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_shipping_date": {"name": "evidence_shipping_date", "description": "The date on which a physical product began its route to the shipping address, in a clear human-readable format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_shipping_documentation": {"name": "evidence_shipping_documentation", "description": "(ID of a file upload) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer\u2019s full shipping address, if possible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_shipping_tracking_number": {"name": "evidence_shipping_tracking_number", "description": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_uncategorized_file": {"name": "evidence_uncategorized_file", "description": "(ID of a file upload) Any additional evidence or statements.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_uncategorized_text": {"name": "evidence_uncategorized_text", "description": "Any additional evidence or statements. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_charge_refundable": {"name": "is_charge_refundable", "description": "Boolean ff true, it is still possible to refund the disputed payment. Once the payment has been fully refunded, no further funds will be withdrawn from your Stripe account as a result of this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "dispute_metadata": {"name": "dispute_metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "dispute_reason": {"name": "dispute_reason", "description": "Reason given by cardholder for dispute. Possible values are bank_cannot_process, check_returned, credit_not_processed, customer_initiated, debit_not_authorized, duplicate, fraudulent, general, incorrect_account_details, insufficient_funds, product_not_received, product_unacceptable, subscription_canceled, or unrecognized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "dispute_status": {"name": "dispute_status", "description": "Current status of dispute. Possible values are warning_needs_response, warning_under_review, warning_closed, needs_response, under_review, won, or lost.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670938.0236824, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__dispute\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__dispute_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__dispute_tmp')),\n staging_columns=get_dispute_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select\n id as dispute_id,\n {{ stripe.convert_values('amount', alias='dispute_amount') }},\n balance_transaction,\n charge_id,\n connected_account_id,\n cast(created as {{ dbt.type_timestamp() }}) as dispute_created_at,\n currency as dispute_currency,\n evidence_access_activity_log,\n evidence_billing_address,\n evidence_cancellation_policy,\n evidence_cancellation_policy_disclosure,\n evidence_cancellation_rebuttal,\n evidence_customer_communication,\n evidence_customer_email_address,\n evidence_customer_name,\n evidence_customer_purchase_ip,\n evidence_customer_signature,\n evidence_details_due_by,\n evidence_details_has_evidence,\n evidence_details_past_due,\n evidence_details_submission_count,\n evidence_duplicate_charge_documentation,\n evidence_duplicate_charge_explanation,\n evidence_duplicate_charge_id,\n evidence_product_description,\n evidence_receipt,\n evidence_refund_policy,\n evidence_refund_policy_disclosure,\n evidence_refund_refusal_explanation,\n evidence_service_date,\n evidence_service_documentation,\n evidence_shipping_address,\n evidence_shipping_carrier,\n evidence_shipping_date,\n evidence_shipping_documentation,\n evidence_shipping_tracking_number,\n evidence_uncategorized_file,\n evidence_uncategorized_text,\n is_charge_refundable,\n metadata as dispute_metadata,\n reason as dispute_reason,\n status as dispute_status,\n source_relation\n \n {% if var('stripe__dispute_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__dispute_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__dispute_tmp", "package": null, "version": null}, {"name": "stg_stripe__dispute_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_dispute_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__dispute_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__dispute.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__dispute_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n balance_transaction as balance_transaction,\n charge_id as charge_id,\n connected_account_id as connected_account_id,\n created as created,\n currency as currency,\n evidence_access_activity_log as evidence_access_activity_log,\n evidence_billing_address as evidence_billing_address,\n evidence_cancellation_policy as evidence_cancellation_policy,\n evidence_cancellation_policy_disclosure as evidence_cancellation_policy_disclosure,\n evidence_cancellation_rebuttal as evidence_cancellation_rebuttal,\n evidence_customer_communication as evidence_customer_communication,\n evidence_customer_email_address as evidence_customer_email_address,\n evidence_customer_name as evidence_customer_name,\n evidence_customer_purchase_ip as evidence_customer_purchase_ip,\n evidence_customer_signature as evidence_customer_signature,\n evidence_details_due_by as evidence_details_due_by,\n evidence_details_has_evidence as evidence_details_has_evidence,\n evidence_details_past_due as evidence_details_past_due,\n evidence_details_submission_count as evidence_details_submission_count,\n evidence_duplicate_charge_documentation as evidence_duplicate_charge_documentation,\n evidence_duplicate_charge_explanation as evidence_duplicate_charge_explanation,\n evidence_duplicate_charge_id as evidence_duplicate_charge_id,\n evidence_product_description as evidence_product_description,\n evidence_receipt as evidence_receipt,\n evidence_refund_policy as evidence_refund_policy,\n evidence_refund_policy_disclosure as evidence_refund_policy_disclosure,\n evidence_refund_refusal_explanation as evidence_refund_refusal_explanation,\n evidence_service_date as evidence_service_date,\n evidence_service_documentation as evidence_service_documentation,\n evidence_shipping_address as evidence_shipping_address,\n evidence_shipping_carrier as evidence_shipping_carrier,\n evidence_shipping_date as evidence_shipping_date,\n evidence_shipping_documentation as evidence_shipping_documentation,\n evidence_shipping_tracking_number as evidence_shipping_tracking_number,\n evidence_uncategorized_file as evidence_uncategorized_file,\n evidence_uncategorized_text as evidence_uncategorized_text,\n id as id,\n is_charge_refundable as is_charge_refundable,\n livemode as livemode,\n metadata as metadata,\n reason as reason,\n status as status\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select\n id as dispute_id,\n \n\n\n\n \n amount as dispute_amount\n \n\n,\n balance_transaction,\n charge_id,\n connected_account_id,\n cast(created as timestamp) as dispute_created_at,\n currency as dispute_currency,\n evidence_access_activity_log,\n evidence_billing_address,\n evidence_cancellation_policy,\n evidence_cancellation_policy_disclosure,\n evidence_cancellation_rebuttal,\n evidence_customer_communication,\n evidence_customer_email_address,\n evidence_customer_name,\n evidence_customer_purchase_ip,\n evidence_customer_signature,\n evidence_details_due_by,\n evidence_details_has_evidence,\n evidence_details_past_due,\n evidence_details_submission_count,\n evidence_duplicate_charge_documentation,\n evidence_duplicate_charge_explanation,\n evidence_duplicate_charge_id,\n evidence_product_description,\n evidence_receipt,\n evidence_refund_policy,\n evidence_refund_policy_disclosure,\n evidence_refund_refusal_explanation,\n evidence_service_date,\n evidence_service_documentation,\n evidence_shipping_address,\n evidence_shipping_carrier,\n evidence_shipping_date,\n evidence_shipping_documentation,\n evidence_shipping_tracking_number,\n evidence_uncategorized_file,\n evidence_uncategorized_text,\n is_charge_refundable,\n metadata as dispute_metadata,\n reason as dispute_reason,\n status as dispute_status,\n source_relation\n \n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payout": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payout", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__payout.sql", "original_file_path": "models/staging/stg_stripe__payout.sql", "unique_id": "model.stripe.stg_stripe__payout", "fqn": ["stripe", "staging", "stg_stripe__payout"], "alias": "stg_stripe__payout", "checksum": {"name": "sha256", "checksum": "98ad4293dd7c220375dbb0d7baee37b7320aca0c6c00dd51054d59d3164bdb30"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "A Payout object is created when you receive funds from Stripe, or when you initiate a payout to either a bank account or debit card of a connected Stripe account.", "columns": {"payout_id": {"name": "payout_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount (in currency units) to be transferred to your bank account or debit card. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "arrival_date_at": {"name": "arrival_date_at", "description": "Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_automatic": {"name": "is_automatic", "description": "true if the payout was created by an automated payout schedule, and false if it was requested manually.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the latest balance transaction linked to this payout, describing its impact on your account balance. The payout to balance_transaction relationship is 1:many.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "destination_bank_account_id": {"name": "destination_bank_account_id", "description": "ID of the bank account the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "destination_card_id": {"name": "destination_card_id", "description": "ID of the card the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "method": {"name": "method", "description": "The method used to send this payout, which can be standard or instant.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_type": {"name": "source_type", "description": "The source balance this payout came from. One of card, fpx, or bank_account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Current status of the payout. Can be paid, pending, in_transit, canceled or failed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "Can be bank_account or card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_payouts', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.975446, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payout\"", "raw_code": "{{ config(enabled=var('stripe__using_payouts', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__payout_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__payout_tmp')),\n staging_columns=get_payout_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as payout_id,\n {{ stripe.convert_values('amount') }},\n cast(arrival_date as {{ dbt.type_timestamp() }}) as arrival_date_at,\n automatic as is_automatic,\n balance_transaction_id, -- payout to balance_transaction is 1:many. This is the latest balance_transaction linked to the payout.\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n currency,\n description,\n destination_bank_account_id,\n destination_card_id,\n metadata,\n method,\n source_type,\n status,\n type,\n source_relation\n\n {% if var('stripe__payout_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__payout_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payout_tmp", "package": null, "version": null}, {"name": "stg_stripe__payout_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_payout_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__payout_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__payout.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payout_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n arrival_date as arrival_date,\n automatic as automatic,\n balance_transaction_id as balance_transaction_id,\n connected_account_id as connected_account_id,\n created as created,\n currency as currency,\n description as description,\n destination_bank_account_id as destination_bank_account_id,\n destination_card_id as destination_card_id,\n failure_balance_transaction_id as failure_balance_transaction_id,\n failure_code as failure_code,\n failure_message as failure_message,\n id as id,\n livemode as livemode,\n metadata as metadata,\n method as method,\n source_type as source_type,\n statement_descriptor as statement_descriptor,\n status as status,\n type as type\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as payout_id,\n \n\n\n\n \n amount as amount\n \n\n,\n cast(arrival_date as timestamp) as arrival_date_at,\n automatic as is_automatic,\n balance_transaction_id, -- payout to balance_transaction is 1:many. This is the latest balance_transaction linked to the payout.\n cast(created as timestamp) as created_at,\n currency,\n description,\n destination_bank_account_id,\n destination_card_id,\n metadata,\n method,\n source_type,\n status,\n type,\n source_relation\n\n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__refund": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__refund", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__refund.sql", "original_file_path": "models/staging/stg_stripe__refund.sql", "unique_id": "model.stripe.stg_stripe__refund", "fqn": ["stripe", "staging", "stg_stripe__refund"], "alias": "stg_stripe__refund", "checksum": {"name": "sha256", "checksum": "8d0531fba699fa1b7ca898825d4ad390571636a9bd098424fffde032ffb84149"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Details of transactions that have been refunded", "columns": {"refund_id": {"name": "refund_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "ID for the balance transaction that describes the impact on your account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the charge that was refunded.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users. (Available on non-card refunds only)", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "reason": {"name": "reason", "description": "Reason for the refund, either user-provided (duplicate, fraudulent, or requested_by_customer) or generated by Stripe internally (expired_uncaptured_charge).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "receipt_number": {"name": "receipt_number", "description": "This is the transaction number that appears on email receipts sent for this refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of the refund. For credit card refunds, this can be pending, succeeded, or failed. For other types of refunds, it can be pending, succeeded, failed, or canceled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "ID of the payment intent associated with this refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.977805, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__refund\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__refund_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__refund_tmp')),\n staging_columns=get_refund_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as refund_id,\n payment_intent_id,\n balance_transaction_id,\n charge_id,\n {{ stripe.convert_values('amount') }},\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n currency,\n description,\n metadata,\n reason,\n receipt_number,\n status,\n source_relation\n\n {% if var('stripe__refund_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__refund_metadata')) }}\n {% endif %}\n\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__refund_tmp", "package": null, "version": null}, {"name": "stg_stripe__refund_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_refund_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp"], "nodes": ["model.stripe.stg_stripe__refund_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__refund.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__refund_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n balance_transaction_id as balance_transaction_id,\n charge_id as charge_id,\n cast(null as TEXT) as payment_intent_id,\n created as created,\n currency as currency,\n description as description,\n failure_balance_transaction_id as failure_balance_transaction_id,\n failure_reason as failure_reason,\n id as id,\n metadata as metadata,\n reason as reason,\n receipt_number as receipt_number,\n status as status\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as refund_id,\n payment_intent_id,\n balance_transaction_id,\n charge_id,\n \n\n\n\n \n amount as amount\n \n\n,\n cast(created as timestamp) as created_at,\n currency,\n description,\n metadata,\n reason,\n receipt_number,\n status,\n source_relation\n\n \n\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__product": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__product", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__product.sql", "original_file_path": "models/staging/stg_stripe__product.sql", "unique_id": "model.stripe.stg_stripe__product", "fqn": ["stripe", "staging", "stg_stripe__product"], "alias": "stg_stripe__product", "checksum": {"name": "sha256", "checksum": "9f85d0a9b9cdb4dc0b2951a9c36e0cad18bf62ffa408b00aaee264e02adc5645"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Properties belonging to a Stripe product.", "columns": {"product_id": {"name": "product_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_active": {"name": "is_active", "description": "Whether the product is currently available for purchase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "attributes": {"name": "attributes", "description": "Key-value pairs that can be attached to a product object, useful for storing additional structured information.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "caption": {"name": "caption", "description": "A brief explanation or description of the product for display purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Timestamp indicating when the product was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "deactivate_at": {"name": "deactivate_at", "description": "List of dates when the product will be deactivated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "The product\u2019s description, meant to be displayable to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "images": {"name": "images", "description": "A list of up to 8 URLs of images for this product, meant to be displayable to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Indicates whether the product has been deleted.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "name": {"name": "name", "description": "The product\u2019s name, meant to be displayable to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shippable": {"name": "shippable", "description": "Whether this product is shipped (i.e., physical goods).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "Extra information about a product which will appear on your customer\u2019s credit card statement.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the product (e.g., good, service).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "unit_label": {"name": "unit_label", "description": "A label that represents units of this product, included in receipts and invoices.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "updated": {"name": "updated", "description": "Time at which the object was last updated, measured in seconds since the Unix epoch.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "url": {"name": "url", "description": "A URL of a publicly-accessible webpage for this product.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_subscriptions', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670938.0333598, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__product\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n\nwith product as (\n\n select * \n from {{ ref('stg_stripe__product_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__product_tmp')),\n staging_columns=get_product_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from product\n),\n\nfinal as (\n\n select \n id as product_id,\n is_active, -- renamed in macro get_product_columns, source column name: active\n attributes,\n caption,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n cast(deactivate_on as {{ dbt.type_timestamp() }}) as deactivate_at,\n description,\n images,\n is_deleted,\n name,\n shippable,\n statement_descriptor,\n type,\n unit_label,\n updated,\n url,\n source_relation\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__product_tmp", "package": null, "version": null}, {"name": "stg_stripe__product_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_product_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__product_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__product.sql", "compiled": true, "compiled_code": "\n\nwith product as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__product_tmp\"\n),\n\nfields as (\n\n select\n \n cast(null as timestamp) as fivetran_synced,\n id as id,\n active as is_active,\n cast(null as TEXT) as attributes,\n caption as caption,\n created as created,\n cast(null as timestamp) as deactivate_on,\n description as description,\n cast(null as TEXT) as images,\n is_deleted as is_deleted,\n livemode as livemode,\n name as name,\n shippable as shippable,\n statement_descriptor as statement_descriptor,\n type as type,\n unit_label as unit_label,\n updated as updated,\n url as url\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from product\n),\n\nfinal as (\n\n select \n id as product_id,\n is_active, -- renamed in macro get_product_columns, source column name: active\n attributes,\n caption,\n cast(created as timestamp) as created_at,\n cast(deactivate_on as timestamp) as deactivate_at,\n description,\n images,\n is_deleted,\n name,\n shippable,\n statement_descriptor,\n type,\n unit_label,\n updated,\n url,\n source_relation\n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__invoice_line_item": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__invoice_line_item", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__invoice_line_item.sql", "original_file_path": "models/staging/stg_stripe__invoice_line_item.sql", "unique_id": "model.stripe.stg_stripe__invoice_line_item", "fqn": ["stripe", "staging", "stg_stripe__invoice_line_item"], "alias": "stg_stripe__invoice_line_item", "checksum": {"name": "sha256", "checksum": "433868d6b2f9e9ddf4e26df9bf2533bc0671038fa1dcfab04e96603f2b319d81"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "The different items that an invoice contains", "columns": {"invoice_line_item_id": {"name": "invoice_line_item_id", "description": "Unique identifier for the object. Note that the same line item can be shown across different invoices, so this value can appear multiple times.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The ID of the invoice this item is a part of", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The ID of the invoice item this item is a part of", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "price_id": {"name": "price_id", "description": "ID of the price object this item pertains to", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_discountable": {"name": "is_discountable", "description": "If true, discounts will apply to this line item. Always false for prorations.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "plan_id": {"name": "plan_id", "description": "The ID of the plan of the subscription, if the line item is a subscription or a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "proration": {"name": "proration", "description": "Whether this is a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The quantity of the subscription, if the line item is a subscription or a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription that the invoice item pertains to, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_item_id": {"name": "subscription_item_id", "description": "The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "A string identifying the type of the source of this line item, either an invoice item or a subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "unique_invoice_line_item_id": {"name": "unique_invoice_line_item_id", "description": "A unique id generated and only for old invoice line item ID's from a past version of the API. The introduction of this field resolves the pagination break issue for invoice line items, which was introduced by the [Stripe API update](https://stripe.com/docs/upgrades#2019-12-03).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "period_start": {"name": "period_start", "description": "Start of the usage period during which invoice items were added to this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "period_end": {"name": "period_end", "description": "End of the usage period during which invoice items were added to this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_invoices', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.9792292, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\"", "raw_code": "{{ config(enabled=var('stripe__using_invoices', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__invoice_line_item_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__invoice_line_item_tmp')),\n staging_columns=get_invoice_line_item_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as invoice_line_item_id,\n invoice_id,\n invoice_item_id,\n {{ stripe.convert_values('amount') }},\n currency,\n description,\n discountable as is_discountable,\n plan_id,\n price_id,\n proration,\n quantity,\n subscription_id,\n subscription_item_id,\n type,\n unique_id as unique_invoice_line_item_id,\n period_start,\n period_end,\n source_relation\n \n {% if var('stripe__invoice_line_item_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__invoice_line_item_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n\n {% if var('stripe__using_invoice_line_sub_filter', true) %}\n and id not like 'sub%' -- ids starting with 'sub' are temporary and are replaced by permanent ids starting with 'sli' \n {% endif %}\n\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice_line_item_tmp", "package": null, "version": null}, {"name": "stg_stripe__invoice_line_item_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_invoice_line_item_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__invoice_line_item_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__invoice_line_item.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n currency as currency,\n description as description,\n discountable as discountable,\n id as id,\n invoice_id as invoice_id,\n cast(null as TEXT) as invoice_item_id,\n livemode as livemode,\n metadata as metadata,\n period_end as period_end,\n period_start as period_start,\n plan_id as plan_id,\n cast(null as TEXT) as price_id,\n proration as proration,\n quantity as quantity,\n subscription_id as subscription_id,\n subscription_item_id as subscription_item_id,\n type as type,\n unique_id as unique_id\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as invoice_line_item_id,\n invoice_id,\n invoice_item_id,\n \n\n\n\n \n amount as amount\n \n\n,\n currency,\n description,\n discountable as is_discountable,\n plan_id,\n price_id,\n proration,\n quantity,\n subscription_id,\n subscription_item_id,\n type,\n unique_id as unique_invoice_line_item_id,\n period_start,\n period_end,\n source_relation\n \n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n\n \n and id not like 'sub%' -- ids starting with 'sub' are temporary and are replaced by permanent ids starting with 'sli' \n \n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__price_plan": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__price_plan", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__price_plan.sql", "original_file_path": "models/staging/stg_stripe__price_plan.sql", "unique_id": "model.stripe.stg_stripe__price_plan", "fqn": ["stripe", "staging", "stg_stripe__price_plan"], "alias": "stg_stripe__price_plan", "checksum": {"name": "sha256", "checksum": "bc609d38fa5b014477cb31eed1c52ab418da8d9c8f7024e634f18d10798763a8"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "This model defines the base price, currency, and billing cycle for recurring purchases of products. Please note that the Prices API replaced the Plans API in Stripe, so if you have migrated and choose to use the Price object then these columns come from the Price object. Otherwise, these will come from the Plan object. For how to configure, refer to the README.", "columns": {"price_plan_id": {"name": "price_plan_id", "description": "The ID of the record. If you have opted to use the Prices API, this will be the ID from the price object. If you opted not to, this will be the ID from the plan object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_active": {"name": "is_active", "description": "Whether the plan can be used for new purchases.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "unit_amount": {"name": "unit_amount", "description": "The unit amount in currency units to be charged, represented as a whole integer if possible. In the Plan source table as Amount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "recurring_interval": {"name": "recurring_interval", "description": "The frequency at which a subscription is billed. One of day, week, month or year. In the Plan table as Interval.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "recurring_interval_count": {"name": "recurring_interval_count", "description": "The number of intervals between subscription billings. For example, interval_count=3 bills every 3 months. In the plan source table as interval_count.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "nickname": {"name": "nickname", "description": "A brief description of the plan, hidden from customers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "The id of the product whose pricing this plan determines.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "recurring_usage_type": {"name": "recurring_usage_type", "description": "Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed. In the Plan object as usage_type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "recurring_aggregate_usage": {"name": "recurring_aggregate_usage", "description": "Specifies a usage aggregation strategy for prices of usage_type=metered. Allowed values are sum for summing up all usage during a period, last_during_period for using the last usage record reported within a period, last_ever for using the last usage record ever (across period bounds) or max which uses the usage record with the maximum reported usage during a period. Defaults to sum. In the plan source table as aggregate_usage.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_scheme": {"name": "billing_scheme", "description": "Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in unit_amount or unit_amount_decimal) will be charged per unit in quantity (for prices with usage_type=licensed), or per unit of total usage (for prices with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The ID of the invoice item this record is a part of.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Whether record has been deleted.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_subscriptions', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.9923556, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n\nwith price_plan as (\n\n select *\n from {{ ref('stg_stripe__price_plan_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__price_plan_tmp')),\n staging_columns=get_price_plan_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from price_plan\n),\n\nfinal as (\n\n select\n cast(id as {{ dbt.type_string() }}) as price_plan_id,\n is_active,\n {{ stripe.convert_values('unit_amount') }},\n currency,\n cast(recurring_interval as {{ dbt.type_string() }}) as recurring_interval,\n cast(recurring_interval_count as {{ dbt.type_int() }}) as recurring_interval_count,\n recurring_usage_type,\n recurring_aggregate_usage,\n metadata,\n nickname,\n product_id,\n billing_scheme,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n is_deleted,\n source_relation\n\n {% if var('stripe__price_plan_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__price_plan_metadata')) }}\n {% endif %}\n \n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__price_plan_tmp", "package": null, "version": null}, {"name": "stg_stripe__price_plan_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_price_plan_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_string", "macro.stripe.convert_values", "macro.dbt.type_int", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__price_plan_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__price_plan.sql", "compiled": true, "compiled_code": "\n\nwith price_plan as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n active as is_active,\n billing_scheme as billing_scheme,\n created as created,\n currency as currency,\n id as id,\n is_deleted as is_deleted,\n livemode as livemode,\n metadata as metadata,\n nickname as nickname,\n product_id as product_id,\n recurring_aggregate_usage as recurring_aggregate_usage,\n recurring_interval as recurring_interval,\n recurring_interval_count as recurring_interval_count,\n recurring_usage_type as recurring_usage_type,\n unit_amount as unit_amount,\n unit_amount_decimal as unit_amount_decimal\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from price_plan\n),\n\nfinal as (\n\n select\n cast(id as TEXT) as price_plan_id,\n is_active,\n \n\n\n\n \n unit_amount as unit_amount\n \n\n,\n currency,\n cast(recurring_interval as TEXT) as recurring_interval,\n cast(recurring_interval_count as integer) as recurring_interval_count,\n recurring_usage_type,\n recurring_aggregate_usage,\n metadata,\n nickname,\n product_id,\n billing_scheme,\n cast(created as timestamp) as created_at,\n is_deleted,\n source_relation\n\n \n \n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__discount": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__discount", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__discount.sql", "original_file_path": "models/staging/stg_stripe__discount.sql", "unique_id": "model.stripe.stg_stripe__discount", "fqn": ["stripe", "staging", "stg_stripe__discount"], "alias": "stg_stripe__discount", "checksum": {"name": "sha256", "checksum": "1fe91bf5571516923891517bdc130d613ec490b36a3f3bfafed4a662b847662f"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Properties belonging to a Stripe discount.", "columns": {"discount_id": {"name": "discount_id", "description": "The ID of the discount object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "String representing the object\u2019s type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type_id": {"name": "type_id", "description": "Identifier of the related object type (e.g., coupon ID, promotion code).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The amount of discount applied. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "checkout_session_id": {"name": "checkout_session_id", "description": "The Checkout session that this discount is applied to, if it is applied to a particular session in payment mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "checkout_session_line_item_id": {"name": "checkout_session_line_item_id", "description": "The ID of the specific line item within the checkout session that the discount is applied to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "coupon_id": {"name": "coupon_id", "description": "The ID of the coupon applied to create this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_line_item_id": {"name": "credit_note_line_item_id", "description": "The ID of the credit note line item associated with this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the customer associated with this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "end_at": {"name": "end_at", "description": "If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The invoice that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The invoice item id (or invoice line item id for invoice line items of type=\u2018subscription\u2019) that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "promotion_code": {"name": "promotion_code", "description": "The promotion code applied to create this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "start_at": {"name": "start_at", "description": "The date that the coupon was applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The subscription that this coupon is applied to, if it is applied to a particular subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670938.0372224, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__discount\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__discount_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__discount_tmp')),\n staging_columns=get_discount_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select\n id as discount_id,\n type,\n type_id,\n {{ stripe.convert_values('amount') }},\n checkout_session_id,\n checkout_session_line_item_id,\n coupon_id,\n credit_note_line_item_id,\n customer_id,\n cast(end_at as {{ dbt.type_timestamp() }}) as end_at, -- renamed in macro get_discount_columns, source column name: end\n invoice_id,\n invoice_item_id,\n promotion_code,\n cast(start_at as {{ dbt.type_timestamp() }}) as start_at, -- renamed in macro get_discount_columns, source column name: start\n subscription_id,\n source_relation\n\n from fields\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__discount_tmp", "package": null, "version": null}, {"name": "stg_stripe__discount_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_discount_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp"], "nodes": ["model.stripe.stg_stripe__discount_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__discount.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__discount_tmp\"\n),\n\nfields as (\n\n select\n \n id as id,\n type as type,\n type_id as type_id,\n _fivetran_synced as _fivetran_synced,\n amount as amount,\n checkout_session_id as checkout_session_id,\n checkout_session_line_item_id as checkout_session_line_item_id,\n coupon_id as coupon_id,\n credit_note_line_item_id as credit_note_line_item_id,\n customer_id as customer_id,\n invoice_id as invoice_id,\n invoice_item_id as invoice_item_id,\n promotion_code as promotion_code,\n subscription_id as subscription_id,\n \n \"end\" as end_at,\n \n \"start\" as start_at\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select\n id as discount_id,\n type,\n type_id,\n \n\n\n\n \n amount as amount\n \n\n,\n checkout_session_id,\n checkout_session_line_item_id,\n coupon_id,\n credit_note_line_item_id,\n customer_id,\n cast(end_at as timestamp) as end_at, -- renamed in macro get_discount_columns, source column name: end\n invoice_id,\n invoice_item_id,\n promotion_code,\n cast(start_at as timestamp) as start_at, -- renamed in macro get_discount_columns, source column name: start\n subscription_id,\n source_relation\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__charge": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__charge", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__charge.sql", "original_file_path": "models/staging/stg_stripe__charge.sql", "unique_id": "model.stripe.stg_stripe__charge", "fqn": ["stripe", "staging", "stg_stripe__charge"], "alias": "stg_stripe__charge", "checksum": {"name": "sha256", "checksum": "a8b421050653fea2518c5a86caabd5512eaf269580cd6332bbe0386235a60fdc"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "To charge a credit or a debit card, you create a Charge object. You can retrieve and refund individual charges as well as list all charges. Charges are identified by a unique, random ID.", "columns": {"charge_id": {"name": "charge_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount intended to be collected by this payment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "amount_refunded": {"name": "amount_refunded", "description": "The amount of the charge, if any, that has been refunded. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "application_fee_amount": {"name": "application_fee_amount", "description": "The amount of the application fee (if any) for the charge. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_captured": {"name": "is_captured", "description": "If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_id": {"name": "card_id", "description": "ID of the card that was charged.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the charge took place.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "ID of account connected for this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the customer this charge is for if one exists.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "failure_code": {"name": "failure_code", "description": "Error code explaining reason for charge failure if available.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "failure_message": {"name": "failure_message", "description": "Message to user further explaining reason for charge failure if available.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_paid": {"name": "is_paid", "description": "true if the charge succeeded, or was successfully authorized for later capture.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "ID of the PaymentIntent associated with this charge, if one exists.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "receipt_email": {"name": "receipt_email", "description": "This is the email address that the receipt for this charge was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "receipt_number": {"name": "receipt_number", "description": "This is the transaction number that appears on email receipts sent for this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_refunded": {"name": "is_refunded", "description": "Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "The status of the payment is either succeeded, pending, or failed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_carrier": {"name": "shipping_carrier", "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_name": {"name": "shipping_name", "description": "Recipient name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_phone": {"name": "shipping_phone", "description": "Recipient phone (including extension).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_tracking_number": {"name": "shipping_tracking_number", "description": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_id": {"name": "source_id", "description": "ID of the source associated. Source objects allow you to accept a variety of payment methods. They represent a cu", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_transfer": {"name": "source_transfer", "description": "The transfer ID which created this charge. Only present if the charge came from another Stripe account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "Extra information about a source. This will appear on your customer\u2019s statement every time you charge the source.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The id of the invoice associated with this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "The currency of the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_method_id": {"name": "payment_method_id", "description": "Unique identifier for the payment method object used in this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "calculated_statement_descriptor": {"name": "calculated_statement_descriptor", "description": "The full statement descriptor that is passed to card networks, and that is displayed on your customers\u2019 credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_address_city": {"name": "billing_detail_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_address_country": {"name": "billing_detail_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_address_line1": {"name": "billing_detail_address_line1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_address_line2": {"name": "billing_detail_address_line2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_address_postal_code": {"name": "billing_detail_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_address_state": {"name": "billing_detail_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_email": {"name": "billing_detail_email", "description": "Email address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_name": {"name": "billing_detail_name", "description": "Full name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_phone": {"name": "billing_detail_phone", "description": "Billing phone number (including extension).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8702366, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__charge_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__charge_tmp')),\n staging_columns=get_charge_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n\n select \n id as charge_id, \n {{ stripe.convert_values('amount') }},\n {{ stripe.convert_values('amount_refunded') }},\n {{ stripe.convert_values('application_fee_amount') }},\n balance_transaction_id,\n captured as is_captured,\n card_id,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n connected_account_id,\n customer_id,\n currency,\n description,\n failure_code,\n failure_message,\n metadata,\n paid as is_paid,\n payment_intent_id,\n payment_method_id,\n receipt_email,\n receipt_number,\n refunded as is_refunded,\n status,\n shipping_address_city,\n shipping_address_country,\n shipping_address_line_1,\n shipping_address_line_2,\n shipping_address_postal_code,\n shipping_address_state,\n shipping_carrier,\n shipping_name,\n shipping_phone,\n shipping_tracking_number,\n source_id,\n source_transfer,\n statement_descriptor,\n invoice_id,\n calculated_statement_descriptor,\n billing_detail_address_city,\n billing_detail_address_country,\n billing_detail_address_line1,\n billing_detail_address_line2,\n billing_detail_address_postal_code,\n billing_detail_address_state,\n billing_detail_email,\n billing_detail_name,\n billing_detail_phone,\n source_relation\n\n {% if var('stripe__charge_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__charge_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__charge_tmp", "package": null, "version": null}, {"name": "stg_stripe__charge_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_charge_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__charge_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__charge.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge_tmp\"\n\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n amount_refunded as amount_refunded,\n application as application,\n application_fee_amount as application_fee_amount,\n balance_transaction_id as balance_transaction_id,\n bank_account_id as bank_account_id,\n calculated_statement_descriptor as calculated_statement_descriptor,\n captured as captured,\n card_id as card_id,\n connected_account_id as connected_account_id,\n created as created,\n currency as currency,\n customer_id as customer_id,\n description as description,\n destination as destination,\n failure_code as failure_code,\n failure_message as failure_message,\n fraud_details_stripe_report as fraud_details_stripe_report,\n fraud_details_user_report as fraud_details_user_report,\n id as id,\n invoice_id as invoice_id,\n livemode as livemode,\n metadata as metadata,\n on_behalf_of as on_behalf_of,\n outcome_network_status as outcome_network_status,\n outcome_reason as outcome_reason,\n outcome_risk_level as outcome_risk_level,\n outcome_risk_score as outcome_risk_score,\n outcome_seller_message as outcome_seller_message,\n outcome_type as outcome_type,\n paid as paid,\n payment_intent_id as payment_intent_id,\n cast(null as TEXT) as payment_method_id,\n receipt_email as receipt_email,\n receipt_number as receipt_number,\n receipt_url as receipt_url,\n refunded as refunded,\n shipping_address_city as shipping_address_city,\n shipping_address_country as shipping_address_country,\n shipping_address_line_1 as shipping_address_line_1,\n shipping_address_line_2 as shipping_address_line_2,\n shipping_address_postal_code as shipping_address_postal_code,\n shipping_address_state as shipping_address_state,\n shipping_carrier as shipping_carrier,\n shipping_name as shipping_name,\n shipping_phone as shipping_phone,\n shipping_tracking_number as shipping_tracking_number,\n source_id as source_id,\n source_transfer as source_transfer,\n statement_descriptor as statement_descriptor,\n status as status,\n transfer_data_destination as transfer_data_destination,\n transfer_group as transfer_group,\n transfer_id as transfer_id,\n cast(null as TEXT) as billing_detail_address_city,\n cast(null as TEXT) as billing_detail_address_country,\n cast(null as TEXT) as billing_detail_address_line1,\n cast(null as TEXT) as billing_detail_address_line2,\n cast(null as TEXT) as billing_detail_address_postal_code,\n cast(null as TEXT) as billing_detail_address_state,\n cast(null as TEXT) as billing_detail_email,\n cast(null as TEXT) as billing_detail_name,\n cast(null as TEXT) as billing_detail_phone\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n\n select \n id as charge_id, \n \n\n\n\n \n amount as amount\n \n\n,\n \n\n\n\n \n amount_refunded as amount_refunded\n \n\n,\n \n\n\n\n \n application_fee_amount as application_fee_amount\n \n\n,\n balance_transaction_id,\n captured as is_captured,\n card_id,\n cast(created as timestamp) as created_at,\n connected_account_id,\n customer_id,\n currency,\n description,\n failure_code,\n failure_message,\n metadata,\n paid as is_paid,\n payment_intent_id,\n payment_method_id,\n receipt_email,\n receipt_number,\n refunded as is_refunded,\n status,\n shipping_address_city,\n shipping_address_country,\n shipping_address_line_1,\n shipping_address_line_2,\n shipping_address_postal_code,\n shipping_address_state,\n shipping_carrier,\n shipping_name,\n shipping_phone,\n shipping_tracking_number,\n source_id,\n source_transfer,\n statement_descriptor,\n invoice_id,\n calculated_statement_descriptor,\n billing_detail_address_city,\n billing_detail_address_country,\n billing_detail_address_line1,\n billing_detail_address_line2,\n billing_detail_address_postal_code,\n billing_detail_address_state,\n billing_detail_email,\n billing_detail_name,\n billing_detail_phone,\n source_relation\n\n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__coupon": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__coupon", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__coupon.sql", "original_file_path": "models/staging/stg_stripe__coupon.sql", "unique_id": "model.stripe.stg_stripe__coupon", "fqn": ["stripe", "staging", "stg_stripe__coupon"], "alias": "stg_stripe__coupon", "checksum": {"name": "sha256", "checksum": "fc9b865645c31806d24a9a01056d0c2c9827697795dd0a9743607357dd62ffaa"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Properties belonging to a Stripe coupon.", "columns": {"coupon_id": {"name": "coupon_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount_off": {"name": "amount_off", "description": "The amount taken off the total price in the selected currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "duration": {"name": "duration", "description": "The duration of the coupon. Typically \"forever,\" \"once,\" or \"repeating.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "duration_in_months": {"name": "duration_in_months", "description": "If the coupon does not last forever, the duration in months you can apply it. For a forever coupon, this attribute is null.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "max_redemptions": {"name": "max_redemptions", "description": "The maximum number of times this coupon can be redeemed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "coupon_name": {"name": "coupon_name", "description": "Name of the coupon or promotion.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "percent_off": {"name": "percent_off", "description": "The percentage taken off the total price.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "redeem_by": {"name": "redeem_by", "description": "The date by which the coupon must be redeemed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "times_redeemed": {"name": "times_redeemed", "description": "The number of times this coupon has been redeemed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "valid": {"name": "valid", "description": "Indicates whether the coupon can still be applied to a customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_coupons', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670938.0425642, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__coupon\"", "raw_code": "{{ config(enabled=var('stripe__using_coupons', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__coupon_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__coupon_tmp')),\n staging_columns=get_coupon_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as coupon_id,\n name as coupon_name,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n cast(redeem_by as {{ dbt.type_timestamp() }}) as redeem_by,\n duration,\n duration_in_months,\n {{ stripe.convert_values('amount_off') }}, \n percent_off,\n currency,\n metadata,\n max_redemptions,\n times_redeemed,\n valid,\n source_relation\n\n {% if var('stripe__coupon_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__coupon_metadata')) }}\n {% endif %}\n \n from fields\n\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__coupon_tmp", "package": null, "version": null}, {"name": "stg_stripe__coupon_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_coupon_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp", "macro.stripe.convert_values", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__coupon_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__coupon.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__coupon_tmp\"\n\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount_off as amount_off,\n created as created,\n currency as currency,\n duration as duration,\n duration_in_months as duration_in_months,\n id as id,\n livemode as livemode,\n max_redemptions as max_redemptions,\n metadata as metadata,\n name as name,\n percent_off as percent_off,\n redeem_by as redeem_by,\n times_redeemed as times_redeemed,\n valid as valid\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as coupon_id,\n name as coupon_name,\n cast(created as timestamp) as created_at,\n cast(redeem_by as timestamp) as redeem_by,\n duration,\n duration_in_months,\n \n\n\n\n \n amount_off as amount_off\n \n\n, \n percent_off,\n currency,\n metadata,\n max_redemptions,\n times_redeemed,\n valid,\n source_relation\n\n \n \n from fields\n\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__subscription_discount": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_discount", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__subscription_discount.sql", "original_file_path": "models/staging/stg_stripe__subscription_discount.sql", "unique_id": "model.stripe.stg_stripe__subscription_discount", "fqn": ["stripe", "staging", "stg_stripe__subscription_discount"], "alias": "stg_stripe__subscription_discount", "checksum": {"name": "sha256", "checksum": "2884d0514fe6c50f08268f9e303e35445438961b2b9b852eab130eedc4ea70c9"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Properties belonging to a Stripe subscription discount.", "columns": {"subscription_discount_id": {"name": "subscription_discount_id", "description": "The ID of the subscription discount object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "checkout_session_id": {"name": "checkout_session_id", "description": "The Checkout Session that this discount is applied to, if it is applied to a particular session in payment mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "coupon_id": {"name": "coupon_id", "description": "The ID of the coupon applied to create this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the customer associated with this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "end_at": {"name": "end_at", "description": "If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The invoice that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The invoice item id (or invoice line item id for invoice line items of type=\u2018subscription\u2019) that the discount\u2019s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "start_at": {"name": "start_at", "description": "The date that the coupon was applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The subscription that this coupon is applied to, if it is applied to a particular subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_subscription_discounts', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670938.0385299, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_discount\"", "raw_code": "{{ config(enabled=var('stripe__using_subscription_discounts', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__subscription_discount_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__subscription_discount_tmp')),\n staging_columns=get_subscription_discount_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select\n id as subscription_discount_id,\n checkout_session as checkout_session_id,\n coupon_id,\n customer_id,\n cast(end_at as {{ dbt.type_timestamp() }}) as end_at, -- renamed in macro get_subscription_discount_columns, source column name: end\n invoice_id,\n invoice_item_id,\n cast(start_at as {{ dbt.type_timestamp() }}) as start_at, -- renamed in macro get_subscription_discount_columns, source column name: start\n subscription_id,\n source_relation\n\n from fields\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_discount_tmp", "package": null, "version": null}, {"name": "stg_stripe__subscription_discount_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_subscription_discount_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp"], "nodes": ["model.stripe.stg_stripe__subscription_discount_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__subscription_discount.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_discount_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n checkout_session as checkout_session,\n coupon_id as coupon_id,\n customer_id as customer_id,\n id as id,\n invoice_id as invoice_id,\n invoice_item_id as invoice_item_id,\n subscription_id as subscription_id,\n \n \"end\" as end_at,\n \n \"start\" as start_at\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select\n id as subscription_discount_id,\n checkout_session as checkout_session_id,\n coupon_id,\n customer_id,\n cast(end_at as timestamp) as end_at, -- renamed in macro get_subscription_discount_columns, source column name: end\n invoice_id,\n invoice_item_id,\n cast(start_at as timestamp) as start_at, -- renamed in macro get_subscription_discount_columns, source column name: start\n subscription_id,\n source_relation\n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__account": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__account", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__account.sql", "original_file_path": "models/staging/stg_stripe__account.sql", "unique_id": "model.stripe.stg_stripe__account", "fqn": ["stripe", "staging", "stg_stripe__account"], "alias": "stg_stripe__account", "checksum": {"name": "sha256", "checksum": "4304aa381f7a8e24fe1df6dc0bd4cacacf680b9d9f4504a583604865563c75b6"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Properties belonging to a Stripe account.", "columns": {"account_id": {"name": "account_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "business_profile_name": {"name": "business_profile_name", "description": "The customer-facing business name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "business_type": {"name": "business_type", "description": "The business type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "business_profile_mcc": {"name": "business_profile_mcc", "description": "The merchant category code for the account. MCCs are used to classify businesses based on the goods or services they provide.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charges_enabled": {"name": "charges_enabled", "description": "Whether the account can create live charges.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_address_city": {"name": "company_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_address_country": {"name": "company_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_address_line_1": {"name": "company_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_address_line_2": {"name": "company_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_address_postal_code": {"name": "company_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_address_state": {"name": "company_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_name": {"name": "company_name", "description": "The company\u2019s legal name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_phone": {"name": "company_phone", "description": "The company\u2019s phone number (used for verification).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "country": {"name": "country", "description": "The account's country.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the account was connected. Measured in seconds since the Unix epoch.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "default_currency": {"name": "default_currency", "description": "Three-letter ISO currency code representing the default currency for the account. This must be a currency that Stripe supports in the account\u2019s country.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "email": {"name": "email", "description": "An email address associated with the account. You can treat this as metadata; it is not used for authentication or messaging account holders.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Boolean of whether account has been deleted. Accounts created using test-mode keys can be deleted at any time. Standard accounts created using live-mode keys cannot be deleted. Custom or Express accounts created using live-mode keys can only be deleted once all balances are zero.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_payouts_enabled": {"name": "is_payouts_enabled", "description": "Boolean of whether payouts are enabled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "account_type": {"name": "account_type", "description": "Account type", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670938.0080101, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__account\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__account_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__account_tmp')),\n staging_columns=get_account_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select \n id as account_id,\n business_profile_mcc,\n business_profile_name,\n business_type,\n charges_enabled,\n company_address_city,\n company_address_country,\n company_address_line_1,\n company_address_line_2,\n company_address_postal_code,\n company_address_state,\n company_name,\n company_phone,\n country,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n default_currency,\n email,\n is_deleted,\n metadata,\n payouts_enabled as is_payouts_enabled,\n type as account_type,\n source_relation\n\n {% if var('stripe__account_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__account_metadata')) }}\n {% endif %}\n\n from fields\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__account_tmp", "package": null, "version": null}, {"name": "stg_stripe__account_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_account_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp"], "nodes": ["model.stripe.stg_stripe__account_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__account.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__account_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n business_profile_name as business_profile_name,\n business_profile_mcc as business_profile_mcc,\n business_type as business_type,\n charges_enabled as charges_enabled,\n company_address_city as company_address_city,\n company_address_country as company_address_country,\n company_address_line_1 as company_address_line_1,\n company_address_line_2 as company_address_line_2,\n company_address_postal_code as company_address_postal_code,\n company_address_state as company_address_state,\n company_name as company_name,\n company_phone as company_phone,\n country as country,\n created as created,\n default_currency as default_currency,\n details_submitted as details_submitted,\n email as email,\n id as id,\n is_deleted as is_deleted,\n metadata as metadata,\n payouts_enabled as payouts_enabled,\n type as type\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select \n id as account_id,\n business_profile_mcc,\n business_profile_name,\n business_type,\n charges_enabled,\n company_address_city,\n company_address_country,\n company_address_line_1,\n company_address_line_2,\n company_address_postal_code,\n company_address_state,\n company_name,\n company_phone,\n country,\n cast(created as timestamp) as created_at,\n default_currency,\n email,\n is_deleted,\n metadata,\n payouts_enabled as is_payouts_enabled,\n type as account_type,\n source_relation\n\n \n\n from fields\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payment_method": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__payment_method.sql", "original_file_path": "models/staging/stg_stripe__payment_method.sql", "unique_id": "model.stripe.stg_stripe__payment_method", "fqn": ["stripe", "staging", "stg_stripe__payment_method"], "alias": "stg_stripe__payment_method", "checksum": {"name": "sha256", "checksum": "e17e6e3927b4bbfb903e72194918c5c3c77cfe31d8c70ef47a8a1da810235816"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "PaymentMethod objects represent your customer's payment instruments. They can be used with PaymentIntents to collect payments or saved to Customer objects to store instrument details for future payments.", "columns": {"payment_method_id": {"name": "payment_method_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_payment_method', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8807423, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method\"", "raw_code": "{{ config(enabled=var('stripe__using_payment_method', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__payment_method_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__payment_method_tmp')),\n staging_columns=get_payment_method_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as payment_method_id,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n customer_id,\n metadata,\n type,\n source_relation\n\n {% if var('stripe__payment_method_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__payment_method_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payment_method_tmp", "package": null, "version": null}, {"name": "stg_stripe__payment_method_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_payment_method_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__payment_method_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__payment_method.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n billing_detail_address_city as billing_detail_address_city,\n billing_detail_address_country as billing_detail_address_country,\n billing_detail_address_line_1 as billing_detail_address_line_1,\n billing_detail_address_line_2 as billing_detail_address_line_2,\n billing_detail_address_postal_code as billing_detail_address_postal_code,\n billing_detail_address_state as billing_detail_address_state,\n billing_detail_email as billing_detail_email,\n billing_detail_name as billing_detail_name,\n billing_detail_phone as billing_detail_phone,\n created as created,\n customer_id as customer_id,\n id as id,\n livemode as livemode,\n cast(null as TEXT) as metadata,\n type as type\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as payment_method_id,\n cast(created as timestamp) as created_at,\n customer_id,\n metadata,\n type,\n source_relation\n\n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__fee": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__fee", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__fee.sql", "original_file_path": "models/staging/stg_stripe__fee.sql", "unique_id": "model.stripe.stg_stripe__fee", "fqn": ["stripe", "staging", "stg_stripe__fee"], "alias": "stg_stripe__fee", "checksum": {"name": "sha256", "checksum": "ffabfada4dc773a605acd51ea75bc0c6cf58b1b1fb7f4bf1cc96d52ee9a481f9"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "The details of a fee associated with a balance transaction", "columns": {"balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the balance transaction entry the fee applies to", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "index": {"name": "index", "description": "The index of the fee within the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount of the fee. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "application": {"name": "application", "description": "ID of the Connect application that earned the fee.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "Type of the fee, can be application_fee, stripe_fee or tax.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.873925, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__fee\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__fee_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__fee_tmp')),\n staging_columns=get_fee_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select \n balance_transaction_id,\n index,\n {{ stripe.convert_values('amount') }},\n application,\n currency,\n description,\n type,\n source_relation\n\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__fee_tmp", "package": null, "version": null}, {"name": "stg_stripe__fee_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_fee_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values"], "nodes": ["model.stripe.stg_stripe__fee_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__fee.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__fee_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n application as application,\n balance_transaction_id as balance_transaction_id,\n connected_account_id as connected_account_id,\n currency as currency,\n description as description,\n index as index,\n type as type\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select \n balance_transaction_id,\n index,\n \n\n\n\n \n amount as amount\n \n\n,\n application,\n currency,\n description,\n type,\n source_relation\n\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__card": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__card", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__card.sql", "original_file_path": "models/staging/stg_stripe__card.sql", "unique_id": "model.stripe.stg_stripe__card", "fqn": ["stripe", "staging", "stg_stripe__card"], "alias": "stg_stripe__card", "checksum": {"name": "sha256", "checksum": "d94cf5c0eb8176f40a845cc10a7b97f736b9d4b0c5e1bd6377e15f5619c10deb"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Details of a credit card that has been saved to the system.", "columns": {"card_id": {"name": "card_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "account_id": {"name": "account_id", "description": "ID of account that this card is associated with.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "brand": {"name": "brand", "description": "Card brand. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_city": {"name": "card_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.city"]}, "card_address_country": {"name": "card_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.country"]}, "card_address_line_1": {"name": "card_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.line_1"]}, "card_address_line_2": {"name": "card_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.line_2"]}, "card_address_state": {"name": "card_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.state"]}, "card_address_postal_code": {"name": "card_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.postal_code"]}, "country": {"name": "country", "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you\u2019ve collected.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the entry for the card was created", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The customer that this card belongs to. NULL if belongs to an account or recipient.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_name": {"name": "card_name", "description": "Cardholder name", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "recipient": {"name": "recipient", "description": "The recipient that this card belongs to. NULL if the card belongs to a customer or account instead.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "funding": {"name": "funding", "description": "Card funding type. Can be credit, debit, prepaid, or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "wallet_type": {"name": "wallet_type", "description": "The type of the card wallet, one of amex_express_checkout, apple_pay, google_pay, masterpass, samsung_pay, or visa_checkout. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8603883, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__card\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__card_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__card_tmp')),\n staging_columns=get_card_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select \n id as card_id,\n account_id,\n address_city as card_address_city,\n address_country as card_address_country,\n address_line_1 as card_address_line_1,\n address_line_2 as card_address_line_2,\n address_state as card_address_state,\n address_zip as card_address_postal_code,\n wallet_type,\n brand,\n country,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n customer_id,\n name as card_name,\n recipient,\n funding,\n source_relation\n \n {% if var('stripe__card_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'card_metadata', list_of_properties = var('stripe__card_metadata')) }}\n {% endif %}\n\n {{ fivetran_utils.fill_pass_through_columns('card_pass_through_columns') }}\n\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__card_tmp", "package": null, "version": null}, {"name": "stg_stripe__card_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_card_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.stripe.stg_stripe__card_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__card.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__card_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n account_id as account_id,\n address_city as address_city,\n address_country as address_country,\n address_line_1 as address_line_1,\n address_line_2 as address_line_2,\n address_state as address_state,\n address_zip as address_zip,\n brand as brand,\n country as country,\n created as created,\n customer_id as customer_id,\n funding as funding,\n id as id,\n metadata as card_metadata,\n name as name,\n recipient as recipient,\n cast(null as TEXT) as wallet_type\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select \n id as card_id,\n account_id,\n address_city as card_address_city,\n address_country as card_address_country,\n address_line_1 as card_address_line_1,\n address_line_2 as card_address_line_2,\n address_state as card_address_state,\n address_zip as card_address_postal_code,\n wallet_type,\n brand,\n country,\n cast(created as timestamp) as created_at,\n customer_id,\n name as card_name,\n recipient,\n funding,\n source_relation\n \n \n\n \n\n\n\n\n\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__subscription": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__subscription", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__subscription.sql", "original_file_path": "models/staging/stg_stripe__subscription.sql", "unique_id": "model.stripe.stg_stripe__subscription", "fqn": ["stripe", "staging", "stg_stripe__subscription"], "alias": "stg_stripe__subscription", "checksum": {"name": "sha256", "checksum": "2706dc228f1314524b5e45b8967a61b70acc7e50b7e4326db95f9e5432021310"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Subscriptions allow you to charge a customer on a recurring basis. Please note that the more recent `subscription_history` table replaced the `subscription` table, so the source used in this model depends on which one you have.", "columns": {"subscription_id": {"name": "subscription_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "latest_invoice_id": {"name": "latest_invoice_id", "description": "ID of the latest invoice for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of customer this subscription belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "default_payment_method_id": {"name": "default_payment_method_id", "description": "ID of the default payment method for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "pending_setup_intent_id": {"name": "pending_setup_intent_id", "description": "ID of the payment setup intent for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing": {"name": "billing", "description": "How the invoice is billed", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_cycle_anchor": {"name": "billing_cycle_anchor", "description": "Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "cancel_at": {"name": "cancel_at", "description": "A date in the future at which the subscription will automatically get canceled", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_cancel_at_period_end": {"name": "is_cancel_at_period_end", "description": "Boolean indicating whether this subscription should cancel at the end of the current period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "canceled_at": {"name": "canceled_at", "description": "If the subscription has been canceled, the date of that cancellation.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "current_period_start": {"name": "current_period_start", "description": "Start of the current period that the subscription has been invoiced for.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "current_period_end": {"name": "current_period_end", "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "days_until_due": {"name": "days_until_due", "description": "Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "start_date_at": {"name": "start_date_at", "description": "Date when the subscription was first created. The date might differ from the created date due to backdating.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "ended_at": {"name": "ended_at", "description": "If the subscription has ended, the date the subscription ended.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "pause_collection_behavior": {"name": "pause_collection_behavior", "description": "The payment collection behavior for this subscription while paused. One of \"keep_as_draft\", \"mark_uncollectible\", or \"void\".", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "pause_collection_resumes_at": {"name": "pause_collection_resumes_at", "description": "The time after which the subscription will resume collecting payments.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_subscriptions', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.9876876, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__subscription_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__subscription_tmp')),\n staging_columns=get_subscription_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as subscription_id,\n latest_invoice_id,\n customer_id,\n default_payment_method_id,\n pending_setup_intent_id,\n status,\n billing,\n billing_cycle_anchor,\n cast(cancel_at as {{ dbt.type_timestamp() }}) as cancel_at,\n cancel_at_period_end as is_cancel_at_period_end,\n cast(canceled_at as {{ dbt.type_timestamp() }}) as canceled_at,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n cast(current_period_start as {{ dbt.type_timestamp() }}) as current_period_start,\n cast(current_period_end as {{ dbt.type_timestamp() }}) as current_period_end,\n days_until_due,\n metadata,\n cast(start_date as {{ dbt.type_timestamp() }}) as start_date_at,\n cast(ended_at as {{ dbt.type_timestamp() }}) as ended_at,\n pause_collection_behavior,\n cast(pause_collection_resumes_at as {{ dbt.type_timestamp() }}) as pause_collection_resumes_at,\n source_relation\n \n {% if var('stripe__subscription_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__subscription_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n {% if var('stripe__using_subscription_history', stripe.does_table_exist('subscription_history')=='exists') %}\n and coalesce(_fivetran_active, true)\n {% endif %}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_tmp", "package": null, "version": null}, {"name": "stg_stripe__subscription_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_subscription_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate", "macro.stripe.does_table_exist"], "nodes": ["model.stripe.stg_stripe__subscription_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__subscription.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_tmp\"\n\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n _fivetran_active as _fivetran_active,\n application_fee_percent as application_fee_percent,\n billing as billing,\n billing_cycle_anchor as billing_cycle_anchor,\n billing_threshold_amount_gte as billing_threshold_amount_gte,\n billing_threshold_reset_billing_cycle_anchor as billing_threshold_reset_billing_cycle_anchor,\n cancel_at as cancel_at,\n cancel_at_period_end as cancel_at_period_end,\n canceled_at as canceled_at,\n created as created,\n current_period_end as current_period_end,\n current_period_start as current_period_start,\n customer_id as customer_id,\n days_until_due as days_until_due,\n default_source_id as default_source_id,\n ended_at as ended_at,\n id as id,\n cast(null as TEXT) as latest_invoice_id,\n cast(null as TEXT) as default_payment_method_id,\n cast(null as TEXT) as pending_setup_intent_id,\n livemode as livemode,\n metadata as metadata,\n quantity as quantity,\n start_date as start_date,\n status as status,\n tax_percent as tax_percent,\n trial_end as trial_end,\n trial_start as trial_start,\n cast(null as TEXT) as pause_collection_behavior,\n cast(null as timestamp) as pause_collection_resumes_at\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as subscription_id,\n latest_invoice_id,\n customer_id,\n default_payment_method_id,\n pending_setup_intent_id,\n status,\n billing,\n billing_cycle_anchor,\n cast(cancel_at as timestamp) as cancel_at,\n cancel_at_period_end as is_cancel_at_period_end,\n cast(canceled_at as timestamp) as canceled_at,\n cast(created as timestamp) as created_at,\n cast(current_period_start as timestamp) as current_period_start,\n cast(current_period_end as timestamp) as current_period_end,\n days_until_due,\n metadata,\n cast(start_date as timestamp) as start_date_at,\n cast(ended_at as timestamp) as ended_at,\n pause_collection_behavior,\n cast(pause_collection_resumes_at as timestamp) as pause_collection_resumes_at,\n source_relation\n \n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n \n and coalesce(_fivetran_active, true)\n \n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__credit_note_line_item": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note_line_item", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__credit_note_line_item.sql", "original_file_path": "models/staging/stg_stripe__credit_note_line_item.sql", "unique_id": "model.stripe.stg_stripe__credit_note_line_item", "fqn": ["stripe", "staging", "stg_stripe__credit_note_line_item"], "alias": "stg_stripe__credit_note_line_item", "checksum": {"name": "sha256", "checksum": "4fe101374783f71934ddc51a70adfb091449d4ae879e1beb35f7d1ec56b63501"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "The different items that a credit note contains.", "columns": {"credit_note_line_item_id": {"name": "credit_note_line_item_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_id": {"name": "credit_note_id", "description": "The ID of the credit note this item is a part of.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_line_item_amount": {"name": "credit_note_line_item_amount", "description": "The integer amount in currency units representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "credit_note_line_item_discount_amount": {"name": "credit_note_line_item_discount_amount", "description": "The integer amount in currency units representing the discount being credited for this line item. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "credit_note_line_item_description": {"name": "credit_note_line_item_description", "description": "Description of the item being credited.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The number of units of product being credited.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_line_item_type": {"name": "credit_note_line_item_type", "description": "The type of the credit note line item, one of invoice_line_item or custom_line_item. When the type is invoice_line_item there is an additional invoice_line_item property on the resource the value of which is the id of the credited line item on the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_line_item_unit_amount": {"name": "credit_note_line_item_unit_amount", "description": "The cost of each unit of product being credited. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "livemode": {"name": "livemode", "description": "Has the value true if the object exists in live mode or the value false if the object exists in test mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_credit_notes', False)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670938.0016816, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note_line_item\"", "raw_code": "{{ config(enabled=var('stripe__using_credit_notes', False)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__credit_note_line_item_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__credit_note_line_item_tmp')),\n staging_columns=get_credit_note_line_item_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select \n id as credit_note_line_item_id,\n credit_note_id,\n {{ stripe.convert_values('amount', alias='credit_note_line_item_amount') }},\n {{ stripe.convert_values('discount_amount', alias='credit_note_line_item_discount_amount') }},\n description as credit_note_line_item_description,\n quantity,\n type as credit_note_line_item_type,\n unit_amount as credit_note_line_item_unit_amount,\n livemode,\n source_relation\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__credit_note_line_item_tmp", "package": null, "version": null}, {"name": "stg_stripe__credit_note_line_item_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_credit_note_line_item_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__credit_note_line_item_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__credit_note_line_item.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note_line_item_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n id as id,\n credit_note_id as credit_note_id,\n amount as amount,\n discount_amount as discount_amount,\n description as description,\n livemode as livemode,\n quantity as quantity,\n type as type,\n unit_amount as unit_amount,\n unit_amount_decimal as unit_amount_decimal\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select \n id as credit_note_line_item_id,\n credit_note_id,\n \n\n\n\n \n amount as credit_note_line_item_amount\n \n\n,\n \n\n\n\n \n discount_amount as credit_note_line_item_discount_amount\n \n\n,\n description as credit_note_line_item_description,\n quantity,\n type as credit_note_line_item_type,\n unit_amount as credit_note_line_item_unit_amount,\n livemode,\n source_relation\n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payment_method_card": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method_card", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__payment_method_card.sql", "original_file_path": "models/staging/stg_stripe__payment_method_card.sql", "unique_id": "model.stripe.stg_stripe__payment_method_card", "fqn": ["stripe", "staging", "stg_stripe__payment_method_card"], "alias": "stg_stripe__payment_method_card", "checksum": {"name": "sha256", "checksum": "28f3a4d2e1ca1ca4a9cdddf1528883f732df4683b04c7c26d9d42133d61f4e5b"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Table with the relationships between a payment method and a card", "columns": {"payment_method_id": {"name": "payment_method_id", "description": "ID of the payment method", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "brand": {"name": "brand", "description": "Card brand. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "funding": {"name": "funding", "description": "Card funding type. Can be credit, debit, prepaid, or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the charge that this card belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the payment method.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "wallet_type": {"name": "wallet_type", "description": "The type of the card wallet, one of amex_express_checkout, apple_pay, google_pay, masterpass, samsung_pay, or visa_checkout. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "three_d_secure_authentication_flow": {"name": "three_d_secure_authentication_flow", "description": "For authenticated transactions, how the customer was authenticated by the issuing bank.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "three_d_secure_result": {"name": "three_d_secure_result", "description": "Indicates the outcome of 3D Secure authentication.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "three_d_secure_result_reason": {"name": "three_d_secure_result_reason", "description": "Additional information about why 3D Secure succeeded or failed based on the result.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "three_d_secure_version": {"name": "three_d_secure_version", "description": "The version of 3D Secure that was used.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_payment_method', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8798628, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_card\"", "raw_code": "{{ config(enabled=var('stripe__using_payment_method', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__payment_method_card_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__payment_method_card_tmp')),\n staging_columns=get_payment_method_card_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n payment_method_id,\n brand,\n funding,\n charge_id,\n type,\n wallet_type,\n three_d_secure_authentication_flow,\n three_d_secure_result,\n three_d_secure_result_reason,\n three_d_secure_version,\n source_relation\n\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payment_method_card_tmp", "package": null, "version": null}, {"name": "stg_stripe__payment_method_card_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_payment_method_card_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation"], "nodes": ["model.stripe.stg_stripe__payment_method_card_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__payment_method_card.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_card_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n brand as brand,\n charge_id as charge_id,\n funding as funding,\n payment_method_id as payment_method_id,\n type as type,\n wallet_type as wallet_type,\n cast(null as TEXT) as three_d_secure_authentication_flow,\n cast(null as TEXT) as three_d_secure_result,\n cast(null as TEXT) as three_d_secure_result_reason,\n cast(null as TEXT) as three_d_secure_version\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n payment_method_id,\n brand,\n funding,\n charge_id,\n type,\n wallet_type,\n three_d_secure_authentication_flow,\n three_d_secure_result,\n three_d_secure_result_reason,\n three_d_secure_version,\n source_relation\n\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__credit_note": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__credit_note.sql", "original_file_path": "models/staging/stg_stripe__credit_note.sql", "unique_id": "model.stripe.stg_stripe__credit_note", "fqn": ["stripe", "staging", "stg_stripe__credit_note"], "alias": "stg_stripe__credit_note", "checksum": {"name": "sha256", "checksum": "afbd3eaf6ff1266c1d9fddb04d3935f95b8ec3a11848b2690717cc34fb946513"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Credit notes are documents that decrease the amount owed on an invoice. They\u2019re the only way to adjust the amount of a finalized invoice other than voiding and recreating the invoice.", "columns": {"credit_note_id": {"name": "credit_note_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_amount": {"name": "credit_note_amount", "description": "The integer amount in currency units representing the total amount of the credit note, including tax. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "created_at": {"name": "created_at", "description": "Timestamp of the when the credit_note was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_currency": {"name": "credit_note_currency", "description": "The currency of the charge. Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_discount_amount": {"name": "credit_note_discount_amount", "description": "The integer amount in currency units representing the total amount of discount that was credited. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "credit_note_subtotal": {"name": "credit_note_subtotal", "description": "The integer amount in currency units representing the amount of the credit note, excluding tax and invoice level discounts. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "credit_note_total": {"name": "credit_note_total", "description": "The integer amount in currency units representing the total amount of the credit note, including tax and all discount. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "livemode": {"name": "livemode", "description": "Has the value true if the object exists in live mode or the value false if the object exists in test mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "memo": {"name": "memo", "description": "Customer-facing text that appears on the credit note PDF.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_number": {"name": "credit_note_number", "description": "A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "pdf": {"name": "pdf", "description": "The link to download the PDF of the credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_reason": {"name": "credit_note_reason", "description": "Reason for issuing this credit note, one of duplicate, fraudulent, order_change, or product_unsatisfactory", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_status": {"name": "credit_note_status", "description": "Status of this credit note, one of issued or void.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_type": {"name": "credit_note_type", "description": "Type of this credit note, one of pre_payment or post_payment. A pre_payment credit note means it was issued when the invoice was open. A post_payment credit note means it was issued when the invoice was paid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "voided_at": {"name": "voided_at", "description": "The time that the credit note was voided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_balance_transaction": {"name": "customer_balance_transaction", "description": "Customer balance transaction related to this credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The id of the invoice associated with this credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "refund_id": {"name": "refund_id", "description": "The id of the refund associated with this credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_credit_notes', False)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.9986384, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note\"", "raw_code": "{{ config(enabled=var('stripe__using_credit_notes', False)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_stripe__credit_note_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__credit_note_tmp')),\n staging_columns=get_credit_note_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n select \n id as credit_note_id,\n {{ stripe.convert_values('amount', alias='credit_note_amount') }},\n {{ stripe.convert_values('discount_amount', alias='credit_note_discount_amount') }},\n {{ stripe.convert_values('subtotal', alias='credit_note_subtotal') }},\n {{ stripe.convert_values('total', alias='credit_note_total') }},\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n currency as credit_note_currency,\n memo,\n metadata,\n number as credit_note_number,\n pdf,\n reason as credit_note_reason,\n status as credit_note_status,\n type as credit_note_type,\n cast(voided_at as {{ dbt.type_timestamp() }}) as voided_at,\n customer_balance_transaction,\n invoice_id,\n refund_id,\n source_relation\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__credit_note_tmp", "package": null, "version": null}, {"name": "stg_stripe__credit_note_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_credit_note_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__credit_note_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__credit_note.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note_tmp\"\n\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n id as id,\n amount as amount,\n created as created,\n currency as currency,\n discount_amount as discount_amount,\n subtotal as subtotal,\n total as total,\n livemode as livemode,\n memo as memo,\n metadata as metadata,\n number as number,\n pdf as pdf,\n reason as reason,\n status as status,\n type as type,\n voided_at as voided_at,\n cast(null as integer) as customer_balance_transaction,\n invoice_id as invoice_id,\n refund_id as refund_id\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n select \n id as credit_note_id,\n \n\n\n\n \n amount as credit_note_amount\n \n\n,\n \n\n\n\n \n discount_amount as credit_note_discount_amount\n \n\n,\n \n\n\n\n \n subtotal as credit_note_subtotal\n \n\n,\n \n\n\n\n \n total as credit_note_total\n \n\n,\n cast(created as timestamp) as created_at,\n currency as credit_note_currency,\n memo,\n metadata,\n number as credit_note_number,\n pdf,\n reason as credit_note_reason,\n status as credit_note_status,\n type as credit_note_type,\n cast(voided_at as timestamp) as voided_at,\n customer_balance_transaction,\n invoice_id,\n refund_id,\n source_relation\n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payment_intent": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payment_intent", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__payment_intent.sql", "original_file_path": "models/staging/stg_stripe__payment_intent.sql", "unique_id": "model.stripe.stg_stripe__payment_intent", "fqn": ["stripe", "staging", "stg_stripe__payment_intent"], "alias": "stg_stripe__payment_intent", "checksum": {"name": "sha256", "checksum": "5491469a10b650c5d8809eb2a28e99d3c76361139f1c321a11e4aca5b042af50"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "A Payment Intent guides you through the process of collecting a payment from your customer.", "columns": {"payment_intent_id": {"name": "payment_intent_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the major currency unit. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "amount_capturable": {"name": "amount_capturable", "description": "Amount that can be captured from this PaymentIntent. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "amount_received": {"name": "amount_received", "description": "Amount that was collected by this PaymentIntent. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "application": {"name": "application", "description": "ID of the Connect application that created the PaymentIntent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "application_fee_amount": {"name": "application_fee_amount", "description": "The amount of the application fee (if any) for the resulting payment. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "canceled_at": {"name": "canceled_at", "description": "Populated when status is canceled, this is the time at which the PaymentIntent was canceled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "cancellation_reason": {"name": "cancellation_reason", "description": "Reason for cancellation of this PaymentIntent, either user-provided (duplicate, fraudulent, requested_by_customer, or abandoned) or generated by Stripe internally (failed_invoice, void_invoice, or automatic).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "capture_method": {"name": "capture_method", "description": "Controls when the funds will be captured from the customer\u2019s account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "confirmation_method": {"name": "confirmation_method", "description": "Whether confirmed automatically or manually", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the Customer this PaymentIntent belongs to, if one exists.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_method_id": {"name": "payment_method_id", "description": "ID of the payment method used in this PaymentIntent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "receipt_email": {"name": "receipt_email", "description": "Email address that the receipt for the resulting payment will be sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "For non-card charges, you can use this value as the complete description that appears on your customers\u2019 statements.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of this PaymentIntent, one of requires_payment_method, requires_confirmation, requires_action, processing, requires_capture, canceled, or succeeded.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8774357, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_intent\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__payment_intent_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__payment_intent_tmp')),\n staging_columns=get_payment_intent_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as payment_intent_id,\n {{ stripe.convert_values('amount') }},\n {{ stripe.convert_values('amount_capturable') }},\n {{ stripe.convert_values('amount_received') }},\n {{ stripe.convert_values('application_fee_amount') }},\n application,\n cast(canceled_at as {{ dbt.type_timestamp() }}) as canceled_at,\n cancellation_reason,\n capture_method,\n confirmation_method,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n currency,\n customer_id,\n description,\n metadata,\n payment_method_id,\n receipt_email,\n statement_descriptor,\n status,\n source_relation\n\n {% if var('stripe__payment_intent_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__payment_intent_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payment_intent_tmp", "package": null, "version": null}, {"name": "stg_stripe__payment_intent_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_payment_intent_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__payment_intent_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__payment_intent.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_intent_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n amount_capturable as amount_capturable,\n amount_received as amount_received,\n application as application,\n application_fee_amount as application_fee_amount,\n canceled_at as canceled_at,\n cancellation_reason as cancellation_reason,\n capture_method as capture_method,\n confirmation_method as confirmation_method,\n created as created,\n currency as currency,\n customer_id as customer_id,\n description as description,\n id as id,\n last_payment_error_charge_id as last_payment_error_charge_id,\n last_payment_error_code as last_payment_error_code,\n last_payment_error_decline_code as last_payment_error_decline_code,\n last_payment_error_doc_url as last_payment_error_doc_url,\n last_payment_error_message as last_payment_error_message,\n last_payment_error_param as last_payment_error_param,\n last_payment_error_source_id as last_payment_error_source_id,\n last_payment_error_type as last_payment_error_type,\n livemode as livemode,\n cast(null as TEXT) as metadata,\n on_behalf_of as on_behalf_of,\n payment_method_id as payment_method_id,\n receipt_email as receipt_email,\n source_id as source_id,\n statement_descriptor as statement_descriptor,\n status as status,\n transfer_data_destination as transfer_data_destination,\n transfer_group as transfer_group\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as payment_intent_id,\n \n\n\n\n \n amount as amount\n \n\n,\n \n\n\n\n \n amount_capturable as amount_capturable\n \n\n,\n \n\n\n\n \n amount_received as amount_received\n \n\n,\n \n\n\n\n \n application_fee_amount as application_fee_amount\n \n\n,\n application,\n cast(canceled_at as timestamp) as canceled_at,\n cancellation_reason,\n capture_method,\n confirmation_method,\n cast(created as timestamp) as created_at,\n currency,\n customer_id,\n description,\n metadata,\n payment_method_id,\n receipt_email,\n statement_descriptor,\n status,\n source_relation\n\n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__customer": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__customer", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__customer.sql", "original_file_path": "models/staging/stg_stripe__customer.sql", "unique_id": "model.stripe.stg_stripe__customer", "fqn": ["stripe", "staging", "stg_stripe__customer"], "alias": "stg_stripe__customer", "checksum": {"name": "sha256", "checksum": "e04fb8ddc62bc18c724b441f863236562730c89a56bf846bd7740b68e22e61ac"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Customer objects allow you to perform recurring charges, and to track multiple charges, that are associated with the same customer.", "columns": {"customer_id": {"name": "customer_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "account_balance": {"name": "account_balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_city": {"name": "customer_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.city"]}, "customer_address_country": {"name": "customer_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.country"]}, "customer_address_line_1": {"name": "customer_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.line_1"]}, "customer_address_line_2": {"name": "customer_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.line_2"]}, "customer_address_postal_code": {"name": "customer_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.postal_code"]}, "customer_address_state": {"name": "customer_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.state"]}, "customer_balance": {"name": "customer_balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "bank_account_id": {"name": "bank_account_id", "description": "ID of the bank account associated with this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the customer entry was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "default_card_id": {"name": "default_card_id", "description": "ID for the default card used by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_delinquent": {"name": "is_delinquent", "description": "When the customer\u2019s latest invoice is billed by charging automatically, delinquent is true if the invoice\u2019s latest charge is failed. When the customer\u2019s latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "email": {"name": "email", "description": "The customer\u2019s email address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "phone": {"name": "phone", "description": "Customer's phone number.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_name": {"name": "shipping_name", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_phone": {"name": "shipping_phone", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}, "is_deleted": {"name": "is_deleted", "description": "Boolean reflecting whether the customer has been deleted in Stripe.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8722112, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__customer_tmp') }}\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__customer_tmp')),\n staging_columns=get_customer_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n \n select \n id as customer_id,\n account_balance,\n address_city as customer_address_city,\n address_country as customer_address_country,\n address_line_1 as customer_address_line_1,\n address_line_2 as customer_address_line_2,\n address_postal_code as customer_address_postal_code,\n address_state as customer_address_state,\n balance as customer_balance,\n bank_account_id,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n currency,\n default_card_id,\n delinquent as is_delinquent,\n description,\n email,\n metadata,\n name as customer_name,\n phone,\n shipping_address_city,\n shipping_address_country,\n shipping_address_line_1,\n shipping_address_line_2,\n shipping_address_postal_code,\n shipping_address_state,\n shipping_name,\n shipping_phone,\n source_relation,\n coalesce(is_deleted, false) as is_deleted\n \n {% if var('stripe__customer_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__customer_metadata')) }}\n {% endif %}\n\n from fields\n {{ livemode_predicate() }}\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__customer_tmp", "package": null, "version": null}, {"name": "stg_stripe__customer_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_customer_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_timestamp", "macro.stripe.livemode_predicate"], "nodes": ["model.stripe.stg_stripe__customer_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__customer.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer_tmp\"\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n account_balance as account_balance,\n address_city as address_city,\n address_country as address_country,\n address_line_1 as address_line_1,\n address_line_2 as address_line_2,\n address_postal_code as address_postal_code,\n address_state as address_state,\n balance as balance,\n bank_account_id as bank_account_id,\n created as created,\n currency as currency,\n default_card_id as default_card_id,\n delinquent as delinquent,\n description as description,\n email as email,\n id as id,\n invoice_prefix as invoice_prefix,\n invoice_settings_default_payment_method as invoice_settings_default_payment_method,\n invoice_settings_footer as invoice_settings_footer,\n is_deleted as is_deleted,\n livemode as livemode,\n metadata as metadata,\n name as name,\n phone as phone,\n shipping_address_city as shipping_address_city,\n shipping_address_country as shipping_address_country,\n shipping_address_line_1 as shipping_address_line_1,\n shipping_address_line_2 as shipping_address_line_2,\n shipping_address_postal_code as shipping_address_postal_code,\n shipping_address_state as shipping_address_state,\n shipping_carrier as shipping_carrier,\n shipping_name as shipping_name,\n shipping_phone as shipping_phone,\n shipping_tracking_number as shipping_tracking_number,\n source_id as source_id,\n tax_exempt as tax_exempt,\n tax_info_tax_id as tax_info_tax_id,\n tax_info_type as tax_info_type,\n tax_info_verification_status as tax_info_verification_status,\n tax_info_verification_verified_name as tax_info_verification_verified_name\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n \n select \n id as customer_id,\n account_balance,\n address_city as customer_address_city,\n address_country as customer_address_country,\n address_line_1 as customer_address_line_1,\n address_line_2 as customer_address_line_2,\n address_postal_code as customer_address_postal_code,\n address_state as customer_address_state,\n balance as customer_balance,\n bank_account_id,\n cast(created as timestamp) as created_at,\n currency,\n default_card_id,\n delinquent as is_delinquent,\n description,\n email,\n metadata,\n name as customer_name,\n phone,\n shipping_address_city,\n shipping_address_country,\n shipping_address_line_1,\n shipping_address_line_2,\n shipping_address_postal_code,\n shipping_address_state,\n shipping_name,\n shipping_phone,\n source_relation,\n coalesce(is_deleted, false) as is_deleted\n \n \n\n from fields\n \n\n where cast(livemode as boolean ) = True\n\n\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payout_balance_transaction": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payout_balance_transaction", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__payout_balance_transaction.sql", "original_file_path": "models/staging/stg_stripe__payout_balance_transaction.sql", "unique_id": "model.stripe.stg_stripe__payout_balance_transaction", "fqn": ["stripe", "staging", "stg_stripe__payout_balance_transaction"], "alias": "stg_stripe__payout_balance_transaction", "checksum": {"name": "sha256", "checksum": "72179232e0b2f9aa6767e99fd2ab7edabf8e4be5b200237a70d8f36a60ac1dc0"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Table that contains the complete mapping between `payout_id` and `balance_transaction_id`. The payout to balance_transaction relationship is 1:many.\n", "columns": {"payout_id": {"name": "payout_id", "description": "Unique identifier for the payout.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_payouts', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.9761872, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payout_balance_transaction\"", "raw_code": "{{ config(enabled=var('stripe__using_payouts', True)) }}\n\nwith base as (\n select * \n from {{ ref('stg_stripe__payout_balance_transaction_tmp') }}\n),\n\nfields as (\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__payout_balance_transaction_tmp')),\n staging_columns=get_payout_balance_transaction_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n select \n payout_id,\n balance_transaction_id,\n source_relation\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payout_balance_transaction_tmp", "package": null, "version": null}, {"name": "stg_stripe__payout_balance_transaction_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_payout_balance_transaction_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation"], "nodes": ["model.stripe.stg_stripe__payout_balance_transaction_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__payout_balance_transaction.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__payout_balance_transaction_tmp\"\n),\n\nfields as (\n select\n \n _fivetran_synced as _fivetran_synced,\n payout_id as payout_id,\n balance_transaction_id as balance_transaction_id\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n select \n payout_id,\n balance_transaction_id,\n source_relation\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__balance_transaction": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__balance_transaction", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__balance_transaction.sql", "original_file_path": "models/staging/stg_stripe__balance_transaction.sql", "unique_id": "model.stripe.stg_stripe__balance_transaction", "fqn": ["stripe", "staging", "stg_stripe__balance_transaction"], "alias": "stg_stripe__balance_transaction", "checksum": {"name": "sha256", "checksum": "90b80325183dabfe405d4014a081863e42915114c4b2797346ab9e5a52df8164"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Balance transactions represent funds moving through your Stripe account. They're created for every type of transaction that comes into or flows out of your Stripe account balance.", "columns": {"balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "available_on": {"name": "available_on", "description": "The date the transaction\u2019s net funds will become available in the Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "The ID of the account connected to the transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the transaction was created, in UTC.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "exchange_rate": {"name": "exchange_rate", "description": "The exchange rate used, if applicable, for this transaction. Specifically, if money was converted from currency A to currency B, then the amount in currency A, times exchange_rate, would be the amount in currency B.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "fee": {"name": "fee", "description": "fees (in currency units) paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "net": {"name": "net", "description": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "reporting_category": {"name": "reporting_category", "description": "Improves on the type field by providing a more-useful grouping for most finance and reporting purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source": {"name": "source", "description": "The Stripe object to which this transaction is related.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "If the transaction\u2019s net funds are available in the Stripe balance yet. Either 'available' or 'pending'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of transaction. Possible values are adjustment, advance, advance_funding, application_fee, application_fee_refund, charge, connect_collection_transfer, issuing_authorization_hold, issuing_authorization_release, issuing_dispute, issuing_transaction, payment, payment_failure_refund, payment_refund, payout, payout_cancel, payout_failure, refund, refund_failure, reserve_transaction, reserved_funds, stripe_fee, stripe_fx_fee, tax_fee, topup, topup_reversal, transfer, transfer_cancel, transfer_failure, or transfer_refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8566804, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__balance_transaction\"", "raw_code": "with base as (\n select * \n from {{ ref('stg_stripe__balance_transaction_tmp') }}\n),\n\nfields as (\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__balance_transaction_tmp')),\n staging_columns=get_balance_transaction_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n\n from base\n),\n\nfinal as (\n select \n id as balance_transaction_id,\n {{ stripe.convert_values('amount') }},\n {{ stripe.convert_values('fee') }},\n {{ stripe.convert_values('net') }},\n cast(available_on as {{ dbt.type_timestamp() }}) as available_on,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n connected_account_id,\n currency,\n description,\n exchange_rate,\n reporting_category,\n source,\n status,\n type,\n source_relation\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__balance_transaction_tmp", "package": null, "version": null}, {"name": "stg_stripe__balance_transaction_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_balance_transaction_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.stripe.convert_values", "macro.dbt.type_timestamp"], "nodes": ["model.stripe.stg_stripe__balance_transaction_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__balance_transaction.sql", "compiled": true, "compiled_code": "with base as (\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__balance_transaction_tmp\"\n),\n\nfields as (\n select\n \n _fivetran_synced as _fivetran_synced,\n amount as amount,\n available_on as available_on,\n connected_account_id as connected_account_id,\n created as created,\n currency as currency,\n description as description,\n exchange_rate as exchange_rate,\n fee as fee,\n id as id,\n net as net,\n payout_id as payout_id,\n cast(null as TEXT) as reporting_category,\n source as source,\n status as status,\n type as type\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n\n from base\n),\n\nfinal as (\n select \n id as balance_transaction_id,\n \n\n\n\n \n amount as amount\n \n\n,\n \n\n\n\n \n fee as fee\n \n\n,\n \n\n\n\n \n net as net\n \n\n,\n cast(available_on as timestamp) as available_on,\n cast(created as timestamp) as created_at,\n connected_account_id,\n currency,\n description,\n exchange_rate,\n reporting_category,\n source,\n status,\n type,\n source_relation\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__subscription_item": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_item", "resource_type": "model", "package_name": "stripe", "path": "staging/stg_stripe__subscription_item.sql", "original_file_path": "models/staging/stg_stripe__subscription_item.sql", "unique_id": "model.stripe.stg_stripe__subscription_item", "fqn": ["stripe", "staging", "stg_stripe__subscription_item"], "alias": "stg_stripe__subscription_item", "checksum": {"name": "sha256", "checksum": "68c4e9b2ddfd83d185dc4f26476dc4f32e25b788f0c9cdae80d98abd2783cb43"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Subscription items allow you to create customer subscriptions with more than one plan, making it easy to represent complex billing relationships.", "columns": {"subscription_item_id": {"name": "subscription_item_id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "plan_id": {"name": "plan_id", "description": "The ID of the plan associated with this subscription_item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription this item belongs to. Join key to the subscription_history table.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created_at": {"name": "created_at", "description": "Time at which the object was created", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "current_period_start": {"name": "current_period_start", "description": "Start of the current period that the subscription has been invoiced for.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "current_period_end": {"name": "current_period_end", "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The quantity of the plan to which the customer is subscribed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/staging/stg_stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.988726, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_stripe__subscription_item_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_stripe__subscription_item_tmp')),\n staging_columns=get_subscription_item_columns()\n )\n }}\n\n {{ fivetran_utils.apply_source_relation(package_name='stripe') }}\n \n from base\n),\n\nfinal as (\n \n select \n id as subscription_item_id,\n cast(plan_id as {{ dbt.type_string() }}) as plan_id,\n subscription_id,\n cast(created as {{ dbt.type_timestamp() }}) as created_at,\n cast(current_period_start as {{ dbt.type_timestamp() }}) as current_period_start,\n cast(current_period_end as {{ dbt.type_timestamp() }}) as current_period_end,\n metadata,\n quantity,\n source_relation\n \n {% if var('stripe__subscription_item_metadata',[]) %}\n , {{ fivetran_utils.pivot_json_extract(string = 'metadata', list_of_properties = var('stripe__subscription_item_metadata')) }}\n {% endif %}\n\n from fields\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_item_tmp", "package": null, "version": null}, {"name": "stg_stripe__subscription_item_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.get_subscription_item_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.apply_source_relation", "macro.dbt.type_string", "macro.dbt.type_timestamp"], "nodes": ["model.stripe.stg_stripe__subscription_item_tmp"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe__subscription_item.sql", "compiled": true, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item_tmp\"\n\n),\n\nfields as (\n\n select\n \n _fivetran_synced as _fivetran_synced,\n created as created,\n current_period_end as current_period_end,\n current_period_start as current_period_start,\n id as id,\n metadata as metadata,\n plan_id as plan_id,\n quantity as quantity,\n subscription_id as subscription_id\n\n \n\n\n\n\n \n \n\n\n\n\n\n, cast('postgres.public' as TEXT) as source_relation\n\n \n from base\n),\n\nfinal as (\n \n select \n id as subscription_item_id,\n cast(plan_id as TEXT) as plan_id,\n subscription_id,\n cast(created as timestamp) as created_at,\n cast(current_period_start as timestamp) as current_period_start,\n cast(current_period_end as timestamp) as current_period_end,\n metadata,\n quantity,\n source_relation\n \n \n\n from fields\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__invoice_line_item_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__invoice_line_item_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__invoice_line_item_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__invoice_line_item_tmp.sql", "unique_id": "model.stripe.stg_stripe__invoice_line_item_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__invoice_line_item_tmp"], "alias": "stg_stripe__invoice_line_item_tmp", "checksum": {"name": "sha256", "checksum": "cb7a2d5cdc05462d2f8f2579cb8a1ab40504e7e5d1c3ea8b9a26cc44e7ecb17a"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_invoices', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670936.9246843, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_invoices', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='invoice_line_item',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='invoice_line_item',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='invoice_line_item'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "invoice_line_item"], ["stripe", "invoice_line_item"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.invoice_line_item"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__invoice_line_item_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_invoice_line_item_identifier\n -- database: postgres \n -- schema: public\n -- identifier: invoice_line_item_data\n\n\n select\n \"id\",\n \"invoice_id\",\n \"_fivetran_synced\",\n \"amount\",\n \"currency\",\n \"description\",\n \"discountable\",\n \"livemode\",\n \"period_end\",\n \"period_start\",\n \"plan_id\",\n \"proration\",\n \"quantity\",\n \"subscription_id\",\n \"subscription_item_id\",\n \"type\",\n \"unique_id\",\n \"metadata\"\n from \"postgres\".\"public\".\"invoice_line_item_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__credit_note_line_item_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note_line_item_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__credit_note_line_item_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__credit_note_line_item_tmp.sql", "unique_id": "model.stripe.stg_stripe__credit_note_line_item_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__credit_note_line_item_tmp"], "alias": "stg_stripe__credit_note_line_item_tmp", "checksum": {"name": "sha256", "checksum": "aaf9af4d50207803a34c53225598bcd09ecdc5be39584181ca8756834b00c3ca"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_credit_notes', False)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670936.9530396, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note_line_item_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_credit_notes', False)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='credit_note_line_item',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='credit_note_line_item',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='credit_note_line_item'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "credit_note_line_item"], ["stripe", "credit_note_line_item"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.credit_note_line_item"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__credit_note_line_item_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_credit_note_line_item_identifier\n -- database: postgres \n -- schema: public\n -- identifier: credit_note_line_item_data\n\n\n select\n \"credit_note_id\",\n \"id\",\n \"amount\",\n \"discount_amount\",\n \"description\",\n \"livemode\",\n \"quantity\",\n \"type\",\n \"unit_amount\",\n \"unit_amount_decimal\",\n \"_fivetran_synced\"\n from \"postgres\".\"public\".\"credit_note_line_item_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__invoice_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__invoice_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__invoice_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__invoice_tmp.sql", "unique_id": "model.stripe.stg_stripe__invoice_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__invoice_tmp"], "alias": "stg_stripe__invoice_tmp", "checksum": {"name": "sha256", "checksum": "f5c25023f0e86e3029f318f5c8e177276ae45fd46d087549dce49a08b9648699"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_invoices', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670936.9647152, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_invoices', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='invoice',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='invoice',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='invoice'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "invoice"], ["stripe", "invoice"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.invoice"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__invoice_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_invoice_identifier\n -- database: postgres \n -- schema: public\n -- identifier: invoice_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"currency\",\n \"customer_id\",\n \"due_date\",\n \"description\",\n \"discountable\",\n \"invoice_id\",\n \"is_deleted\",\n \"livemode\",\n \"period_end\",\n \"period_start\",\n \"proration\",\n \"quantity\",\n \"subscription_id\",\n \"subscription_item_id\",\n \"unit_amount\",\n \"default_payment_method_id\",\n \"amount_due\",\n \"amount_paid\",\n \"amount_remaining\",\n \"post_payment_credit_notes_amount\",\n \"pre_payment_credit_notes_amount\",\n \"subtotal\",\n \"tax\",\n \"total\",\n \"attempt_count\",\n \"auto_advance\",\n \"billing_reason\",\n \"metadata\",\n \"number\",\n \"paid\",\n \"receipt_number\",\n \"status\",\n \"source_relation\"\n from \"postgres\".\"public\".\"invoice_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payout_balance_transaction_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payout_balance_transaction_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__payout_balance_transaction_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__payout_balance_transaction_tmp.sql", "unique_id": "model.stripe.stg_stripe__payout_balance_transaction_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__payout_balance_transaction_tmp"], "alias": "stg_stripe__payout_balance_transaction_tmp", "checksum": {"name": "sha256", "checksum": "695746efd25d3aec11a7f49f5d8821053921686139fe95986a01c37681e64f1b"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_payouts', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670936.9758005, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payout_balance_transaction_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_payouts', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='payout_balance_transaction',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='payout_balance_transaction',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='payout_balance_transaction'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "payout_balance_transaction"], ["stripe", "payout_balance_transaction"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.payout_balance_transaction"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__payout_balance_transaction_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_payout_balance_transaction_identifier\n -- database: postgres \n -- schema: public\n -- identifier: payout_balance_transaction_data\n\n\n select\n \"payout_id\",\n \"_fivetran_synced\",\n \"balance_transaction_id\"\n from \"postgres\".\"public\".\"payout_balance_transaction_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__dispute_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__dispute_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__dispute_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__dispute_tmp.sql", "unique_id": "model.stripe.stg_stripe__dispute_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__dispute_tmp"], "alias": "stg_stripe__dispute_tmp", "checksum": {"name": "sha256", "checksum": "7f7395b6f4340fc65a6f0e7140bcc3feb3ee0df6b8f4c37fc6ab6d83faf67360"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670936.9871304, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__dispute_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='dispute',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='dispute',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='dispute'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "dispute"], ["stripe", "dispute"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.dispute"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__dispute_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_dispute_identifier\n -- database: postgres \n -- schema: public\n -- identifier: dispute_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"balance_transaction\",\n \"charge_id\",\n \"connected_account_id\",\n \"created\",\n \"currency\",\n \"evidence_access_activity_log\",\n \"evidence_billing_address\",\n \"evidence_cancellation_policy\",\n \"evidence_cancellation_policy_disclosure\",\n \"evidence_cancellation_rebuttal\",\n \"evidence_customer_communication\",\n \"evidence_customer_email_address\",\n \"evidence_customer_name\",\n \"evidence_customer_purchase_ip\",\n \"evidence_customer_signature\",\n \"evidence_details_due_by\",\n \"evidence_details_has_evidence\",\n \"evidence_details_past_due\",\n \"evidence_details_submission_count\",\n \"evidence_duplicate_charge_documentation\",\n \"evidence_duplicate_charge_explanation\",\n \"evidence_duplicate_charge_id\",\n \"evidence_product_description\",\n \"evidence_receipt\",\n \"evidence_refund_policy\",\n \"evidence_refund_policy_disclosure\",\n \"evidence_refund_refusal_explanation\",\n \"evidence_service_date\",\n \"evidence_service_documentation\",\n \"evidence_shipping_address\",\n \"evidence_shipping_carrier\",\n \"evidence_shipping_date\",\n \"evidence_shipping_documentation\",\n \"evidence_shipping_tracking_number\",\n \"evidence_uncategorized_file\",\n \"evidence_uncategorized_text\",\n \"is_charge_refundable\",\n \"livemode\",\n \"metadata\",\n \"reason\",\n \"status\"\n from \"postgres\".\"public\".\"dispute_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__refund_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__refund_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__refund_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__refund_tmp.sql", "unique_id": "model.stripe.stg_stripe__refund_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__refund_tmp"], "alias": "stg_stripe__refund_tmp", "checksum": {"name": "sha256", "checksum": "b9c3deebdb6eee7a6b8fb6e1e9c9cbf2b6bf94c563ab7f98acbd18da1abe5289"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670936.996515, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__refund_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='refund',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='refund',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='refund'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "refund"], ["stripe", "refund"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.refund"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__refund_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_refund_identifier\n -- database: postgres \n -- schema: public\n -- identifier: refund_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"balance_transaction_id\",\n \"charge_id\",\n \"created\",\n \"currency\",\n \"description\",\n \"failure_balance_transaction_id\",\n \"failure_reason\",\n \"metadata\",\n \"reason\",\n \"receipt_number\",\n \"status\"\n from \"postgres\".\"public\".\"refund_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__account_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__account_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__account_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__account_tmp.sql", "unique_id": "model.stripe.stg_stripe__account_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__account_tmp"], "alias": "stg_stripe__account_tmp", "checksum": {"name": "sha256", "checksum": "f6ea7f5bde4236e73fc6b328d0a0d49cbe8317de5e2154a15b8a9141e5c7e788"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.005912, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__account_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='account', \n database_variable='stripe_database', \n schema_variable='stripe_schema', \n default_database=target.database,\n default_schema='stripe',\n default_variable='account',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='account'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "account"], ["stripe", "account"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.account"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__account_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_account_identifier\n -- database: postgres \n -- schema: public\n -- identifier: account_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"business_profile_mcc\",\n \"business_profile_name\",\n \"business_profile_product_description\",\n \"business_profile_support_address_city\",\n \"business_profile_support_address_country\",\n \"business_profile_support_address_line_1\",\n \"business_profile_support_address_line_2\",\n \"business_profile_support_address_postal_code\",\n \"business_profile_support_address_state\",\n \"business_profile_support_email\",\n \"business_profile_support_phone\",\n \"business_profile_support_url\",\n \"business_profile_url\",\n \"business_type\",\n \"capabilities_afterpay_clearpay_payments\",\n \"capabilities_au_becs_debit_payments\",\n \"capabilities_bacs_debit_payments\",\n \"capabilities_bancontact_payments\",\n \"capabilities_card_issuing\",\n \"capabilities_card_payments\",\n \"capabilities_cartes_bancaires_payments\",\n \"capabilities_eps_payments\",\n \"capabilities_fpx_payments\",\n \"capabilities_giropay_payments\",\n \"capabilities_grabpay_payments\",\n \"capabilities_ideal_payments\",\n \"capabilities_jcb_payments\",\n \"capabilities_legacy_payments\",\n \"capabilities_oxxo_payments\",\n \"capabilities_p_24_payments\",\n \"capabilities_platform_payments\",\n \"capabilities_sepa_debit_payments\",\n \"capabilities_sofort_payments\",\n \"capabilities_tax_reporting_us_1099_k\",\n \"capabilities_tax_reporting_us_1099_misc\",\n \"capabilities_transfers\",\n \"charges_enabled\",\n \"company_address_city\",\n \"company_address_country\",\n \"company_address_kana_city\",\n \"company_address_kana_country\",\n \"company_address_kana_line_1\",\n \"company_address_kana_line_2\",\n \"company_address_kana_postal_code\",\n \"company_address_kana_state\",\n \"company_address_kana_town\",\n \"company_address_kanji_city\",\n \"company_address_kanji_country\",\n \"company_address_kanji_line_1\",\n \"company_address_kanji_line_2\",\n \"company_address_kanji_postal_code\",\n \"company_address_kanji_state\",\n \"company_address_kanji_town\",\n \"company_address_line_1\",\n \"company_address_line_2\",\n \"company_address_postal_code\",\n \"company_address_state\",\n \"company_directors_provided\",\n \"company_executives_provided\",\n \"company_name\",\n \"company_name_kana\",\n \"company_name_kanji\",\n \"company_owners_provided\",\n \"company_phone\",\n \"company_structure\",\n \"company_tax_id_provided\",\n \"company_tax_id_registrar\",\n \"company_vat_id_provided\",\n \"company_verification_document_back\",\n \"company_verification_document_details\",\n \"company_verification_document_details_code\",\n \"company_verification_document_front\",\n \"country\",\n \"created\",\n \"default_currency\",\n \"details_submitted\",\n \"email\",\n \"individual_id\",\n \"is_deleted\",\n \"metadata\",\n \"payouts_enabled\",\n \"requirements_current_deadline\",\n \"requirements_currently_due\",\n \"requirements_disabled_reason\",\n \"requirements_errors\",\n \"requirements_eventually_due\",\n \"requirements_past_due\",\n \"requirements_pending_verification\",\n \"settings_branding_icon\",\n \"settings_branding_logo\",\n \"settings_branding_primary_color\",\n \"settings_card_payments_decline_on_avs_failure\",\n \"settings_card_payments_decline_on_cvc_failure\",\n \"settings_card_payments_statement_descriptor_prefix\",\n \"settings_dashboard_display_name\",\n \"settings_dashboard_timezone\",\n \"settings_payments_statement_descriptor\",\n \"settings_payments_statement_descriptor_kana\",\n \"settings_payments_statement_descriptor_kanji\",\n \"settings_payouts_debit_negative_balances\",\n \"settings_payouts_schedule_delay_days\",\n \"settings_payouts_schedule_interval\",\n \"settings_payouts_schedule_monthly_anchor\",\n \"settings_payouts_schedule_weekly_anchor\",\n \"settings_payouts_statement_descriptor\",\n \"tos_acceptance_date\",\n \"tos_acceptance_ip\",\n \"tos_acceptance_user_agent\",\n \"type\"\n from \"postgres\".\"public\".\"account_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__balance_transaction_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__balance_transaction_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__balance_transaction_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__balance_transaction_tmp.sql", "unique_id": "model.stripe.stg_stripe__balance_transaction_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__balance_transaction_tmp"], "alias": "stg_stripe__balance_transaction_tmp", "checksum": {"name": "sha256", "checksum": "fdcad02d71f565846ee8c15b404bdbaec3ae5e0e3512fa18634d6fc0a98533e1"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.0159163, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__balance_transaction_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='balance_transaction',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='balance_transaction',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='balance_transaction'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "balance_transaction"], ["stripe", "balance_transaction"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.balance_transaction"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__balance_transaction_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_balance_transaction_identifier\n -- database: postgres \n -- schema: public\n -- identifier: balance_transaction_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"available_on\",\n \"connected_account_id\",\n \"created\",\n \"currency\",\n \"description\",\n \"exchange_rate\",\n \"fee\",\n \"net\",\n \"source\",\n \"status\",\n \"type\",\n \"payout_id\"\n from \"postgres\".\"public\".\"balance_transaction_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__subscription_discount_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_discount_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__subscription_discount_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__subscription_discount_tmp.sql", "unique_id": "model.stripe.stg_stripe__subscription_discount_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__subscription_discount_tmp"], "alias": "stg_stripe__subscription_discount_tmp", "checksum": {"name": "sha256", "checksum": "3bb3c1a19410625addcee2316edd49e1ea91d7ebf31a22c270de213897aa273d"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_subscription_discounts', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.025132, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_discount_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_subscription_discounts', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='subscription_discount',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='subscription_discount',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='subscription_discount'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "subscription_discount"], ["stripe", "subscription_discount"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.subscription_discount"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__subscription_discount_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_subscription_discount_identifier\n -- database: postgres \n -- schema: public\n -- identifier: subscription_discount_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"checkout_session\",\n \"coupon_id\",\n \"customer_id\",\n \"end\",\n \"invoice_id\",\n \"invoice_item_id\",\n \"start\",\n \"subscription_id\"\n from \"postgres\".\"public\".\"subscription_discount_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__charge_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__charge_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__charge_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__charge_tmp.sql", "unique_id": "model.stripe.stg_stripe__charge_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__charge_tmp"], "alias": "stg_stripe__charge_tmp", "checksum": {"name": "sha256", "checksum": "09dab3000261fcaf87f682a68ffa148127cb13f7cac45a74898d0fd8aa7b9271"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.0363867, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__charge_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='charge',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='charge',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='charge'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "charge"], ["stripe", "charge"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.charge"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__charge_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_charge_identifier\n -- database: postgres \n -- schema: public\n -- identifier: charge_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"amount_refunded\",\n \"application\",\n \"application_fee_amount\",\n \"balance_transaction_id\",\n \"bank_account_id\",\n \"captured\",\n \"card_id\",\n \"connected_account_id\",\n \"created\",\n \"currency\",\n \"customer_id\",\n \"description\",\n \"destination\",\n \"failure_code\",\n \"failure_message\",\n \"fraud_details_stripe_report\",\n \"fraud_details_user_report\",\n \"invoice_id\",\n \"livemode\",\n \"metadata\",\n \"on_behalf_of\",\n \"outcome_network_status\",\n \"outcome_reason\",\n \"outcome_risk_level\",\n \"outcome_risk_score\",\n \"outcome_seller_message\",\n \"outcome_type\",\n \"paid\",\n \"payment_intent_id\",\n \"receipt_email\",\n \"receipt_number\",\n \"receipt_url\",\n \"refunded\",\n \"shipping_address_city\",\n \"shipping_address_country\",\n \"shipping_address_line_1\",\n \"shipping_address_line_2\",\n \"shipping_address_postal_code\",\n \"shipping_address_state\",\n \"shipping_carrier\",\n \"shipping_name\",\n \"shipping_phone\",\n \"shipping_tracking_number\",\n \"source_id\",\n \"source_transfer\",\n \"statement_descriptor\",\n \"status\",\n \"transfer_data_destination\",\n \"transfer_group\",\n \"transfer_id\",\n \"calculated_statement_descriptor\"\n from \"postgres\".\"public\".\"charge_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__discount_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__discount_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__discount_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__discount_tmp.sql", "unique_id": "model.stripe.stg_stripe__discount_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__discount_tmp"], "alias": "stg_stripe__discount_tmp", "checksum": {"name": "sha256", "checksum": "2f98a07da930f04f2fb0e3b36fcaafc007c2ccc8cc16fa70d5246c7f9a188c50"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.0457559, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__discount_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='discount',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='discount',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='discount'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "discount"], ["stripe", "discount"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.discount"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__discount_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_discount_identifier\n -- database: postgres \n -- schema: public\n -- identifier: discount_data\n\n\n select\n \"id\",\n \"type\",\n \"type_id\",\n \"_fivetran_synced\",\n \"amount\",\n \"checkout_session_id\",\n \"checkout_session_line_item_id\",\n \"coupon_id\",\n \"credit_note_line_item_id\",\n \"customer_id\",\n \"end\",\n \"invoice_id\",\n \"invoice_item_id\",\n \"promotion_code\",\n \"start\",\n \"subscription_id\"\n from \"postgres\".\"public\".\"discount_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__product_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__product_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__product_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__product_tmp.sql", "unique_id": "model.stripe.stg_stripe__product_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__product_tmp"], "alias": "stg_stripe__product_tmp", "checksum": {"name": "sha256", "checksum": "fbb9adb5fa8d9dae5b8fad6781b7ad4a58fac9fb473b9b12b17adc76470277c2"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_subscriptions', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.0551758, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__product_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='product',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='product',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='product'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "product"], ["stripe", "product"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.product"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__product_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_product_identifier\n -- database: postgres \n -- schema: public\n -- identifier: product_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"active\",\n \"caption\",\n \"created\",\n \"description\",\n \"is_deleted\",\n \"livemode\",\n \"metadata\",\n \"name\",\n \"package_dimensions_height\",\n \"package_dimensions_length\",\n \"package_dimensions_weight\",\n \"package_dimensions_width\",\n \"shippable\",\n \"statement_descriptor\",\n \"type\",\n \"unit_label\",\n \"updated\",\n \"url\"\n from \"postgres\".\"public\".\"product_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__transfer_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__transfer_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__transfer_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__transfer_tmp.sql", "unique_id": "model.stripe.stg_stripe__transfer_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__transfer_tmp"], "alias": "stg_stripe__transfer_tmp", "checksum": {"name": "sha256", "checksum": "17c92fef65940f60267d656ddab90809890a0791b144c9464c1b196be5144042"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_transfers', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.066677, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__transfer_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_transfers', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='transfer',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='transfer',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='transfer'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "transfer"], ["stripe", "transfer"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.transfer"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__transfer_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_transfer_identifier\n -- database: postgres \n -- schema: public\n -- identifier: transfer_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"amount_reversed\",\n \"balance_transaction_id\",\n \"created\",\n \"currency\",\n \"description\",\n \"destination\",\n \"destination_payment\",\n \"destination_payment_id\",\n \"livemode\",\n \"metadata\",\n \"reversed\",\n \"source_transaction\",\n \"source_transaction_id\",\n \"source_type\",\n \"transfer_group\"\n from \"postgres\".\"public\".\"transfer_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__customer_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__customer_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__customer_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__customer_tmp.sql", "unique_id": "model.stripe.stg_stripe__customer_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__customer_tmp"], "alias": "stg_stripe__customer_tmp", "checksum": {"name": "sha256", "checksum": "1aa8b2dab727064fcb4a12dfa95d1a1e0983b2b6ec4b3907e76fb5a6466ceb1a"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.0782716, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__customer_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='customer',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='customer',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='customer'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "customer"], ["stripe", "customer"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.customer"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__customer_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_customer_identifier\n -- database: postgres \n -- schema: public\n -- identifier: customer_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"account_balance\",\n \"address_city\",\n \"address_country\",\n \"address_line_1\",\n \"address_line_2\",\n \"address_postal_code\",\n \"address_state\",\n \"balance\",\n \"bank_account_id\",\n \"created\",\n \"currency\",\n \"default_card_id\",\n \"delinquent\",\n \"description\",\n \"email\",\n \"invoice_prefix\",\n \"invoice_settings_default_payment_method\",\n \"invoice_settings_footer\",\n \"is_deleted\",\n \"livemode\",\n \"name\",\n \"phone\",\n \"shipping_address_city\",\n \"shipping_address_country\",\n \"shipping_address_line_1\",\n \"shipping_address_line_2\",\n \"shipping_address_postal_code\",\n \"shipping_address_state\",\n \"shipping_carrier\",\n \"shipping_name\",\n \"shipping_phone\",\n \"shipping_tracking_number\",\n \"source_id\",\n \"tax_exempt\",\n \"tax_info_tax_id\",\n \"tax_info_type\",\n \"tax_info_verification_status\",\n \"tax_info_verification_verified_name\",\n \"metadata\"\n from \"postgres\".\"public\".\"customer_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__coupon_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__coupon_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__coupon_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__coupon_tmp.sql", "unique_id": "model.stripe.stg_stripe__coupon_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__coupon_tmp"], "alias": "stg_stripe__coupon_tmp", "checksum": {"name": "sha256", "checksum": "5753c87d960758687a69a9ce87046417da5d2923a8ac5a1551dbbfe00ff4b1a3"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_coupons', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.0879507, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__coupon_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_coupons', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='coupon',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='coupon',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='coupon'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "coupon"], ["stripe", "coupon"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.coupon"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__coupon_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_coupon_identifier\n -- database: postgres \n -- schema: public\n -- identifier: coupon_data\n\n\n select\n \"id\",\n \"amount_off\",\n \"created\",\n \"currency\",\n \"duration\",\n \"duration_in_months\",\n \"livemode\",\n \"max_redemptions\",\n \"metadata\",\n \"name\",\n \"percent_off\",\n \"redeem_by\",\n \"times_redeemed\",\n \"valid\",\n \"_fivetran_synced\"\n from \"postgres\".\"public\".\"coupon_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__fee_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__fee_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__fee_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__fee_tmp.sql", "unique_id": "model.stripe.stg_stripe__fee_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__fee_tmp"], "alias": "stg_stripe__fee_tmp", "checksum": {"name": "sha256", "checksum": "ad7294274a6eff3ff88f56e39ee32696f5603b78ee959a586af54438a57a4557"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.0995033, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__fee_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='fee',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='fee',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='fee'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "fee"], ["stripe", "fee"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.fee"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__fee_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_fee_identifier\n -- database: postgres \n -- schema: public\n -- identifier: fee_data\n\n\n select\n \"balance_transaction_id\",\n \"index\",\n \"_fivetran_synced\",\n \"amount\",\n \"application\",\n \"connected_account_id\",\n \"currency\",\n \"description\",\n \"type\"\n from \"postgres\".\"public\".\"fee_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__subscription_item_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_item_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__subscription_item_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__subscription_item_tmp.sql", "unique_id": "model.stripe.stg_stripe__subscription_item_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__subscription_item_tmp"], "alias": "stg_stripe__subscription_item_tmp", "checksum": {"name": "sha256", "checksum": "4d6585a1291903619b673bf55b7abce38402b467c98a36e586c3c5d4bd4ab553"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.1089838, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='subscription_item',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='subscription_item',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='subscription_item'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "subscription_item"], ["stripe", "subscription_item"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.subscription_item"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__subscription_item_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_subscription_item_identifier\n -- database: postgres \n -- schema: public\n -- identifier: subscription_item_data\n\n\n select\n \"_fivetran_synced\",\n \"created\",\n \"current_period_end\",\n \"current_period_start\",\n \"id\",\n \"metadata\",\n \"plan_id\",\n \"quantity\",\n \"subscription_id\"\n from \"postgres\".\"public\".\"subscription_item_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__credit_note_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__credit_note_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__credit_note_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__credit_note_tmp.sql", "unique_id": "model.stripe.stg_stripe__credit_note_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__credit_note_tmp"], "alias": "stg_stripe__credit_note_tmp", "checksum": {"name": "sha256", "checksum": "79eb4603563af08b969b5d8202d9b46893dd8357b8a02c533287ddfd3f5eaf4c"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_credit_notes', False)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.118512, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_credit_notes', False)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='credit_note',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='credit_note',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='credit_note'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "credit_note"], ["stripe", "credit_note"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.credit_note"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__credit_note_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_credit_note_identifier\n -- database: postgres \n -- schema: public\n -- identifier: credit_note_data\n\n\n select\n \"id\",\n \"amount\",\n \"created\",\n \"currency\",\n \"discount_amount\",\n \"subtotal\",\n \"total\",\n \"livemode\",\n \"memo\",\n \"metadata\",\n \"number\",\n \"pdf\",\n \"reason\",\n \"status\",\n \"type\",\n \"voided_at\",\n \"customer_balance_transaction_id\",\n \"invoice_id\",\n \"refund_id\",\n \"_fivetran_synced\"\n from \"postgres\".\"public\".\"credit_note_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payout_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payout_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__payout_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__payout_tmp.sql", "unique_id": "model.stripe.stg_stripe__payout_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__payout_tmp"], "alias": "stg_stripe__payout_tmp", "checksum": {"name": "sha256", "checksum": "9c3c37badcd7b33cf0df67fd1781aba592f7a1ea2acc7df275338783593bf46f"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_payouts', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.13029, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payout_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_payouts', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='payout',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='payout',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='payout'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "payout"], ["stripe", "payout"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.payout"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__payout_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_payout_identifier\n -- database: postgres \n -- schema: public\n -- identifier: payout_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"arrival_date\",\n \"automatic\",\n \"balance_transaction_id\",\n \"connected_account_id\",\n \"created\",\n \"currency\",\n \"description\",\n \"destination_bank_account_id\",\n \"destination_card_id\",\n \"failure_balance_transaction_id\",\n \"failure_code\",\n \"failure_message\",\n \"livemode\",\n \"metadata\",\n \"method\",\n \"source_type\",\n \"statement_descriptor\",\n \"status\",\n \"type\"\n from \"postgres\".\"public\".\"payout_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__card_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__card_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__card_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__card_tmp.sql", "unique_id": "model.stripe.stg_stripe__card_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__card_tmp"], "alias": "stg_stripe__card_tmp", "checksum": {"name": "sha256", "checksum": "8f1095d6648ffae4d433ad101b262bd7e595c1075fdfdd95768269711e7bbd78"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.1415384, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__card_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='card',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='card',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='card'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "card"], ["stripe", "card"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.card"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__card_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_card_identifier\n -- database: postgres \n -- schema: public\n -- identifier: card_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"account_id\",\n \"address_city\",\n \"address_country\",\n \"address_line_1\",\n \"address_line_1_check\",\n \"address_line_2\",\n \"address_state\",\n \"address_zip\",\n \"address_zip_check\",\n \"brand\",\n \"connected_account_id\",\n \"country\",\n \"created\",\n \"currency\",\n \"customer_id\",\n \"cvc_check\",\n \"dynamic_last_4\",\n \"exp_month\",\n \"exp_year\",\n \"fingerprint\",\n \"funding\",\n \"is_deleted\",\n \"last_4\",\n \"name\",\n \"network\",\n \"recipient\",\n \"tokenization_method\",\n \"metadata\"\n from \"postgres\".\"public\".\"card_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payment_method_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__payment_method_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__payment_method_tmp.sql", "unique_id": "model.stripe.stg_stripe__payment_method_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__payment_method_tmp"], "alias": "stg_stripe__payment_method_tmp", "checksum": {"name": "sha256", "checksum": "ba47b86e074bb70770e3b7b2e54f77d07ad675c9e2ad72600cdf615019c12805"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_payment_method', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.1511705, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_payment_method', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='payment_method',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='payment_method',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='payment_method'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "payment_method"], ["stripe", "payment_method"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.payment_method"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__payment_method_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_payment_method_identifier\n -- database: postgres \n -- schema: public\n -- identifier: payment_method_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"billing_detail_address_city\",\n \"billing_detail_address_country\",\n \"billing_detail_address_line_1\",\n \"billing_detail_address_line_2\",\n \"billing_detail_address_postal_code\",\n \"billing_detail_address_state\",\n \"billing_detail_email\",\n \"billing_detail_name\",\n \"billing_detail_phone\",\n \"created\",\n \"customer_id\",\n \"livemode\",\n \"type\"\n from \"postgres\".\"public\".\"payment_method_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__subscription_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__subscription_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__subscription_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__subscription_tmp.sql", "unique_id": "model.stripe.stg_stripe__subscription_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__subscription_tmp"], "alias": "stg_stripe__subscription_tmp", "checksum": {"name": "sha256", "checksum": "8d74dfec69145cc6b49d363eb5b7cb0924ce701b38d23494e91217e219fc180e"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_subscriptions', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.1627762, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n{%- set history_or_subscription = 'subscription_history'\n if var('stripe__using_subscription_history', stripe.does_table_exist('subscription_history')=='exists')\n else 'subscription' -%}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier=history_or_subscription,\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable=history_or_subscription,\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name=history_or_subscription\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "subscription"], ["stripe", "subscription"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.does_table_exist", "macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.subscription"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__subscription_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_subscription_history_identifier\n -- database: postgres \n -- schema: public\n -- identifier: subscription_history_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"_fivetran_active\",\n \"application_fee_percent\",\n \"billing\",\n \"billing_cycle_anchor\",\n \"billing_threshold_amount_gte\",\n \"billing_threshold_reset_billing_cycle_anchor\",\n \"cancel_at\",\n \"cancel_at_period_end\",\n \"canceled_at\",\n \"created\",\n \"current_period_end\",\n \"current_period_start\",\n \"customer_id\",\n \"days_until_due\",\n \"default_source_id\",\n \"ended_at\",\n \"livemode\",\n \"metadata\",\n \"quantity\",\n \"start_date\",\n \"status\",\n \"tax_percent\",\n \"trial_end\",\n \"trial_start\"\n from \"postgres\".\"public\".\"subscription_history_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__price_plan_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__price_plan_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__price_plan_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__price_plan_tmp.sql", "unique_id": "model.stripe.stg_stripe__price_plan_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__price_plan_tmp"], "alias": "stg_stripe__price_plan_tmp", "checksum": {"name": "sha256", "checksum": "d01f1c2b95c9480ab1ac00b78cfebcc895e211cc37e6139029bb0884208f9011"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_subscriptions', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.1768017, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__price_plan_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True)) }}\n\n{%- set price_or_plan = 'price'\n if var('stripe__using_price', stripe.does_table_exist('price')=='exists')\n else 'plan' -%}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier=price_or_plan,\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable=price_or_plan,\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name=price_or_plan\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "plan"], ["stripe", "plan"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.does_table_exist", "macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.plan"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__price_plan_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_price_identifier\n -- database: postgres \n -- schema: public\n -- identifier: price_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"active\",\n \"billing_scheme\",\n \"created\",\n \"currency\",\n \"invoice_item_id\",\n \"is_deleted\",\n \"livemode\",\n \"lookup_key\",\n \"metadata\",\n \"nickname\",\n \"product_id\",\n \"recurring_aggregate_usage\",\n \"recurring_interval\",\n \"recurring_interval_count\",\n \"recurring_usage_type\",\n \"tiers_mode\",\n \"transform_quantity_divide_by\",\n \"transform_quantity_round\",\n \"type\",\n \"unit_amount\",\n \"unit_amount_decimal\"\n from \"postgres\".\"public\".\"price_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payment_intent_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payment_intent_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__payment_intent_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__payment_intent_tmp.sql", "unique_id": "model.stripe.stg_stripe__payment_intent_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__payment_intent_tmp"], "alias": "stg_stripe__payment_intent_tmp", "checksum": {"name": "sha256", "checksum": "c5fbfdf125d6214e70cb997c4d6137f8806826912f41c4b07e6e0951b241071d"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.189833, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_intent_tmp\"", "raw_code": "{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='payment_intent',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='payment_intent',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='payment_intent'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "payment_intent"], ["stripe", "payment_intent"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.payment_intent"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__payment_intent_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_payment_intent_identifier\n -- database: postgres \n -- schema: public\n -- identifier: payment_intent_data\n\n\n select\n \"id\",\n \"_fivetran_synced\",\n \"amount\",\n \"amount_capturable\",\n \"amount_received\",\n \"application\",\n \"application_fee_amount\",\n \"canceled_at\",\n \"cancellation_reason\",\n \"capture_method\",\n \"confirmation_method\",\n \"created\",\n \"currency\",\n \"customer_id\",\n \"description\",\n \"last_payment_error_charge_id\",\n \"last_payment_error_code\",\n \"last_payment_error_decline_code\",\n \"last_payment_error_doc_url\",\n \"last_payment_error_message\",\n \"last_payment_error_param\",\n \"last_payment_error_source_id\",\n \"last_payment_error_type\",\n \"livemode\",\n \"on_behalf_of\",\n \"payment_method_id\",\n \"receipt_email\",\n \"source_id\",\n \"statement_descriptor\",\n \"status\",\n \"transfer_data_destination\",\n \"transfer_group\"\n from \"postgres\".\"public\".\"payment_intent_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stg_stripe__payment_method_card_tmp": {"database": "postgres", "schema": "public_stripe_dev", "name": "stg_stripe__payment_method_card_tmp", "resource_type": "model", "package_name": "stripe", "path": "staging/tmp/stg_stripe__payment_method_card_tmp.sql", "original_file_path": "models/staging/tmp/stg_stripe__payment_method_card_tmp.sql", "unique_id": "model.stripe.stg_stripe__payment_method_card_tmp", "fqn": ["stripe", "staging", "tmp", "stg_stripe__payment_method_card_tmp"], "alias": "stg_stripe__payment_method_card_tmp", "checksum": {"name": "sha256", "checksum": "7bfa32226f273e5014df63a00bff20312b0d6754e33c5028b6e7676a83c46aa1"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "view", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "view", "enabled": "var('stripe__using_payment_method', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.199321, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_card_tmp\"", "raw_code": "{{ config(enabled=var('stripe__using_payment_method', True)) }}\n\n{% if var('stripe_union_schemas', []) | length > 0 or var('stripe_union_databases', []) | length > 0 %}\n\n{{\n fivetran_utils.union_data(\n table_identifier='payment_method_card',\n database_variable='stripe_database',\n schema_variable='stripe_schema',\n default_database=target.database,\n default_schema='stripe',\n default_variable='payment_method_card',\n union_schema_variable='stripe_union_schemas',\n union_database_variable='stripe_union_databases'\n\n )\n}}\n\n{% else %}\n\n{{\n fivetran_utils.union_connections(\n connection_dictionary='stripe_sources',\n single_source_name='stripe',\n single_table_name='payment_method_card'\n )\n}}\n\n{% endif %}", "doc_blocks": [], "language": "sql", "refs": [], "sources": [["stripe", "payment_method_card"], ["stripe", "payment_method_card"]], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.fivetran_utils.union_connections"], "nodes": ["source.stripe.stripe.payment_method_card"]}, "compiled_path": "target/compiled/stripe/models/staging/tmp/stg_stripe__payment_method_card_tmp.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\n\n-- ** Values passed to adapter.get_relation:\n -- full-identifier_var: stripe_payment_method_card_identifier\n -- database: postgres \n -- schema: public\n -- identifier: payment_method_card_data\n\n\n select\n \"payment_method_id\",\n \"_fivetran_synced\",\n \"brand\",\n \"charge_id\",\n \"description\",\n \"fingerprint\",\n \"funding\",\n \"type\",\n \"wallet_type\"\n from \"postgres\".\"public\".\"payment_method_card_data\" as source_table\n\n \n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__account_rolling_totals": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__account_rolling_totals", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__account_rolling_totals.sql", "original_file_path": "models/intermediate/int_stripe__account_rolling_totals.sql", "unique_id": "model.stripe.int_stripe__account_rolling_totals", "fqn": ["stripe", "intermediate", "int_stripe__account_rolling_totals"], "alias": "int_stripe__account_rolling_totals", "checksum": {"name": "sha256", "checksum": "27942fa6dea8e7ca01d57128ce44af35cbce591c404b1952efdebab5b6f18056"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Each record represents each day's ending balances per account, in addition to changes over time.", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.7226815, "relation_name": "\"postgres\".\"public_stripe_dev\".\"int_stripe__account_rolling_totals\"", "raw_code": "{% set total_fields = ['total_daily_sales_amount', 'total_daily_refunds_amount', 'total_daily_adjustments_amount', 'total_daily_other_transactions_amount', 'total_daily_gross_transaction_amount', 'total_daily_net_transactions_amount', 'total_daily_payout_fee_amount', 'total_daily_gross_payout_amount', 'daily_net_activity_amount', 'daily_end_balance_amount', 'total_daily_sales_count', 'total_daily_payouts_count', 'total_daily_adjustments_count', 'total_daily_failed_charge_count', 'total_daily_failed_charge_amount'] %}\n{% set rolling_fields = ['rolling_total_daily_sales_amount', 'rolling_total_daily_refunds_amount', 'rolling_total_daily_adjustments_amount', 'rolling_total_daily_other_transactions_amount', 'rolling_total_daily_gross_transaction_amount', 'rolling_total_daily_net_transactions_amount', 'rolling_total_daily_payout_fee_amount', 'rolling_total_daily_gross_payout_amount', 'rolling_daily_net_activity_amount', 'rolling_daily_end_balance_amount', 'rolling_total_daily_sales_count', 'rolling_total_daily_payouts_count', 'rolling_total_daily_adjustments_count', 'rolling_total_daily_failed_charge_count', 'rolling_total_daily_failed_charge_amount'] %}\n\nwith date_spine as (\n\n select * \n from {{ ref('int_stripe__date_spine') }}\n\n), account_daily_balances_by_type as (\n\n select * \n from {{ ref('int_stripe__account_daily')}}\n\n), account_rolling_totals as (\n\n select\n *\n\n {% for t in total_fields %}\n , sum({{ t }}) over (order by date_day rows unbounded preceding) as rolling_{{ t }}\n {% endfor %}\n\n from account_daily_balances_by_type\n\n), final as (\n\n select\n date_spine.account_id,\n date_spine.date_day,\n date_spine.date_week,\n date_spine.date_month,\n date_spine.date_year,\n {% for t in total_fields %}\n coalesce(round(account_rolling_totals.{{ t }},2),0) as {{ t }},\n {% endfor %}\n\n {% for f in rolling_fields %}\n case when account_rolling_totals.{{ f }} is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.{{ f }},2),0)\n end as {{ f }},\n {% endfor %}\n\n date_spine.date_index,\n account_rolling_totals.source_relation\n\n from date_spine\n left join account_rolling_totals\n on account_rolling_totals.date_day = date_spine.date_day\n and account_rolling_totals.account_id = date_spine.account_id\n and account_rolling_totals.source_relation = date_spine.source_relation\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_stripe__date_spine", "package": null, "version": null}, {"name": "int_stripe__account_daily", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.int_stripe__date_spine", "model.stripe.int_stripe__account_daily"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__account_rolling_totals.sql", "compiled": true, "compiled_code": "\n\n\nwith date_spine as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"int_stripe__date_spine\"\n\n), account_daily_balances_by_type as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"int_stripe__account_daily\"\n\n), account_rolling_totals as (\n\n select\n *\n\n \n , sum(total_daily_sales_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_sales_amount\n \n , sum(total_daily_refunds_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_refunds_amount\n \n , sum(total_daily_adjustments_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_adjustments_amount\n \n , sum(total_daily_other_transactions_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_other_transactions_amount\n \n , sum(total_daily_gross_transaction_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_gross_transaction_amount\n \n , sum(total_daily_net_transactions_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_net_transactions_amount\n \n , sum(total_daily_payout_fee_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_payout_fee_amount\n \n , sum(total_daily_gross_payout_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_gross_payout_amount\n \n , sum(daily_net_activity_amount) over (order by date_day rows unbounded preceding) as rolling_daily_net_activity_amount\n \n , sum(daily_end_balance_amount) over (order by date_day rows unbounded preceding) as rolling_daily_end_balance_amount\n \n , sum(total_daily_sales_count) over (order by date_day rows unbounded preceding) as rolling_total_daily_sales_count\n \n , sum(total_daily_payouts_count) over (order by date_day rows unbounded preceding) as rolling_total_daily_payouts_count\n \n , sum(total_daily_adjustments_count) over (order by date_day rows unbounded preceding) as rolling_total_daily_adjustments_count\n \n , sum(total_daily_failed_charge_count) over (order by date_day rows unbounded preceding) as rolling_total_daily_failed_charge_count\n \n , sum(total_daily_failed_charge_amount) over (order by date_day rows unbounded preceding) as rolling_total_daily_failed_charge_amount\n \n\n from account_daily_balances_by_type\n\n), final as (\n\n select\n date_spine.account_id,\n date_spine.date_day,\n date_spine.date_week,\n date_spine.date_month,\n date_spine.date_year,\n \n coalesce(round(account_rolling_totals.total_daily_sales_amount,2),0) as total_daily_sales_amount,\n \n coalesce(round(account_rolling_totals.total_daily_refunds_amount,2),0) as total_daily_refunds_amount,\n \n coalesce(round(account_rolling_totals.total_daily_adjustments_amount,2),0) as total_daily_adjustments_amount,\n \n coalesce(round(account_rolling_totals.total_daily_other_transactions_amount,2),0) as total_daily_other_transactions_amount,\n \n coalesce(round(account_rolling_totals.total_daily_gross_transaction_amount,2),0) as total_daily_gross_transaction_amount,\n \n coalesce(round(account_rolling_totals.total_daily_net_transactions_amount,2),0) as total_daily_net_transactions_amount,\n \n coalesce(round(account_rolling_totals.total_daily_payout_fee_amount,2),0) as total_daily_payout_fee_amount,\n \n coalesce(round(account_rolling_totals.total_daily_gross_payout_amount,2),0) as total_daily_gross_payout_amount,\n \n coalesce(round(account_rolling_totals.daily_net_activity_amount,2),0) as daily_net_activity_amount,\n \n coalesce(round(account_rolling_totals.daily_end_balance_amount,2),0) as daily_end_balance_amount,\n \n coalesce(round(account_rolling_totals.total_daily_sales_count,2),0) as total_daily_sales_count,\n \n coalesce(round(account_rolling_totals.total_daily_payouts_count,2),0) as total_daily_payouts_count,\n \n coalesce(round(account_rolling_totals.total_daily_adjustments_count,2),0) as total_daily_adjustments_count,\n \n coalesce(round(account_rolling_totals.total_daily_failed_charge_count,2),0) as total_daily_failed_charge_count,\n \n coalesce(round(account_rolling_totals.total_daily_failed_charge_amount,2),0) as total_daily_failed_charge_amount,\n \n\n \n case when account_rolling_totals.rolling_total_daily_sales_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_sales_amount,2),0)\n end as rolling_total_daily_sales_amount,\n \n case when account_rolling_totals.rolling_total_daily_refunds_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_refunds_amount,2),0)\n end as rolling_total_daily_refunds_amount,\n \n case when account_rolling_totals.rolling_total_daily_adjustments_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_adjustments_amount,2),0)\n end as rolling_total_daily_adjustments_amount,\n \n case when account_rolling_totals.rolling_total_daily_other_transactions_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_other_transactions_amount,2),0)\n end as rolling_total_daily_other_transactions_amount,\n \n case when account_rolling_totals.rolling_total_daily_gross_transaction_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_gross_transaction_amount,2),0)\n end as rolling_total_daily_gross_transaction_amount,\n \n case when account_rolling_totals.rolling_total_daily_net_transactions_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_net_transactions_amount,2),0)\n end as rolling_total_daily_net_transactions_amount,\n \n case when account_rolling_totals.rolling_total_daily_payout_fee_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_payout_fee_amount,2),0)\n end as rolling_total_daily_payout_fee_amount,\n \n case when account_rolling_totals.rolling_total_daily_gross_payout_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_gross_payout_amount,2),0)\n end as rolling_total_daily_gross_payout_amount,\n \n case when account_rolling_totals.rolling_daily_net_activity_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_daily_net_activity_amount,2),0)\n end as rolling_daily_net_activity_amount,\n \n case when account_rolling_totals.rolling_daily_end_balance_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_daily_end_balance_amount,2),0)\n end as rolling_daily_end_balance_amount,\n \n case when account_rolling_totals.rolling_total_daily_sales_count is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_sales_count,2),0)\n end as rolling_total_daily_sales_count,\n \n case when account_rolling_totals.rolling_total_daily_payouts_count is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_payouts_count,2),0)\n end as rolling_total_daily_payouts_count,\n \n case when account_rolling_totals.rolling_total_daily_adjustments_count is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_adjustments_count,2),0)\n end as rolling_total_daily_adjustments_count,\n \n case when account_rolling_totals.rolling_total_daily_failed_charge_count is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_failed_charge_count,2),0)\n end as rolling_total_daily_failed_charge_count,\n \n case when account_rolling_totals.rolling_total_daily_failed_charge_amount is null and date_index = 1\n then 0\n else coalesce(round(account_rolling_totals.rolling_total_daily_failed_charge_amount,2),0)\n end as rolling_total_daily_failed_charge_amount,\n \n\n date_spine.date_index,\n account_rolling_totals.source_relation\n\n from date_spine\n left join account_rolling_totals\n on account_rolling_totals.date_day = date_spine.date_day\n and account_rolling_totals.account_id = date_spine.account_id\n and account_rolling_totals.source_relation = date_spine.source_relation\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__account_daily": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__account_daily", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__account_daily.sql", "original_file_path": "models/intermediate/int_stripe__account_daily.sql", "unique_id": "model.stripe.int_stripe__account_daily", "fqn": ["stripe", "intermediate", "int_stripe__account_daily"], "alias": "int_stripe__account_daily", "checksum": {"name": "sha256", "checksum": "dd4b202e2e0c5d4b3e563ed9f55e17ab8d687ff779b289ab10f49ba6758db23f"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Each record represents each day's ending balances per account.", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.72133, "relation_name": "\"postgres\".\"public_stripe_dev\".\"int_stripe__account_daily\"", "raw_code": "with date_spine as (\n\n select * \n from {{ ref('int_stripe__date_spine') }}\n\n), balance_transaction as (\n\n select *,\n case \n when balance_transaction_type = 'payout' \n then {{ date_timezone('balance_transaction_available_on') }} \n else {{ date_timezone('balance_transaction_created_at') }}\n end as date\n from {{ ref('stripe__balance_transactions') }}\n\n), incomplete_charges as (\n\n select *\n from {{ ref('int_stripe__incomplete_charges') }} \n\n), daily_account_balance_transactions as (\n\n select\n date_spine.date_day,\n date_spine.account_id,\n date_spine.source_relation,\n sum(case when balance_transaction.balance_transaction_type in ('charge', 'payment') \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_sales_amount,\n sum(case when balance_transaction.balance_transaction_type in ('payment_refund', 'refund') \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_refunds_amount,\n sum(case when balance_transaction.balance_transaction_type = 'adjustment' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_adjustments_amount,\n sum(case when balance_transaction.balance_transaction_type not in ('charge', 'payment', 'payment_refund', 'refund', 'adjustment', 'payout') and balance_transaction.balance_transaction_type not like '%transfer%' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_other_transactions_amount,\n sum(case when balance_transaction.balance_transaction_type <> 'payout' and balance_transaction.balance_transaction_type not like '%transfer%' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_gross_transaction_amount,\n sum(case when balance_transaction.balance_transaction_type <> 'payout' and balance_transaction.balance_transaction_type not like '%transfer%' \n then balance_transaction_net \n else 0 end) as total_daily_net_transactions_amount,\n sum(case when balance_transaction.balance_transaction_type = 'payout' or balance_transaction.balance_transaction_type like '%transfer%' \n then balance_transaction_fee * -1.0\n else 0 end) as total_daily_payout_fee_amount,\n sum(case when balance_transaction.balance_transaction_type = 'payout' or balance_transaction.balance_transaction_type like '%transfer%' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_gross_payout_amount,\n sum(case when balance_transaction.balance_transaction_type = 'payout' or balance_transaction.balance_transaction_type like '%transfer%' \n then balance_transaction_fee * -1.0 \n else balance_transaction_net end) as daily_net_activity_amount,\n sum(case when balance_transaction.balance_transaction_type in ('payment', 'charge') \n then 1 \n else 0 end) as total_daily_sales_count,\n sum(case when balance_transaction.balance_transaction_type = 'payout' \n then 1\n else 0 end) as total_daily_payouts_count,\n count(distinct case when balance_transaction.balance_transaction_type = 'adjustment'\n then {{ 'coalesce(balance_transaction_source_id, payout_id)' if var('stripe__using_payouts', True) else 'balance_transaction_source_id' }}\n else null end) as total_daily_adjustments_count\n from date_spine\n left join balance_transaction\n on cast({{ dbt.date_trunc('day', 'balance_transaction.date') }} as date) = date_spine.date_day\n and balance_transaction.source_relation = date_spine.source_relation\n group by 1,2,3\n\n), daily_failed_charges as (\n\n select\n {{ date_timezone('created_at') }} as date,\n source_relation,\n count(*) as total_daily_failed_charge_count,\n sum(amount) as total_daily_failed_charge_amount\n from incomplete_charges\n group by 1,2\n)\n\nselect\n daily_account_balance_transactions.date_day,\n daily_account_balance_transactions.account_id,\n daily_account_balance_transactions.source_relation,\n coalesce(daily_account_balance_transactions.total_daily_sales_amount,0) as total_daily_sales_amount,\n coalesce(daily_account_balance_transactions.total_daily_refunds_amount,0) as total_daily_refunds_amount,\n coalesce(daily_account_balance_transactions.total_daily_adjustments_amount,0) as total_daily_adjustments_amount,\n coalesce(daily_account_balance_transactions.total_daily_other_transactions_amount,0) as total_daily_other_transactions_amount,\n coalesce(daily_account_balance_transactions.total_daily_gross_transaction_amount,0) as total_daily_gross_transaction_amount,\n coalesce(daily_account_balance_transactions.total_daily_net_transactions_amount,0) as total_daily_net_transactions_amount,\n coalesce(daily_account_balance_transactions.total_daily_payout_fee_amount,0) as total_daily_payout_fee_amount,\n coalesce(daily_account_balance_transactions.total_daily_gross_payout_amount,0) as total_daily_gross_payout_amount,\n coalesce(daily_account_balance_transactions.daily_net_activity_amount,0) as daily_net_activity_amount,\n coalesce((daily_account_balance_transactions.daily_net_activity_amount + daily_account_balance_transactions.total_daily_gross_payout_amount), 0) as daily_end_balance_amount,\n coalesce(daily_account_balance_transactions.total_daily_sales_count, 0) as total_daily_sales_count,\n coalesce(daily_account_balance_transactions.total_daily_payouts_count, 0) as total_daily_payouts_count,\n coalesce(daily_account_balance_transactions.total_daily_adjustments_count, 0) as total_daily_adjustments_count,\n coalesce(daily_failed_charges.total_daily_failed_charge_count, 0) as total_daily_failed_charge_count,\n coalesce(daily_failed_charges.total_daily_failed_charge_amount, 0) as total_daily_failed_charge_amount\n\nfrom daily_account_balance_transactions\nleft join daily_failed_charges\n on daily_account_balance_transactions.date_day = daily_failed_charges.date\n and daily_account_balance_transactions.source_relation = daily_failed_charges.source_relation", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_stripe__date_spine", "package": null, "version": null}, {"name": "stripe__balance_transactions", "package": null, "version": null}, {"name": "int_stripe__incomplete_charges", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.stripe.date_timezone", "macro.dbt.date_trunc"], "nodes": ["model.stripe.int_stripe__date_spine", "model.stripe.stripe__balance_transactions", "model.stripe.int_stripe__incomplete_charges"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__account_daily.sql", "compiled": true, "compiled_code": "with date_spine as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"int_stripe__date_spine\"\n\n), balance_transaction as (\n\n select *,\n case \n when balance_transaction_type = 'payout' \n then \n\ndate_trunc('day', \n\n\n balance_transaction_available_on\n\n\n) \n else \n\ndate_trunc('day', \n\n\n balance_transaction_created_at\n\n\n)\n end as date\n from \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"\n\n), incomplete_charges as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"int_stripe__incomplete_charges\" \n\n), daily_account_balance_transactions as (\n\n select\n date_spine.date_day,\n date_spine.account_id,\n date_spine.source_relation,\n sum(case when balance_transaction.balance_transaction_type in ('charge', 'payment') \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_sales_amount,\n sum(case when balance_transaction.balance_transaction_type in ('payment_refund', 'refund') \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_refunds_amount,\n sum(case when balance_transaction.balance_transaction_type = 'adjustment' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_adjustments_amount,\n sum(case when balance_transaction.balance_transaction_type not in ('charge', 'payment', 'payment_refund', 'refund', 'adjustment', 'payout') and balance_transaction.balance_transaction_type not like '%transfer%' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_other_transactions_amount,\n sum(case when balance_transaction.balance_transaction_type <> 'payout' and balance_transaction.balance_transaction_type not like '%transfer%' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_gross_transaction_amount,\n sum(case when balance_transaction.balance_transaction_type <> 'payout' and balance_transaction.balance_transaction_type not like '%transfer%' \n then balance_transaction_net \n else 0 end) as total_daily_net_transactions_amount,\n sum(case when balance_transaction.balance_transaction_type = 'payout' or balance_transaction.balance_transaction_type like '%transfer%' \n then balance_transaction_fee * -1.0\n else 0 end) as total_daily_payout_fee_amount,\n sum(case when balance_transaction.balance_transaction_type = 'payout' or balance_transaction.balance_transaction_type like '%transfer%' \n then balance_transaction.balance_transaction_amount\n else 0 end) as total_daily_gross_payout_amount,\n sum(case when balance_transaction.balance_transaction_type = 'payout' or balance_transaction.balance_transaction_type like '%transfer%' \n then balance_transaction_fee * -1.0 \n else balance_transaction_net end) as daily_net_activity_amount,\n sum(case when balance_transaction.balance_transaction_type in ('payment', 'charge') \n then 1 \n else 0 end) as total_daily_sales_count,\n sum(case when balance_transaction.balance_transaction_type = 'payout' \n then 1\n else 0 end) as total_daily_payouts_count,\n count(distinct case when balance_transaction.balance_transaction_type = 'adjustment'\n then coalesce(balance_transaction_source_id, payout_id)\n else null end) as total_daily_adjustments_count\n from date_spine\n left join balance_transaction\n on cast(date_trunc('day', balance_transaction.date) as date) = date_spine.date_day\n and balance_transaction.source_relation = date_spine.source_relation\n group by 1,2,3\n\n), daily_failed_charges as (\n\n select\n \n\ndate_trunc('day', \n\n\n created_at\n\n\n) as date,\n source_relation,\n count(*) as total_daily_failed_charge_count,\n sum(amount) as total_daily_failed_charge_amount\n from incomplete_charges\n group by 1,2\n)\n\nselect\n daily_account_balance_transactions.date_day,\n daily_account_balance_transactions.account_id,\n daily_account_balance_transactions.source_relation,\n coalesce(daily_account_balance_transactions.total_daily_sales_amount,0) as total_daily_sales_amount,\n coalesce(daily_account_balance_transactions.total_daily_refunds_amount,0) as total_daily_refunds_amount,\n coalesce(daily_account_balance_transactions.total_daily_adjustments_amount,0) as total_daily_adjustments_amount,\n coalesce(daily_account_balance_transactions.total_daily_other_transactions_amount,0) as total_daily_other_transactions_amount,\n coalesce(daily_account_balance_transactions.total_daily_gross_transaction_amount,0) as total_daily_gross_transaction_amount,\n coalesce(daily_account_balance_transactions.total_daily_net_transactions_amount,0) as total_daily_net_transactions_amount,\n coalesce(daily_account_balance_transactions.total_daily_payout_fee_amount,0) as total_daily_payout_fee_amount,\n coalesce(daily_account_balance_transactions.total_daily_gross_payout_amount,0) as total_daily_gross_payout_amount,\n coalesce(daily_account_balance_transactions.daily_net_activity_amount,0) as daily_net_activity_amount,\n coalesce((daily_account_balance_transactions.daily_net_activity_amount + daily_account_balance_transactions.total_daily_gross_payout_amount), 0) as daily_end_balance_amount,\n coalesce(daily_account_balance_transactions.total_daily_sales_count, 0) as total_daily_sales_count,\n coalesce(daily_account_balance_transactions.total_daily_payouts_count, 0) as total_daily_payouts_count,\n coalesce(daily_account_balance_transactions.total_daily_adjustments_count, 0) as total_daily_adjustments_count,\n coalesce(daily_failed_charges.total_daily_failed_charge_count, 0) as total_daily_failed_charge_count,\n coalesce(daily_failed_charges.total_daily_failed_charge_amount, 0) as total_daily_failed_charge_amount\n\nfrom daily_account_balance_transactions\nleft join daily_failed_charges\n on daily_account_balance_transactions.date_day = daily_failed_charges.date\n and daily_account_balance_transactions.source_relation = daily_failed_charges.source_relation", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__date_spine": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__date_spine", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__date_spine.sql", "original_file_path": "models/intermediate/int_stripe__date_spine.sql", "unique_id": "model.stripe.int_stripe__date_spine", "fqn": ["stripe", "intermediate", "int_stripe__date_spine"], "alias": "int_stripe__date_spine", "checksum": {"name": "sha256", "checksum": "ea8e5b80810e340d90c3994d062adb0f702fe07a30fb1cb0ed7a3ed3ff3e3757"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Each record represents a day of each calendar year.", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.7232196, "relation_name": "\"postgres\".\"public_stripe_dev\".\"int_stripe__date_spine\"", "raw_code": "-- depends_on: {{ ref('stripe__balance_transactions') }}\nwith spine as (\n\n {% if execute and flags.WHICH in ('run', 'build') %}\n\n {%- set first_date_query %}\n select coalesce(\n min(cast(balance_transaction_created_at as date)), \n cast({{ dbt.dateadd(\"month\", -1, \"current_date\") }} as date)\n ) as min_date\n from {{ ref('stripe__balance_transactions') }}\n {% endset -%}\n\n {%- set first_date_pre = dbt_utils.get_single_value(first_date_query) %}\n {% set first_date = \"cast('\" ~ first_date_pre ~ \"' as date)\" %}\n\n {% set last_date_query %}\n select coalesce(\n greatest(max(cast(balance_transaction_created_at as date)), cast(current_date as date)),\n cast(current_date as date)\n ) as max_date\n from {{ ref('stripe__balance_transactions') }}\n {% endset %}\n\n {% set last_date_pre = dbt_utils.get_single_value(last_date_query) %}\n {% set last_date = \"cast('\" ~ last_date_pre ~ \"' as date)\" %}\n\n {% else %}\n\n {% set first_date = dbt.dateadd(\"month\", -1, \"current_date\") %}\n {% set last_date = dbt.current_timestamp() %}\n\n {% endif %}\n\n {{ dbt_utils.date_spine(\n datepart=\"day\",\n start_date=first_date,\n end_date=dbt.dateadd(\"day\", 1, last_date)\n ) }}\n\n),\n\naccount as (\n select *\n from {{ ref('stg_stripe__account') }}\n),\n\ndate_spine as (\n select\n cast({{ dbt.date_trunc(\"day\", \"date_day\") }} as date) as date_day, \n cast({{ dbt.date_trunc(\"week\", \"date_day\") }} as date) as date_week, \n cast({{ dbt.date_trunc(\"month\", \"date_day\") }} as date) as date_month,\n cast({{ dbt.date_trunc(\"year\", \"date_day\") }} as date) as date_year, \n row_number() over (order by cast({{ dbt.date_trunc(\"day\", \"date_day\") }} as date)) as date_index\n from spine\n),\n\nfinal as (\n select distinct\n account.account_id,\n account.source_relation,\n date_spine.date_day,\n date_spine.date_week,\n date_spine.date_month,\n date_spine.date_year,\n date_spine.date_index\n from account \n cross join date_spine\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__balance_transactions", "package": null, "version": null}, {"name": "stg_stripe__account", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.current_timestamp", "macro.dbt_utils.date_spine", "macro.dbt.date_trunc"], "nodes": ["model.stripe.stripe__balance_transactions", "model.stripe.stg_stripe__account"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__date_spine.sql", "compiled": true, "compiled_code": "-- depends_on: \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"\nwith spine as (\n\n \n\n \n \n\n \n\n \n\n\n\n\n\nwith rawdata as (\n\n \n\n \n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n \n p0.generated_number * power(2, 0)\n + \n \n p1.generated_number * power(2, 1)\n + \n \n p2.generated_number * power(2, 2)\n + \n \n p3.generated_number * power(2, 3)\n + \n \n p4.generated_number * power(2, 4)\n \n \n + 1\n as generated_number\n\n from\n\n \n p as p0\n cross join \n \n p as p1\n cross join \n \n p as p2\n cross join \n \n p as p3\n cross join \n \n p as p4\n \n \n\n )\n\n select *\n from unioned\n where generated_number <= 31\n order by generated_number\n\n\n\n),\n\nall_periods as (\n\n select (\n \n\n \n\n current_date + ((interval '1 month') * (-1))\n\n + ((interval '1 day') * (row_number() over (order by generated_number) - 1))\n\n\n ) as date_day\n from rawdata\n\n),\n\nfiltered as (\n\n select *\n from all_periods\n where date_day <= \n\n now() + ((interval '1 day') * (1))\n\n\n\n)\n\nselect * from filtered\n\n\n\n),\n\naccount as (\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__account\"\n),\n\ndate_spine as (\n select\n cast(date_trunc('day', date_day) as date) as date_day, \n cast(date_trunc('week', date_day) as date) as date_week, \n cast(date_trunc('month', date_day) as date) as date_month,\n cast(date_trunc('year', date_day) as date) as date_year, \n row_number() over (order by cast(date_trunc('day', date_day) as date)) as date_index\n from spine\n),\n\nfinal as (\n select distinct\n account.account_id,\n account.source_relation,\n date_spine.date_day,\n date_spine.date_week,\n date_spine.date_month,\n date_spine.date_year,\n date_spine.date_index\n from account \n cross join date_spine\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__deduped_subscription_item": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__deduped_subscription_item", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__deduped_subscription_item.sql", "original_file_path": "models/intermediate/int_stripe__deduped_subscription_item.sql", "unique_id": "model.stripe.int_stripe__deduped_subscription_item", "fqn": ["stripe", "intermediate", "int_stripe__deduped_subscription_item"], "alias": "int_stripe__deduped_subscription_item", "checksum": {"name": "sha256", "checksum": "1450eebf91315a810fc67149af472f2ca650bbfd94b2a5e2df031a0b409ce54c"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "ephemeral", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "ephemeral", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.2494879, "relation_name": null, "raw_code": "with subscription_item as ( \n\n select * \n from {{ ref('stg_stripe__subscription_item') }}\n\n)\n\n/*\nSUBSCRIPTION_ITEM allows for one-to-many relationships between subscriptions and plans, so we need to dedupe to the subscription_id level\n*/\n\nselect\n subscription_id,\n source_relation,\n min(current_period_start) as current_period_start,\n max(current_period_end) as current_period_end\n \nfrom subscription_item\ngroup by 1, 2", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_item", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.stg_stripe__subscription_item"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__deduped_subscription_item.sql", "compiled": true, "compiled_code": "with subscription_item as ( \n\n select * \n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\n\n)\n\n/*\nSUBSCRIPTION_ITEM allows for one-to-many relationships between subscriptions and plans, so we need to dedupe to the subscription_id level\n*/\n\nselect\n subscription_id,\n source_relation,\n min(current_period_start) as current_period_start,\n max(current_period_end) as current_period_end\n \nfrom subscription_item\ngroup by 1, 2", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__account_partitions": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__account_partitions", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__account_partitions.sql", "original_file_path": "models/intermediate/int_stripe__account_partitions.sql", "unique_id": "model.stripe.int_stripe__account_partitions", "fqn": ["stripe", "intermediate", "int_stripe__account_partitions"], "alias": "int_stripe__account_partitions", "checksum": {"name": "sha256", "checksum": "e226ad19fda168d98e48900b59ccf1989362fd9dc6738949cf8d10bfe7f9ca97"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Each record is a group of partitioned account totals updating null values with zeroes to eventually calculate running totals downstream.", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.72212, "relation_name": "\"postgres\".\"public_stripe_dev\".\"int_stripe__account_partitions\"", "raw_code": "{% set rolling_fields = ['rolling_total_daily_sales_amount', 'rolling_total_daily_refunds_amount', 'rolling_total_daily_adjustments_amount', 'rolling_total_daily_other_transactions_amount', 'rolling_total_daily_gross_transaction_amount', 'rolling_total_daily_net_transactions_amount', 'rolling_total_daily_payout_fee_amount', 'rolling_total_daily_gross_payout_amount', 'rolling_daily_net_activity_amount', 'rolling_daily_end_balance_amount', 'rolling_total_daily_sales_count', 'rolling_total_daily_payouts_count', 'rolling_total_daily_adjustments_count', 'rolling_total_daily_failed_charge_count', 'rolling_total_daily_failed_charge_amount'] %}\n\nwith account_rolling_totals as (\n\n select * \n from {{ ref('int_stripe__account_rolling_totals') }}\n),\n\nfinal as (\n\n select\n *,\n {% for f in rolling_fields %}\n sum(case when {{ f }} is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as {{ f }}_partition\n {%- if not loop.last -%},{%- endif -%}\n {% endfor %} \n from account_rolling_totals\n)\n\nselect * \nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "int_stripe__account_rolling_totals", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.int_stripe__account_rolling_totals"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__account_partitions.sql", "compiled": true, "compiled_code": "\n\nwith account_rolling_totals as (\n\n select * \n from \"postgres\".\"public_stripe_dev\".\"int_stripe__account_rolling_totals\"\n),\n\nfinal as (\n\n select\n *,\n \n sum(case when rolling_total_daily_sales_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_sales_amount_partition,\n sum(case when rolling_total_daily_refunds_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_refunds_amount_partition,\n sum(case when rolling_total_daily_adjustments_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_adjustments_amount_partition,\n sum(case when rolling_total_daily_other_transactions_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_other_transactions_amount_partition,\n sum(case when rolling_total_daily_gross_transaction_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_gross_transaction_amount_partition,\n sum(case when rolling_total_daily_net_transactions_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_net_transactions_amount_partition,\n sum(case when rolling_total_daily_payout_fee_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_payout_fee_amount_partition,\n sum(case when rolling_total_daily_gross_payout_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_gross_payout_amount_partition,\n sum(case when rolling_daily_net_activity_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_daily_net_activity_amount_partition,\n sum(case when rolling_daily_end_balance_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_daily_end_balance_amount_partition,\n sum(case when rolling_total_daily_sales_count is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_sales_count_partition,\n sum(case when rolling_total_daily_payouts_count is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_payouts_count_partition,\n sum(case when rolling_total_daily_adjustments_count is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_adjustments_count_partition,\n sum(case when rolling_total_daily_failed_charge_count is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_failed_charge_count_partition,\n sum(case when rolling_total_daily_failed_charge_amount is null \n then 0 \n else 1 \n end) over (order by date_day rows unbounded preceding) as rolling_total_daily_failed_charge_amount_partition \n from account_rolling_totals\n)\n\nselect * \nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__subscription_discount": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__subscription_discount", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__subscription_discount.sql", "original_file_path": "models/intermediate/int_stripe__subscription_discount.sql", "unique_id": "model.stripe.int_stripe__subscription_discount", "fqn": ["stripe", "intermediate", "int_stripe__subscription_discount"], "alias": "int_stripe__subscription_discount", "checksum": {"name": "sha256", "checksum": "45cb8e8f57b672d31161b571529d92e7c83c2cf0d4ab2ca99e8a115c8de8aecf"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "ephemeral", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "ephemeral", "enabled": "var('stripe__using_subscription_discounts', True) and var('stripe__using_coupons', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.262274, "relation_name": null, "raw_code": "{{ config(enabled=var('stripe__using_subscription_discounts', True) and var('stripe__using_coupons', True)) }}\n\nwith subscription_discount as (\n\n select *\n from {{ ref('stg_stripe__subscription_discount') }}\n\n),\n\ncoupon as (\n\n select *\n from {{ ref('stg_stripe__coupon') }}\n\n),\n\nsubscription_discount_schedule as (\n\n select\n subscription_discount.source_relation,\n subscription_discount.subscription_id,\n subscription_discount.customer_id,\n subscription_discount.coupon_id,\n subscription_discount.start_at,\n subscription_discount.end_at,\n cast({{ dbt.date_trunc('month', 'subscription_discount.start_at') }} as date) as start_month,\n coupon.percent_off,\n coupon.amount_off,\n coupon.duration,\n coupon.duration_in_months,\n coupon.currency as coupon_currency\n from subscription_discount\n left join coupon\n on subscription_discount.source_relation = coupon.source_relation\n and subscription_discount.coupon_id = coupon.coupon_id\n where subscription_discount.coupon_id is not null\n and subscription_discount.start_at is not null\n\n),\n\nsubscription_discount_bounds as (\n\n select\n subscription_discount_schedule.*,\n\n case\n when duration = 'forever' then null\n\n when duration = 'once' then\n cast({{ dbt.dateadd('month', 1, dbt.date_trunc('month', 'subscription_discount_schedule.start_at')) }} as date)\n\n when duration = 'repeating' then\n cast({{ dbt.dateadd(\n 'month',\n 'coalesce(subscription_discount_schedule.duration_in_months, 1)',\n dbt.date_trunc('month', 'subscription_discount_schedule.start_at')\n ) }} as date)\n\n else null\n end as end_month\n\n from subscription_discount_schedule\n\n)\n\nselect *\nfrom subscription_discount_bounds", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_discount", "package": null, "version": null}, {"name": "stg_stripe__coupon", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.date_trunc", "macro.dbt.dateadd"], "nodes": ["model.stripe.stg_stripe__subscription_discount", "model.stripe.stg_stripe__coupon"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__subscription_discount.sql", "compiled": true, "compiled_code": "\n\nwith subscription_discount as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_discount\"\n\n),\n\ncoupon as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__coupon\"\n\n),\n\nsubscription_discount_schedule as (\n\n select\n subscription_discount.source_relation,\n subscription_discount.subscription_id,\n subscription_discount.customer_id,\n subscription_discount.coupon_id,\n subscription_discount.start_at,\n subscription_discount.end_at,\n cast(date_trunc('month', subscription_discount.start_at) as date) as start_month,\n coupon.percent_off,\n coupon.amount_off,\n coupon.duration,\n coupon.duration_in_months,\n coupon.currency as coupon_currency\n from subscription_discount\n left join coupon\n on subscription_discount.source_relation = coupon.source_relation\n and subscription_discount.coupon_id = coupon.coupon_id\n where subscription_discount.coupon_id is not null\n and subscription_discount.start_at is not null\n\n),\n\nsubscription_discount_bounds as (\n\n select\n subscription_discount_schedule.*,\n\n case\n when duration = 'forever' then null\n\n when duration = 'once' then\n cast(\n\n date_trunc('month', subscription_discount_schedule.start_at) + ((interval '1 month') * (1))\n\n as date)\n\n when duration = 'repeating' then\n cast(\n\n date_trunc('month', subscription_discount_schedule.start_at) + ((interval '1 month') * (coalesce(subscription_discount_schedule.duration_in_months, 1)))\n\n as date)\n\n else null\n end as end_month\n\n from subscription_discount_schedule\n\n)\n\nselect *\nfrom subscription_discount_bounds", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.int_stripe__incomplete_charges": {"database": "postgres", "schema": "public_stripe_dev", "name": "int_stripe__incomplete_charges", "resource_type": "model", "package_name": "stripe", "path": "intermediate/int_stripe__incomplete_charges.sql", "original_file_path": "models/intermediate/int_stripe__incomplete_charges.sql", "unique_id": "model.stripe.int_stripe__incomplete_charges", "fqn": ["stripe", "intermediate", "int_stripe__incomplete_charges"], "alias": "int_stripe__incomplete_charges", "checksum": {"name": "sha256", "checksum": "edd5c66f985cc2d89ebafe700dd7e45fca8a042797b400304f674c1ef6c9fcae"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Each record represents a charge that is incomplete.", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.7237208, "relation_name": "\"postgres\".\"public_stripe_dev\".\"int_stripe__incomplete_charges\"", "raw_code": "with charge as (\n\n select *\n from {{ ref('stg_stripe__charge') }}\n\n)\n\nselect \n balance_transaction_id,\n created_at,\n customer_id,\n connected_account_id,\n amount,\n source_relation\nfrom charge\nwhere not is_captured", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__charge", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.stg_stripe__charge"]}, "compiled_path": "target/compiled/stripe/models/intermediate/int_stripe__incomplete_charges.sql", "compiled": true, "compiled_code": "with charge as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\"\n\n)\n\nselect \n balance_transaction_id,\n created_at,\n customer_id,\n connected_account_id,\n amount,\n source_relation\nfrom charge\nwhere not is_captured", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__balance_change_from_activity_itemized_3": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__balance_change_from_activity_itemized_3", "resource_type": "model", "package_name": "stripe", "path": "stripe_financial_reports/stripe__balance_change_from_activity_itemized_3.sql", "original_file_path": "models/stripe_financial_reports/stripe__balance_change_from_activity_itemized_3.sql", "unique_id": "model.stripe.stripe__balance_change_from_activity_itemized_3", "fqn": ["stripe", "stripe_financial_reports", "stripe__balance_change_from_activity_itemized_3"], "alias": "stripe__balance_change_from_activity_itemized_3", "checksum": {"name": "sha256", "checksum": "6d25bf42c9a3d73ab768378ea18d2c9068c20805b58d987b256f4262f374f743"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Modeled after the [titular report](https://stripe.com/docs/reports/balance#schema-balance-change-from-activity-itemized-3) from Stripe, each record represents a balance transaction and additional details such as associated customer, charge, refund, card, and invoice information. This class of Balance reports is similar to a bank statement, helping you to reconcile your Stripe balance at the end of the month. The Balance report is most useful if you treat Stripe like a bank account for accounting purposes, reconciling the balance at the end of each month. If you have automatic payouts enabled and prefer to reconcile the transactions settled in each payout, see the Payout reconciliation report instead. The Balance Change from Activity reports provides a more detailed breakdown of your transactions by reporting category. This section includes all transactions except for payouts that affect your balance, including charges, refunds, disputes, other adjustments, and fees.", "columns": {"balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the balance transaction was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "available_on": {"name": "available_on", "description": "The date the balance transaction\u2019s net funds will become available in the Stripe balance. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO code for the currency in which gross, fee and net are defined.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "gross": {"name": "gross", "description": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "fee": {"name": "fee", "description": "Fees paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "net": {"name": "net", "description": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "reporting_category": {"name": "reporting_category", "description": "Reporting Category is a new categorization of balance transactions, meant to improve on the current type field.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_id": {"name": "source_id", "description": "The Stripe object to which this transaction is related.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the balance transaction. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_facing_amount": {"name": "customer_facing_amount", "description": "For transactions associated with charges, refunds, or disputes, the amount of the original charge, the refund, or the latest dispute. If the customer was charged in a different currency than your account\u2019s default, this field will reflect the amount as seen by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_facing_currency": {"name": "customer_facing_currency", "description": "For transactions associated with charges, refunds, or disputes, the three-letter ISO currency code for customer_facing_amount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "automatic_payout_id": {"name": "automatic_payout_id", "description": "ID of the automatically created payout associated with this balance transaction (only set if your account is on an automatic payout schedule).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "automatic_payout_effective_at": {"name": "automatic_payout_effective_at", "description": "The date we expect this automatic payout to arrive in your bank account, in the requested timezone, or UTC if not provided. This is also when the paid-out funds are deducted from your Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The unique ID of the related customer, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "Email address of the customer, if any, associated with this balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Name of the customer, if any, associated with this balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "Description provided when creating the customer, often used to store the customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_line_1": {"name": "customer_shipping_address_line_1", "description": "First line of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_line_2": {"name": "customer_shipping_address_line_2", "description": "Second line of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_city": {"name": "customer_shipping_address_city", "description": "City of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_state": {"name": "customer_shipping_address_state", "description": "State of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_postal_code": {"name": "customer_shipping_address_postal_code", "description": "Postal code of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_country": {"name": "customer_shipping_address_country", "description": "Country of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_line_1": {"name": "customer_address_line_1", "description": "First line of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_line_2": {"name": "customer_address_line_2", "description": "Second line of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_city": {"name": "customer_address_city", "description": "City of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_state": {"name": "customer_address_state", "description": "State of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_postal_code": {"name": "customer_address_postal_code", "description": "Postal code of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_country": {"name": "customer_address_country", "description": "Country of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "First line of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Second line of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "City of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "State of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "Postal code of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Country of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_line_1": {"name": "card_address_line_1", "description": "First line of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_line_2": {"name": "card_address_line_2", "description": "Second line of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_city": {"name": "card_address_city", "description": "City of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_state": {"name": "card_address_state", "description": "State of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_postal_code": {"name": "card_address_postal_code", "description": "Postal code of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_country": {"name": "card_address_country", "description": "Country of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "Unique identifier for the original charge associated with this balance transaction. Available for charges, refunds and disputes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "The unique ID of the related Payment Intent, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_created": {"name": "charge_created", "description": "Creation time of the original charge associated with this balance transaction. Available for charges, refunds and disputes. For charges that were separately authorized and captured, this is the authorization time. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "Unique ID for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_number": {"name": "invoice_number", "description": "Number for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "Unique ID for the subscription associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_method_type": {"name": "payment_method_type", "description": "The type of payment method used in the related payment.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_brand": {"name": "card_brand", "description": "Card brand, if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_funding": {"name": "card_funding", "description": "Card funding type, if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_country": {"name": "card_country", "description": "Two-letter ISO code representing the country of the card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "The dynamic statement descriptor or suffix specified when the related charge was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "dispute_reasons": {"name": "dispute_reasons", "description": "Reasons given by cardholder for disputes. Read more about [dispute reasons](https://docs.stripe.com/disputes/categories).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "For Stripe Connect activity related to a connected account, the unique ID for the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_country": {"name": "connected_account_country", "description": "For Stripe Connect activity related to a connected account, the two-letter ISO code representing the country of the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_direct_charge_id": {"name": "connected_account_direct_charge_id", "description": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8328397, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__balance_change_from_activity_itemized_3\"", "raw_code": "with balance_transaction_enhanced as (\n\n select *\n from {{ ref('stripe__balance_transactions')}}\n\n)\n\nselect \n balance_transaction_id,\n balance_transaction_created_at as created,\n balance_transaction_available_on as available_on,\n balance_transaction_currency as currency,\n balance_transaction_amount as gross,\n balance_transaction_fee as fee,\n balance_transaction_net as net,\n balance_transaction_reporting_category as reporting_category,\n balance_transaction_source_id as source_id,\n balance_transaction_description as description,\n customer_facing_amount,\n customer_facing_currency,\n\n {% if var('stripe__using_payouts', True) %}\n automatic_payout_id,\n automatic_payout_effective_at,\n {% endif %} \n \n customer_id,\n customer_email,\n customer_name,\n customer_description,\n customer_shipping_address_line_1,\n customer_shipping_address_line_2,\n customer_shipping_address_city,\n customer_shipping_address_state,\n customer_shipping_address_postal_code,\n customer_shipping_address_country,\n customer_address_line_1,\n customer_address_line_2,\n customer_address_city,\n customer_address_state,\n customer_address_postal_code,\n customer_address_country,\n charge_shipping_address_line_1 as shipping_address_line_1,\n charge_shipping_address_line_2 as shipping_address_line_2,\n charge_shipping_address_city as shipping_address_city,\n charge_shipping_address_state as shipping_address_state,\n charge_shipping_address_postal_code as shipping_address_postal_code,\n charge_shipping_address_country as shipping_address_country,\n card_address_line_1,\n card_address_line_2,\n card_address_city,\n card_address_state,\n card_address_postal_code,\n card_address_country,\n charge_id,\n payment_intent_id,\n charge_created_at as charge_created,\n\n {% if var('stripe__using_invoices', True) %}\n invoice_id,\n invoice_number,\n {% endif %}\n\n {% if var('stripe__using_subscriptions', True) %}\n subscription_id,\n {% endif %}\n \n {% if var('stripe__using_payment_method', True) %}\n payment_method_type,\n {% endif %}\n\n card_brand,\n card_funding,\n card_country,\n charge_statement_descriptor as statement_descriptor,\n dispute_reasons,\n connected_account_id,\n connected_account_country,\n connected_account_direct_charge_id,\n source_relation\n\nfrom balance_transaction_enhanced", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__balance_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.stripe__balance_transactions"]}, "compiled_path": "target/compiled/stripe/models/stripe_financial_reports/stripe__balance_change_from_activity_itemized_3.sql", "compiled": true, "compiled_code": "with balance_transaction_enhanced as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"\n\n)\n\nselect \n balance_transaction_id,\n balance_transaction_created_at as created,\n balance_transaction_available_on as available_on,\n balance_transaction_currency as currency,\n balance_transaction_amount as gross,\n balance_transaction_fee as fee,\n balance_transaction_net as net,\n balance_transaction_reporting_category as reporting_category,\n balance_transaction_source_id as source_id,\n balance_transaction_description as description,\n customer_facing_amount,\n customer_facing_currency,\n\n \n automatic_payout_id,\n automatic_payout_effective_at,\n \n \n customer_id,\n customer_email,\n customer_name,\n customer_description,\n customer_shipping_address_line_1,\n customer_shipping_address_line_2,\n customer_shipping_address_city,\n customer_shipping_address_state,\n customer_shipping_address_postal_code,\n customer_shipping_address_country,\n customer_address_line_1,\n customer_address_line_2,\n customer_address_city,\n customer_address_state,\n customer_address_postal_code,\n customer_address_country,\n charge_shipping_address_line_1 as shipping_address_line_1,\n charge_shipping_address_line_2 as shipping_address_line_2,\n charge_shipping_address_city as shipping_address_city,\n charge_shipping_address_state as shipping_address_state,\n charge_shipping_address_postal_code as shipping_address_postal_code,\n charge_shipping_address_country as shipping_address_country,\n card_address_line_1,\n card_address_line_2,\n card_address_city,\n card_address_state,\n card_address_postal_code,\n card_address_country,\n charge_id,\n payment_intent_id,\n charge_created_at as charge_created,\n\n \n invoice_id,\n invoice_number,\n \n\n \n subscription_id,\n \n \n \n payment_method_type,\n \n\n card_brand,\n card_funding,\n card_country,\n charge_statement_descriptor as statement_descriptor,\n dispute_reasons,\n connected_account_id,\n connected_account_country,\n connected_account_direct_charge_id,\n source_relation\n\nfrom balance_transaction_enhanced", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__activity_itemized_2": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__activity_itemized_2", "resource_type": "model", "package_name": "stripe", "path": "stripe_financial_reports/stripe__activity_itemized_2.sql", "original_file_path": "models/stripe_financial_reports/stripe__activity_itemized_2.sql", "unique_id": "model.stripe.stripe__activity_itemized_2", "fqn": ["stripe", "stripe_financial_reports", "stripe__activity_itemized_2"], "alias": "stripe__activity_itemized_2", "checksum": {"name": "sha256", "checksum": "d00d66b5e46e31c6adfb6842545971d2e2c85659e94213c8ecc4a255dd778775"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Modeled after the [titular report](https://stripe.com/docs/reports/activity#downloading-data) from Stripe, each record represents a balance transaction and additional details such as associated customer, charge, refund, fee, and invoice information. This class of Activity reports allows you to see your payments activity alongside the related fees for the same period of time. Designed specifically for users with Interchange Plus (IC+) pricing, it presents users with fees on the date they incur them. This makes it useful for calculating fee accrual entries and understanding your net payments activity. This itemized report contains a full list of individual transactions.", "columns": {"balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the related balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_created_at": {"name": "balance_transaction_created_at", "description": "Time (in UTC) at which the balance transaction affected your Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_reporting_category": {"name": "balance_transaction_reporting_category", "description": "(Beta) Reporting category is a top-level categorization of balance transactions for financial accounting purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO code for the currency in which the amount is defined.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount of this activity.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "The unique ID of the related charge, if any. For charges, this will be the charge itself; for refunds or disputes, this will be the original charge being refunded or disputed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "The unique ID of the related Payment Intent, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "refund_id": {"name": "refund_id", "description": "The unique ID of the related refund, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "dispute_ids": {"name": "dispute_ids", "description": "The unique IDs of the related disputes, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "Unique ID for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_number": {"name": "invoice_number", "description": "Number for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "Unique ID for the subscription associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transfer_id": {"name": "transfer_id", "description": "The unique ID of the related transfer, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The unique ID of the related customer, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "Email address of the customer, if any, associated with this balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Name of the customer, if any, associated with this balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "Description provided when creating the customer, often used to store the customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_line_1": {"name": "customer_shipping_address_line_1", "description": "First line of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_line_2": {"name": "customer_shipping_address_line_2", "description": "Second line of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_city": {"name": "customer_shipping_address_city", "description": "City of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_state": {"name": "customer_shipping_address_state", "description": "State of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_postal_code": {"name": "customer_shipping_address_postal_code", "description": "Postal code of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_country": {"name": "customer_shipping_address_country", "description": "Country of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_line_1": {"name": "customer_address_line_1", "description": "First line of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_line_2": {"name": "customer_address_line_2", "description": "Second line of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_city": {"name": "customer_address_city", "description": "City of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_state": {"name": "customer_address_state", "description": "State of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_postal_code": {"name": "customer_address_postal_code", "description": "Postal code of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_country": {"name": "customer_address_country", "description": "Country of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "First line of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Second line of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "City of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "State of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "Postal code of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Country of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_line_1": {"name": "card_address_line_1", "description": "First line of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_line_2": {"name": "card_address_line_2", "description": "Second line of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_city": {"name": "card_address_city", "description": "City of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_state": {"name": "card_address_state", "description": "State of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_postal_code": {"name": "card_address_postal_code", "description": "Postal code of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_country": {"name": "card_address_country", "description": "Country of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "automatic_payout_id": {"name": "automatic_payout_id", "description": "(Applies only to accounts on automatic payouts.) For paid-out activity, this will be the unique ID for the associated payout.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "automatic_payout_effective_at": {"name": "automatic_payout_effective_at", "description": "The date we expect this automatic payout to arrive in your bank account, in UTC. This is also when the paid-out funds are deducted from your Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_method_type": {"name": "payment_method_type", "description": "The type of payment method used in the related payment.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_brand": {"name": "card_brand", "description": "Card brand, if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_funding": {"name": "card_funding", "description": "Card funding type, if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_country": {"name": "card_country", "description": "Two-letter ISO code representing the country of the card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "The dynamic statement descriptor or suffix specified when the related charge was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_facing_amount": {"name": "customer_facing_amount", "description": "For transactions associated with charges, refunds, or disputes, the amount of the original charge, the refund, or the latest dispute. If the customer was charged in a different currency than your account\u2019s default, this field will reflect the amount as seen by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_description": {"name": "balance_transaction_description", "description": "An arbitrary string attached to the balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "For Stripe Connect activity related to a connected account, the unique ID for the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_country": {"name": "connected_account_country", "description": "For Stripe Connect activity related to a connected account, the two-letter ISO code representing the country of the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_direct_charge_id": {"name": "connected_account_direct_charge_id", "description": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8263497, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__activity_itemized_2\"", "raw_code": "with balance_transaction_enhanced as (\n\n select *\n from {{ ref('stripe__balance_transactions')}}\n\n)\n\nselect \n balance_transaction_id,\n balance_transaction_created_at,\n balance_transaction_reporting_category,\n balance_transaction_currency as currency,\n balance_transaction_amount as amount,\n charge_id,\n payment_intent_id,\n refund_id,\n dispute_ids,\n\n {% if var('stripe__using_invoices', True) %}\n invoice_id,\n invoice_number,\n {% endif %}\n\n {% if var('stripe__using_subscriptions', True) %}\n subscription_id,\n {% endif %}\n\n {% if var('stripe__using_transfers', True) %}\n transfer_id,\n {% endif %}\n\n customer_id,\n customer_email,\n customer_name,\n customer_description,\n customer_shipping_address_line_1,\n customer_shipping_address_line_2,\n customer_shipping_address_city,\n customer_shipping_address_state,\n customer_shipping_address_postal_code,\n customer_shipping_address_country,\n customer_address_line_1,\n customer_address_line_2,\n customer_address_city,\n customer_address_state,\n customer_address_postal_code,\n customer_address_country,\n charge_shipping_address_line_1 as shipping_address_line_1,\n charge_shipping_address_line_2 as shipping_address_line_2,\n charge_shipping_address_city as shipping_address_city,\n charge_shipping_address_state as shipping_address_state,\n charge_shipping_address_postal_code as shipping_address_postal_code,\n charge_shipping_address_country as shipping_address_country,\n card_address_line_1,\n card_address_line_2,\n card_address_city,\n card_address_state,\n card_address_postal_code,\n card_address_country,\n {% if var('stripe__using_payouts', True) %}\n automatic_payout_id,\n automatic_payout_effective_at,\n {% endif %}\n\n {% if var('stripe__using_payment_method', True) %}\n payment_method_type,\n {% endif %}\n \n card_brand,\n card_funding,\n card_country,\n charge_statement_descriptor as statement_descriptor,\n customer_facing_amount,\n balance_transaction_description,\n connected_account_id,\n connected_account_country,\n connected_account_direct_charge_id,\n source_relation\n\nfrom balance_transaction_enhanced", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__balance_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.stripe__balance_transactions"]}, "compiled_path": "target/compiled/stripe/models/stripe_financial_reports/stripe__activity_itemized_2.sql", "compiled": true, "compiled_code": "with balance_transaction_enhanced as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"\n\n)\n\nselect \n balance_transaction_id,\n balance_transaction_created_at,\n balance_transaction_reporting_category,\n balance_transaction_currency as currency,\n balance_transaction_amount as amount,\n charge_id,\n payment_intent_id,\n refund_id,\n dispute_ids,\n\n \n invoice_id,\n invoice_number,\n \n\n \n subscription_id,\n \n\n \n transfer_id,\n \n\n customer_id,\n customer_email,\n customer_name,\n customer_description,\n customer_shipping_address_line_1,\n customer_shipping_address_line_2,\n customer_shipping_address_city,\n customer_shipping_address_state,\n customer_shipping_address_postal_code,\n customer_shipping_address_country,\n customer_address_line_1,\n customer_address_line_2,\n customer_address_city,\n customer_address_state,\n customer_address_postal_code,\n customer_address_country,\n charge_shipping_address_line_1 as shipping_address_line_1,\n charge_shipping_address_line_2 as shipping_address_line_2,\n charge_shipping_address_city as shipping_address_city,\n charge_shipping_address_state as shipping_address_state,\n charge_shipping_address_postal_code as shipping_address_postal_code,\n charge_shipping_address_country as shipping_address_country,\n card_address_line_1,\n card_address_line_2,\n card_address_city,\n card_address_state,\n card_address_postal_code,\n card_address_country,\n \n automatic_payout_id,\n automatic_payout_effective_at,\n \n\n \n payment_method_type,\n \n \n card_brand,\n card_funding,\n card_country,\n charge_statement_descriptor as statement_descriptor,\n customer_facing_amount,\n balance_transaction_description,\n connected_account_id,\n connected_account_country,\n connected_account_direct_charge_id,\n source_relation\n\nfrom balance_transaction_enhanced", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__payout_itemized_3": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__payout_itemized_3", "resource_type": "model", "package_name": "stripe", "path": "stripe_financial_reports/stripe__payout_itemized_3.sql", "original_file_path": "models/stripe_financial_reports/stripe__payout_itemized_3.sql", "unique_id": "model.stripe.stripe__payout_itemized_3", "fqn": ["stripe", "stripe_financial_reports", "stripe__payout_itemized_3"], "alias": "stripe__payout_itemized_3", "checksum": {"name": "sha256", "checksum": "d5e11ae6c1dd678bb365d335943e5acde19cb2ab21838ba875dd81960118ab5f"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Modeled after the [titular report](https://stripe.com/docs/reports/balance#schema-payouts-itemized-3) from Stripe, each record represents a payout and its additional details such as expected arrival date and current status. This report belongs to the class of Balance reports. The Balance report is similar to a bank statement, helping you to reconcile your Stripe balance at the end of the month. The Balance report is most useful if you treat Stripe like a bank account for accounting purposes, reconciling the balance at the end of each month. If you have automatic payouts enabled and prefer to reconcile the transactions settled in each payout, see the Payout reconciliation report instead. The Payout Itemized report information on each payout made to your bank account.", "columns": {"payout_id": {"name": "payout_id", "description": "The Stripe object to which this transaction is related.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "effective_at": {"name": "effective_at", "description": "For automatic payouts, this is the date we expect funds to arrive in your bank account. For manual payouts, this is the date the payout was initiated. In both cases, it's the date the paid-out funds are deducted from your Stripe balance. All dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO code for the currency in which gross, fee and net are defined.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "gross": {"name": "gross", "description": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "fee": {"name": "fee", "description": "Fees paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "net": {"name": "net", "description": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "reporting_category": {"name": "reporting_category", "description": "Reporting Category is a new categorization of balance transactions, meant to improve on the current type field.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the balance transaction. Specifically for Payout, the relation is the ID of the balance transaction that describes the impact of this payout on your account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the balance transaction. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_expected_arrival_date": {"name": "payout_expected_arrival_date", "description": "Date the payout is scheduled to arrive in the bank. This factors in delays like weekends or bank holidays.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_status": {"name": "payout_status", "description": "Current status of the payout (paid, pending, in_transit, canceled or failed). A payout will be pending until it is submitted to the bank, at which point it becomes in_transit. It will then change to paid if the transaction goes through. If it does not go through successfully, its status will change to failed or canceled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_reversed_at": {"name": "payout_reversed_at", "description": "Typically this field will be empty. However, if the payout's status is canceled or failed, this field will reflect the time at which it entered that status. Times in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_type": {"name": "payout_type", "description": "Can be bank_account or card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_description": {"name": "payout_description", "description": "An arbitrary string attached to the payout. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payout_destination_id": {"name": "payout_destination_id", "description": "ID of the bank account or card the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_payouts', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8383927, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__payout_itemized_3\"", "raw_code": "{{ config(enabled=var('stripe__using_payouts', True)) }}\n\nwith balance_transaction_enhanced as (\n\n select *\n from {{ ref('stripe__balance_transactions')}}\n where payout_balance_transaction_is_current\n\n)\n\nselect\n payout_id,\n case \n when payout_is_automatic = true then payout_arrival_date_at \n else payout_created_at\n end as effective_at,\n payout_currency as currency,\n balance_transaction_id,\n balance_transaction_amount as gross,\n balance_transaction_fee as fee,\n balance_transaction_net as net,\n balance_transaction_reporting_category as reporting_category,\n balance_transaction_description as description,\n payout_arrival_date_at as payout_expected_arrival_date,\n payout_status,\n case \n when lower(payout_status) in ('canceled','failed') then payout_created_at\n else null\n end as payout_reversed_at,\n payout_type,\n payout_description,\n coalesce(destination_bank_account_id, destination_card_id) as payout_destination_id,\n source_relation\n\nfrom balance_transaction_enhanced", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__balance_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.stripe__balance_transactions"]}, "compiled_path": "target/compiled/stripe/models/stripe_financial_reports/stripe__payout_itemized_3.sql", "compiled": true, "compiled_code": "\n\nwith balance_transaction_enhanced as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"\n where payout_balance_transaction_is_current\n\n)\n\nselect\n payout_id,\n case \n when payout_is_automatic = true then payout_arrival_date_at \n else payout_created_at\n end as effective_at,\n payout_currency as currency,\n balance_transaction_id,\n balance_transaction_amount as gross,\n balance_transaction_fee as fee,\n balance_transaction_net as net,\n balance_transaction_reporting_category as reporting_category,\n balance_transaction_description as description,\n payout_arrival_date_at as payout_expected_arrival_date,\n payout_status,\n case \n when lower(payout_status) in ('canceled','failed') then payout_created_at\n else null\n end as payout_reversed_at,\n payout_type,\n payout_description,\n coalesce(destination_bank_account_id, destination_card_id) as payout_destination_id,\n source_relation\n\nfrom balance_transaction_enhanced", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "model.stripe.stripe__ending_balance_reconciliation_itemized_4": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__ending_balance_reconciliation_itemized_4", "resource_type": "model", "package_name": "stripe", "path": "stripe_financial_reports/stripe__ending_balance_reconciliation_itemized_4.sql", "original_file_path": "models/stripe_financial_reports/stripe__ending_balance_reconciliation_itemized_4.sql", "unique_id": "model.stripe.stripe__ending_balance_reconciliation_itemized_4", "fqn": ["stripe", "stripe_financial_reports", "stripe__ending_balance_reconciliation_itemized_4"], "alias": "stripe__ending_balance_reconciliation_itemized_4", "checksum": {"name": "sha256", "checksum": "01858477baaee475993cd90ebefae8bfef47ca39f136f4e71a04ec23b9057eaf"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "access": "protected", "freshness": null, "on_error": null, "latest_version_pointer": {"enabled": null, "alias": null}}, "tags": [], "description": "Modeled after the [titular report](https://stripe.com/docs/reports/payout-reconciliation#schema-ending-balance-reconciliation-itemized-4) from Stripe, each record represents an automatic payout and additional details such as associated customer, shipping, card, subscription information. This report belongs to the class of Payout Reconciliation reports. The Payout reconciliation report helps you match the payouts you receive in your bank account with the batches of payments and other transactions that they relate to. The payout reconciliation report is only available for users with automatic payouts enabled, and is optimized for users who prefer to reconcile the transactions included in each payout as a settlement batch. If you use manual payouts or prefer to track and reconcile your Stripe balance like a bank account, see the Balance report instead. To help you decide which report is right for you, see the guide for selecting reports. This Ending Balance Reconciliation section provides a similar breakdown of the transactions that hadn\u2019t been settled as of the report\u2019s end date.", "columns": {"automatic_payout_id": {"name": "automatic_payout_id", "description": "ID of the automatically created payout associated with this balance transaction (only set if your account is on an automatic payout schedule).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "automatic_payout_effective_at": {"name": "automatic_payout_effective_at", "description": "The date we expect this automatic payout to arrive in your bank account, in the requested timezone, or UTC if not provided. This is also when the paid-out funds are deducted from your Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the balance transaction was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "available_on": {"name": "available_on", "description": "The date the balance transaction\u2019s net funds will become available in the Stripe balance. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO code for the currency in which gross, fee and net are defined.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "gross": {"name": "gross", "description": "Gross amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "fee": {"name": "fee", "description": "Fees paid for this transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "net": {"name": "net", "description": "Net amount of the transaction. \"Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.convert_values"]}, "reporting_category": {"name": "reporting_category", "description": "Reporting Category is a new categorization of balance transactions, meant to improve on the current type field.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_id": {"name": "source_id", "description": "The Stripe object to which this transaction is related.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the balance transaction. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_facing_amount": {"name": "customer_facing_amount", "description": "For transactions associated with charges, refunds, or disputes, the amount of the original charge, the refund, or the latest dispute. If the customer was charged in a different currency than your account\u2019s default, this field will reflect the amount as seen by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_facing_currency": {"name": "customer_facing_currency", "description": "For transactions associated with charges, refunds, or disputes, the three-letter ISO currency code for customer_facing_amount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The unique ID of the related customer, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_email": {"name": "customer_email", "description": "Email address of the customer, if any, associated with this balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_name": {"name": "customer_name", "description": "Name of the customer, if any, associated with this balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_description": {"name": "customer_description", "description": "Description provided when creating the customer, often used to store the customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_line_1": {"name": "customer_shipping_address_line_1", "description": "First line of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_line_2": {"name": "customer_shipping_address_line_2", "description": "Second line of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_city": {"name": "customer_shipping_address_city", "description": "City of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_state": {"name": "customer_shipping_address_state", "description": "State of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_postal_code": {"name": "customer_shipping_address_postal_code", "description": "Postal code of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_shipping_address_country": {"name": "customer_shipping_address_country", "description": "Country of the customer shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_line_1": {"name": "customer_address_line_1", "description": "First line of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_line_2": {"name": "customer_address_line_2", "description": "Second line of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_city": {"name": "customer_address_city", "description": "City of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_state": {"name": "customer_address_state", "description": "State of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_postal_code": {"name": "customer_address_postal_code", "description": "Postal code of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_address_country": {"name": "customer_address_country", "description": "Country of the customer address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "First line of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Second line of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "City of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "State of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "Postal code of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Country of the shipping address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_line_1": {"name": "card_address_line_1", "description": "First line of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_line_2": {"name": "card_address_line_2", "description": "Second line of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_city": {"name": "card_address_city", "description": "City of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_state": {"name": "card_address_state", "description": "State of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_postal_code": {"name": "card_address_postal_code", "description": "Postal code of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_address_country": {"name": "card_address_country", "description": "Country of the card address associated with this charge, if any", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "Unique identifier for the original charge associated with this balance transaction. Available for charges, refunds and disputes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "The unique ID of the related Payment Intent, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_created": {"name": "charge_created", "description": "Creation time of the original charge associated with this balance transaction. Available for charges, refunds and disputes. For charges that were separately authorized and captured, this is the authorization time. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "Unique ID for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_number": {"name": "invoice_number", "description": "Unique Number for the invoice associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "Unique ID for the subscription associated with this balance transaction. Available for charges, refunds, and disputes made in connection with a Stripe Billing subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_method_type": {"name": "payment_method_type", "description": "The type of payment method used in the related payment.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_brand": {"name": "card_brand", "description": "Card brand, if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_funding": {"name": "card_funding", "description": "Card funding type, if applicable.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_country": {"name": "card_country", "description": "Two-letter ISO code representing the country of the card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "The dynamic statement descriptor or suffix specified when the related charge was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "dispute_reasons": {"name": "dispute_reasons", "description": "Reasons given by cardholder for disputes. Read more about [dispute reasons](https://docs.stripe.com/disputes/categories).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "For Stripe Connect activity related to a connected account, the unique ID for the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_country": {"name": "connected_account_country", "description": "For Stripe Connect activity related to a connected account, the two-letter ISO code representing the country of the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_direct_charge_id": {"name": "connected_account_direct_charge_id", "description": "(Beta) For Stripe Connect activity related to a connected account, charge id of the direct charge that happened on connected account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.source_relation"]}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "stripe://models/stripe.yml", "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_payouts', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.8360844, "relation_name": "\"postgres\".\"public_stripe_dev\".\"stripe__ending_balance_reconciliation_itemized_4\"", "raw_code": "{{ config(enabled=var('stripe__using_payouts', True)) }}\n\nwith balance_transaction_enhanced as (\n\n select *\n from {{ ref('stripe__balance_transactions')}}\n where payout_balance_transaction_is_current\n and payout_is_automatic\n\n)\n\nselect\n automatic_payout_id,\n payout_arrival_date_at as automatic_payout_effective_at,\n balance_transaction_id,\n balance_transaction_created_at as created,\n balance_transaction_available_on as available_on,\n balance_transaction_currency as currency,\n balance_transaction_amount as gross,\n balance_transaction_fee as fee,\n balance_transaction_net as net,\n balance_transaction_reporting_category as reporting_category,\n balance_transaction_source_id as source_id,\n balance_transaction_description as description,\n customer_facing_amount,\n customer_facing_currency,\n customer_id,\n customer_email,\n customer_name,\n customer_description,\n customer_shipping_address_line_1,\n customer_shipping_address_line_2,\n customer_shipping_address_city,\n customer_shipping_address_state,\n customer_shipping_address_postal_code,\n customer_shipping_address_country,\n customer_address_line_1,\n customer_address_line_2,\n customer_address_city,\n customer_address_state,\n customer_address_postal_code,\n customer_address_country,\n charge_shipping_address_line_1 as shipping_address_line_1,\n charge_shipping_address_line_2 as shipping_address_line_2,\n charge_shipping_address_city as shipping_address_city,\n charge_shipping_address_state as shipping_address_state,\n charge_shipping_address_postal_code as shipping_address_postal_code,\n charge_shipping_address_country as shipping_address_country,\n card_address_line_1,\n card_address_line_2,\n card_address_city,\n card_address_state,\n card_address_postal_code,\n card_address_country,\n charge_id,\n payment_intent_id,\n charge_created_at as charge_created,\n\n {% if var('stripe__using_invoices', True) %}\n invoice_id,\n invoice_number,\n {% endif %}\n\n {% if var('stripe__using_subscriptions', True) %}\n subscription_id,\n {% endif %}\n \n {% if var('stripe__using_payment_method', True) %}\n payment_method_type,\n {% endif %}\n \n card_brand,\n card_funding,\n card_country,\n charge_statement_descriptor as statement_descriptor,\n dispute_reasons,\n connected_account_id, \n connected_account_country,\n connected_account_direct_charge_id,\n source_relation\n\nfrom balance_transaction_enhanced", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__balance_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": ["model.stripe.stripe__balance_transactions"]}, "compiled_path": "target/compiled/stripe/models/stripe_financial_reports/stripe__ending_balance_reconciliation_itemized_4.sql", "compiled": true, "compiled_code": "\n\nwith balance_transaction_enhanced as (\n\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__balance_transactions\"\n where payout_balance_transaction_is_current\n and payout_is_automatic\n\n)\n\nselect\n automatic_payout_id,\n payout_arrival_date_at as automatic_payout_effective_at,\n balance_transaction_id,\n balance_transaction_created_at as created,\n balance_transaction_available_on as available_on,\n balance_transaction_currency as currency,\n balance_transaction_amount as gross,\n balance_transaction_fee as fee,\n balance_transaction_net as net,\n balance_transaction_reporting_category as reporting_category,\n balance_transaction_source_id as source_id,\n balance_transaction_description as description,\n customer_facing_amount,\n customer_facing_currency,\n customer_id,\n customer_email,\n customer_name,\n customer_description,\n customer_shipping_address_line_1,\n customer_shipping_address_line_2,\n customer_shipping_address_city,\n customer_shipping_address_state,\n customer_shipping_address_postal_code,\n customer_shipping_address_country,\n customer_address_line_1,\n customer_address_line_2,\n customer_address_city,\n customer_address_state,\n customer_address_postal_code,\n customer_address_country,\n charge_shipping_address_line_1 as shipping_address_line_1,\n charge_shipping_address_line_2 as shipping_address_line_2,\n charge_shipping_address_city as shipping_address_city,\n charge_shipping_address_state as shipping_address_state,\n charge_shipping_address_postal_code as shipping_address_postal_code,\n charge_shipping_address_country as shipping_address_country,\n card_address_line_1,\n card_address_line_2,\n card_address_city,\n card_address_state,\n card_address_postal_code,\n card_address_country,\n charge_id,\n payment_intent_id,\n charge_created_at as charge_created,\n\n \n invoice_id,\n invoice_number,\n \n\n \n subscription_id,\n \n \n \n payment_method_type,\n \n \n card_brand,\n card_funding,\n card_country,\n charge_statement_descriptor as statement_descriptor,\n dispute_reasons,\n connected_account_id, \n connected_account_country,\n connected_account_direct_charge_id,\n source_relation\n\nfrom balance_transaction_enhanced", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null, "primary_key": [], "time_spine": null}, "analysis.stripe.stripe__customer_mrr_analysis": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__customer_mrr_analysis", "resource_type": "analysis", "package_name": "stripe", "path": "analysis/stripe__customer_mrr_analysis.sql", "original_file_path": "analyses/stripe__customer_mrr_analysis.sql", "unique_id": "analysis.stripe.stripe__customer_mrr_analysis", "fqn": ["stripe", "analysis", "stripe__customer_mrr_analysis"], "alias": "stripe__customer_mrr_analysis", "checksum": {"name": "sha256", "checksum": "2ffd66c8647e500c8fc91ee8d0ac33a9faf163eae855272551039d517f755366"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_subscriptions', True) and var('stripe__using_invoices', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.4579062, "relation_name": null, "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True) and var('stripe__using_invoices', True)) }}\n\nwith item_mrr as (\n select *\n from {{ ref('stripe__subscription_item_mrr_report') }}\n),\n\ncustomer_mrr as (\n select\n source_relation,\n customer_id,\n subscription_year,\n subscription_month,\n currency,\n sum(month_contract_mrr) as month_contract_mrr,\n sum(month_discount_applied) as month_discount_applied,\n sum(month_billed_mrr) as month_billed_mrr\n from item_mrr\n {{ dbt_utils.group_by(5) }}\n),\n\ncustomer_mrr_lagged as (\n select\n source_relation,\n customer_id,\n subscription_year,\n subscription_month,\n currency,\n month_contract_mrr,\n month_discount_applied,\n month_billed_mrr,\n lag(month_contract_mrr) over (\n partition by source_relation, customer_id, currency\n order by subscription_year, subscription_month\n ) as prior_month_contract_mrr,\n lag(month_billed_mrr) over (\n partition by source_relation, customer_id, currency\n order by subscription_year, subscription_month\n ) as prior_month_billed_mrr\n from customer_mrr\n)\n\nselect\n *,\n case\n when prior_month_contract_mrr is null\n and month_contract_mrr > 0 then 'new'\n when month_contract_mrr > prior_month_contract_mrr then 'expansion'\n when prior_month_contract_mrr > month_contract_mrr\n and month_contract_mrr > 0 then 'contraction'\n when (month_contract_mrr = 0 or month_contract_mrr is null)\n and prior_month_contract_mrr > 0 then 'churned'\n when prior_month_contract_mrr = 0\n and month_contract_mrr > 0 then 'reactivation'\n when month_contract_mrr = prior_month_contract_mrr then 'unchanged'\n else 'unknown'\n end as customer_contract_mrr_type,\n case\n when prior_month_billed_mrr is null\n and month_billed_mrr > 0 then 'new'\n when month_billed_mrr > prior_month_billed_mrr then 'expansion'\n when prior_month_billed_mrr > month_billed_mrr\n and month_billed_mrr > 0 then 'contraction'\n when (month_billed_mrr = 0 or month_billed_mrr is null)\n and prior_month_billed_mrr > 0 then 'churned'\n when prior_month_billed_mrr = 0\n and month_billed_mrr > 0 then 'reactivation'\n when month_billed_mrr = prior_month_billed_mrr then 'unchanged'\n else 'unknown'\n end as customer_billed_mrr_type\nfrom customer_mrr_lagged", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__subscription_item_mrr_report", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_utils.group_by"], "nodes": ["model.stripe.stripe__subscription_item_mrr_report"]}, "compiled_path": "target/compiled/stripe/analyses/stripe__customer_mrr_analysis.sql", "compiled": true, "compiled_code": "\n\nwith item_mrr as (\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__subscription_item_mrr_report\"\n),\n\ncustomer_mrr as (\n select\n source_relation,\n customer_id,\n subscription_year,\n subscription_month,\n currency,\n sum(month_contract_mrr) as month_contract_mrr,\n sum(month_discount_applied) as month_discount_applied,\n sum(month_billed_mrr) as month_billed_mrr\n from item_mrr\n group by 1,2,3,4,5\n),\n\ncustomer_mrr_lagged as (\n select\n source_relation,\n customer_id,\n subscription_year,\n subscription_month,\n currency,\n month_contract_mrr,\n month_discount_applied,\n month_billed_mrr,\n lag(month_contract_mrr) over (\n partition by source_relation, customer_id, currency\n order by subscription_year, subscription_month\n ) as prior_month_contract_mrr,\n lag(month_billed_mrr) over (\n partition by source_relation, customer_id, currency\n order by subscription_year, subscription_month\n ) as prior_month_billed_mrr\n from customer_mrr\n)\n\nselect\n *,\n case\n when prior_month_contract_mrr is null\n and month_contract_mrr > 0 then 'new'\n when month_contract_mrr > prior_month_contract_mrr then 'expansion'\n when prior_month_contract_mrr > month_contract_mrr\n and month_contract_mrr > 0 then 'contraction'\n when (month_contract_mrr = 0 or month_contract_mrr is null)\n and prior_month_contract_mrr > 0 then 'churned'\n when prior_month_contract_mrr = 0\n and month_contract_mrr > 0 then 'reactivation'\n when month_contract_mrr = prior_month_contract_mrr then 'unchanged'\n else 'unknown'\n end as customer_contract_mrr_type,\n case\n when prior_month_billed_mrr is null\n and month_billed_mrr > 0 then 'new'\n when month_billed_mrr > prior_month_billed_mrr then 'expansion'\n when prior_month_billed_mrr > month_billed_mrr\n and month_billed_mrr > 0 then 'contraction'\n when (month_billed_mrr = 0 or month_billed_mrr is null)\n and prior_month_billed_mrr > 0 then 'churned'\n when prior_month_billed_mrr = 0\n and month_billed_mrr > 0 then 'reactivation'\n when month_billed_mrr = prior_month_billed_mrr then 'unchanged'\n else 'unknown'\n end as customer_billed_mrr_type\nfrom customer_mrr_lagged", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}}, "analysis.stripe.stripe__arr_snapshot_analysis": {"database": "postgres", "schema": "public_stripe_dev", "name": "stripe__arr_snapshot_analysis", "resource_type": "analysis", "package_name": "stripe", "path": "analysis/stripe__arr_snapshot_analysis.sql", "original_file_path": "analyses/stripe__arr_snapshot_analysis.sql", "unique_id": "analysis.stripe.stripe__arr_snapshot_analysis", "fqn": ["stripe", "analysis", "stripe__arr_snapshot_analysis"], "alias": "stripe__arr_snapshot_analysis", "checksum": {"name": "sha256", "checksum": "d1419fe716542f99f47cc298deba7e25c724959538295f3a3c370057b03446c8"}, "config": {"enabled": true, "alias": null, "schema": "stripe_dev", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "table", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {"relation": true, "columns": true}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "stripe_{{ var('directed_schema','dev') }}", "materialized": "table", "enabled": "var('stripe__using_subscriptions', True) and var('stripe__using_invoices', True)", "persist_docs": {"relation": true, "columns": "{{ false if target.type in ('databricks') else true }}"}}, "created_at": 1784670937.4753654, "relation_name": null, "raw_code": "{{ config(enabled=var('stripe__using_subscriptions', True) and var('stripe__using_invoices', True)) }}\n\nwith mrr_by_item as (\n select *\n from {{ ref('stripe__subscription_item_mrr_report') }}\n\n),\n\nmonthly_rollup as (\n select\n source_relation,\n subscription_month as recurring_rev_month,\n subscription_year as recurring_rev_year,\n currency,\n sum(month_contract_mrr) as total_contract_mrr,\n sum(month_discount_applied) as total_discount_applied,\n sum(month_billed_mrr) as total_billed_mrr\n from mrr_by_item\n {{ dbt_utils.group_by(4) }}\n\n),\n\nsnapshots as (\n select\n source_relation,\n recurring_rev_month,\n recurring_rev_year,\n currency,\n total_contract_mrr,\n total_discount_applied,\n total_billed_mrr,\n total_contract_mrr * 12 as total_contract_arr,\n total_discount_applied * 12 as total_discount_applied,\n total_billed_mrr * 12 as total_billed_arr,\n row_number() over (\n partition by source_relation, recurring_rev_year, currency\n order by recurring_rev_month desc\n ) as month_number\n from monthly_rollup\n\n),\n\nfinal as (\n select\n source_relation,\n recurring_rev_year,\n currency,\n round(total_contract_arr, 2) as total_contract_arr,\n round(total_discount_arr, 2) as total_discount_applied,\n round(total_billed_arr, 2) as total_billed_arr\n from snapshots\n where month_number = 1 -- last month in that year\n\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__subscription_item_mrr_report", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_utils.group_by"], "nodes": ["model.stripe.stripe__subscription_item_mrr_report"]}, "compiled_path": "target/compiled/stripe/analyses/stripe__arr_snapshot_analysis.sql", "compiled": true, "compiled_code": "\n\nwith mrr_by_item as (\n select *\n from \"postgres\".\"public_stripe_dev\".\"stripe__subscription_item_mrr_report\"\n\n),\n\nmonthly_rollup as (\n select\n source_relation,\n subscription_month as recurring_rev_month,\n subscription_year as recurring_rev_year,\n currency,\n sum(month_contract_mrr) as total_contract_mrr,\n sum(month_discount_applied) as total_discount_applied,\n sum(month_billed_mrr) as total_billed_mrr\n from mrr_by_item\n group by 1,2,3,4\n\n),\n\nsnapshots as (\n select\n source_relation,\n recurring_rev_month,\n recurring_rev_year,\n currency,\n total_contract_mrr,\n total_discount_applied,\n total_billed_mrr,\n total_contract_mrr * 12 as total_contract_arr,\n total_discount_applied * 12 as total_discount_applied,\n total_billed_mrr * 12 as total_billed_arr,\n row_number() over (\n partition by source_relation, recurring_rev_year, currency\n order by recurring_rev_month desc\n ) as month_number\n from monthly_rollup\n\n),\n\nfinal as (\n select\n source_relation,\n recurring_rev_year,\n currency,\n round(total_contract_arr, 2) as total_contract_arr,\n round(total_discount_arr, 2) as total_discount_applied,\n round(total_billed_arr, 2) as total_billed_arr\n from snapshots\n where month_number = 1 -- last month in that year\n\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}}, "test.stripe.not_null_stg_stripe__balance_transaction_balance_transaction_id.0ac20e778f": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__balance_transaction_balance_transaction_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__balance_transaction_balance_transaction_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__balance_transaction_balance_transaction_id.0ac20e778f", "fqn": ["stripe", "staging", "not_null_stg_stripe__balance_transaction_balance_transaction_id"], "alias": "not_null_stg_stripe__balance_transaction_balance_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.1403785, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__balance_transaction", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__balance_transaction"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__balance_transaction_balance_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect balance_transaction_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__balance_transaction\"\nwhere balance_transaction_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "balance_transaction_id", "file_key_name": "models.stg_stripe__balance_transaction", "attached_node": "model.stripe.stg_stripe__balance_transaction", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "balance_transaction_id", "model": "{{ get_where_subquery(ref('stg_stripe__balance_transaction')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__card_card_id.edadd3106a": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__card_card_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__card_card_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__card_card_id.edadd3106a", "fqn": ["stripe", "staging", "not_null_stg_stripe__card_card_id"], "alias": "not_null_stg_stripe__card_card_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.1437786, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__card", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__card"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__card_card_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect card_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__card\"\nwhere card_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "card_id", "file_key_name": "models.stg_stripe__card", "attached_node": "model.stripe.stg_stripe__card", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "card_id", "model": "{{ get_where_subquery(ref('stg_stripe__card')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__charge_charge_id.8941bc704a": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__charge_charge_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__charge_charge_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__charge_charge_id.8941bc704a", "fqn": ["stripe", "staging", "not_null_stg_stripe__charge_charge_id"], "alias": "not_null_stg_stripe__charge_charge_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.146801, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__charge", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__charge"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__charge_charge_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect charge_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__charge\"\nwhere charge_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "charge_id", "file_key_name": "models.stg_stripe__charge", "attached_node": "model.stripe.stg_stripe__charge", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "charge_id", "model": "{{ get_where_subquery(ref('stg_stripe__charge')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__customer_customer_id.2e70421da0": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__customer_customer_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__customer_customer_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__customer_customer_id.2e70421da0", "fqn": ["stripe", "staging", "not_null_stg_stripe__customer_customer_id"], "alias": "not_null_stg_stripe__customer_customer_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.1497955, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__customer", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__customer"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__customer_customer_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect customer_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__customer\"\nwhere customer_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "customer_id", "file_key_name": "models.stg_stripe__customer", "attached_node": "model.stripe.stg_stripe__customer", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "customer_id", "model": "{{ get_where_subquery(ref('stg_stripe__customer')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__fee_balance_transaction_id.725d4ac005": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__fee_balance_transaction_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__fee_balance_transaction_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__fee_balance_transaction_id.725d4ac005", "fqn": ["stripe", "staging", "not_null_stg_stripe__fee_balance_transaction_id"], "alias": "not_null_stg_stripe__fee_balance_transaction_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.1527393, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__fee", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__fee"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__fee_balance_transaction_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect balance_transaction_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__fee\"\nwhere balance_transaction_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "balance_transaction_id", "file_key_name": "models.stg_stripe__fee", "attached_node": "model.stripe.stg_stripe__fee", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "balance_transaction_id", "model": "{{ get_where_subquery(ref('stg_stripe__fee')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__payment_intent_payment_intent_id.cb5b4d09eb": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__payment_intent_payment_intent_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__payment_intent_payment_intent_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__payment_intent_payment_intent_id.cb5b4d09eb", "fqn": ["stripe", "staging", "not_null_stg_stripe__payment_intent_payment_intent_id"], "alias": "not_null_stg_stripe__payment_intent_payment_intent_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.157081, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payment_intent", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__payment_intent"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__payment_intent_payment_intent_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect payment_intent_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_intent\"\nwhere payment_intent_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "payment_intent_id", "file_key_name": "models.stg_stripe__payment_intent", "attached_node": "model.stripe.stg_stripe__payment_intent", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "payment_intent_id", "model": "{{ get_where_subquery(ref('stg_stripe__payment_intent')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__payment_method_card_payment_method_id.f246b11438": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__payment_method_card_payment_method_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__payment_method_card_payment_method_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__payment_method_card_payment_method_id.f246b11438", "fqn": ["stripe", "staging", "not_null_stg_stripe__payment_method_card_payment_method_id"], "alias": "not_null_stg_stripe__payment_method_card_payment_method_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.1600034, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payment_method_card", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__payment_method_card"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__payment_method_card_payment_method_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect payment_method_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method_card\"\nwhere payment_method_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "payment_method_id", "file_key_name": "models.stg_stripe__payment_method_card", "attached_node": "model.stripe.stg_stripe__payment_method_card", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "payment_method_id", "model": "{{ get_where_subquery(ref('stg_stripe__payment_method_card')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__payment_method_payment_method_id.0a8907c471": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__payment_method_payment_method_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__payment_method_payment_method_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__payment_method_payment_method_id.0a8907c471", "fqn": ["stripe", "staging", "not_null_stg_stripe__payment_method_payment_method_id"], "alias": "not_null_stg_stripe__payment_method_payment_method_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.1628897, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payment_method", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__payment_method"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__payment_method_payment_method_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect payment_method_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__payment_method\"\nwhere payment_method_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "payment_method_id", "file_key_name": "models.stg_stripe__payment_method", "attached_node": "model.stripe.stg_stripe__payment_method", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "payment_method_id", "model": "{{ get_where_subquery(ref('stg_stripe__payment_method')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__payout_payout_id.6864a8acfc": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__payout_payout_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__payout_payout_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__payout_payout_id.6864a8acfc", "fqn": ["stripe", "staging", "not_null_stg_stripe__payout_payout_id"], "alias": "not_null_stg_stripe__payout_payout_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.165867, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__payout", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__payout"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__payout_payout_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect payout_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__payout\"\nwhere payout_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "payout_id", "file_key_name": "models.stg_stripe__payout", "attached_node": "model.stripe.stg_stripe__payout", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "payout_id", "model": "{{ get_where_subquery(ref('stg_stripe__payout')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__refund_refund_id.7c6dcedec0": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__refund_refund_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__refund_refund_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__refund_refund_id.7c6dcedec0", "fqn": ["stripe", "staging", "not_null_stg_stripe__refund_refund_id"], "alias": "not_null_stg_stripe__refund_refund_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.1688435, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__refund", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__refund"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__refund_refund_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect refund_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__refund\"\nwhere refund_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "refund_id", "file_key_name": "models.stg_stripe__refund", "attached_node": "model.stripe.stg_stripe__refund", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "refund_id", "model": "{{ get_where_subquery(ref('stg_stripe__refund')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__invoice_line_item_invoice_line_item_id.5b9c83b5f3": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__invoice_line_item_invoice_line_item_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__invoice_line_item_invoice_line_item_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__invoice_line_item_invoice_line_item_id.5b9c83b5f3", "fqn": ["stripe", "staging", "not_null_stg_stripe__invoice_line_item_invoice_line_item_id"], "alias": "not_null_stg_stripe__invoice_line_item_invoice_line_item_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.1717215, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice_line_item", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__invoice_line_item"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__invoice_line_item_invoice_line_item_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect invoice_line_item_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice_line_item\"\nwhere invoice_line_item_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "invoice_line_item_id", "file_key_name": "models.stg_stripe__invoice_line_item", "attached_node": "model.stripe.stg_stripe__invoice_line_item", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "invoice_line_item_id", "model": "{{ get_where_subquery(ref('stg_stripe__invoice_line_item')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__invoice_invoice_id.34cc0ff095": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__invoice_invoice_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__invoice_invoice_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__invoice_invoice_id.34cc0ff095", "fqn": ["stripe", "staging", "not_null_stg_stripe__invoice_invoice_id"], "alias": "not_null_stg_stripe__invoice_invoice_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.174609, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__invoice"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__invoice_invoice_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect invoice_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__invoice\"\nwhere invoice_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "invoice_id", "file_key_name": "models.stg_stripe__invoice", "attached_node": "model.stripe.stg_stripe__invoice", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "invoice_id", "model": "{{ get_where_subquery(ref('stg_stripe__invoice')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__subscription_subscription_id.b242b1f7bc": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__subscription_subscription_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__subscription_subscription_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__subscription_subscription_id.b242b1f7bc", "fqn": ["stripe", "staging", "not_null_stg_stripe__subscription_subscription_id"], "alias": "not_null_stg_stripe__subscription_subscription_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.1775074, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__subscription"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__subscription_subscription_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect subscription_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription\"\nwhere subscription_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "subscription_id", "file_key_name": "models.stg_stripe__subscription", "attached_node": "model.stripe.stg_stripe__subscription", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "subscription_id", "model": "{{ get_where_subquery(ref('stg_stripe__subscription')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__subscription_item_subscription_item_id.dd9153a54a": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__subscription_item_subscription_item_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__subscription_item_subscription_item_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__subscription_item_subscription_item_id.dd9153a54a", "fqn": ["stripe", "staging", "not_null_stg_stripe__subscription_item_subscription_item_id"], "alias": "not_null_stg_stripe__subscription_item_subscription_item_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.1804838, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription_item", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__subscription_item"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__subscription_item_subscription_item_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect subscription_item_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__subscription_item\"\nwhere subscription_item_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "subscription_item_id", "file_key_name": "models.stg_stripe__subscription_item", "attached_node": "model.stripe.stg_stripe__subscription_item", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "subscription_item_id", "model": "{{ get_where_subquery(ref('stg_stripe__subscription_item')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__credit_note_credit_note_id.d3e7f781dd": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__credit_note_credit_note_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__credit_note_credit_note_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__credit_note_credit_note_id.d3e7f781dd", "fqn": ["stripe", "staging", "not_null_stg_stripe__credit_note_credit_note_id"], "alias": "not_null_stg_stripe__credit_note_credit_note_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.1833663, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__credit_note", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__credit_note"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__credit_note_credit_note_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect credit_note_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note\"\nwhere credit_note_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "credit_note_id", "file_key_name": "models.stg_stripe__credit_note", "attached_node": "model.stripe.stg_stripe__credit_note", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "credit_note_id", "model": "{{ get_where_subquery(ref('stg_stripe__credit_note')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id.4a26fbafe7": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__credit_no_3566f51b8444d66080a7df347c87b48d.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id.4a26fbafe7", "fqn": ["stripe", "staging", "not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id"], "alias": "not_null_stg_stripe__credit_no_3566f51b8444d66080a7df347c87b48d", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "not_null_stg_stripe__credit_no_3566f51b8444d66080a7df347c87b48d", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "not_null_stg_stripe__credit_no_3566f51b8444d66080a7df347c87b48d"}, "created_at": 1784670938.186278, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}{{ config(alias=\"not_null_stg_stripe__credit_no_3566f51b8444d66080a7df347c87b48d\") }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__credit_note_line_item", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__credit_note_line_item"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__credit_no_3566f51b8444d66080a7df347c87b48d.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect credit_note_line_item_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__credit_note_line_item\"\nwhere credit_note_line_item_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "credit_note_line_item_id", "file_key_name": "models.stg_stripe__credit_note_line_item", "attached_node": "model.stripe.stg_stripe__credit_note_line_item", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "credit_note_line_item_id", "model": "{{ get_where_subquery(ref('stg_stripe__credit_note_line_item')) }}"}, "namespace": null}}, "test.stripe.not_null_stg_stripe__account_account_id.374858379a": {"database": "postgres", "schema": "public_dbt_test__audit", "name": "not_null_stg_stripe__account_account_id", "resource_type": "test", "package_name": "stripe", "path": "not_null_stg_stripe__account_account_id.sql", "original_file_path": "models/staging/stg_stripe.yml", "unique_id": "test.stripe.not_null_stg_stripe__account_account_id.374858379a", "fqn": ["stripe", "staging", "not_null_stg_stripe__account_account_id"], "alias": "not_null_stg_stripe__account_account_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1784670938.189132, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__account", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.stripe.stg_stripe__account"]}, "compiled_path": "target/compiled/stripe/models/staging/stg_stripe.yml/not_null_stg_stripe__account_account_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect account_id\nfrom \"postgres\".\"public_stripe_dev\".\"stg_stripe__account\"\nwhere account_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "account_id", "file_key_name": "models.stg_stripe__account", "attached_node": "model.stripe.stg_stripe__account", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "account_id", "model": "{{ get_where_subquery(ref('stg_stripe__account')) }}"}, "namespace": null}}}, "sources": {"source.stripe.stripe.balance_transaction": {"database": "postgres", "schema": "public", "name": "balance_transaction", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.balance_transaction", "fqn": ["stripe", "staging", "stripe", "balance_transaction"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "balance_transaction_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Balance transactions represent funds moving through your Stripe account. They're created for every type of transaction that comes into or flows out of your Stripe account balance.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Gross amount of the transaction, in cents.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "available_on": {"name": "available_on", "description": "The date the transaction's net funds will become available in the Stripe balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "The ID of the account connected to the transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "exchange_rate": {"name": "exchange_rate", "description": "The exchange rate used, if applicable, for this transaction. Specifically, if money was converted from currency A to currency B, then the amount in currency A, times exchange_rate, would be the amount in currency B.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "fee": {"name": "fee", "description": "fees (in cents) paid for this transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "net": {"name": "net", "description": "Net amount of the transaction, in cents.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "reporting_category": {"name": "reporting_category", "description": "Improves on the type field by providing a more-useful grouping for most finance and reporting purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source": {"name": "source", "description": "The Stripe object to which this transaction is related.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "If the transaction's net funds are available in the Stripe balance yet. Either 'available' or 'pending'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of transaction. Possible values are adjustment, advance, advance_funding, application_fee, application_fee_refund, charge, connect_collection_transfer, issuing_authorization_hold, issuing_authorization_release, issuing_dispute, issuing_transaction, payment, payment_failure_refund, payment_refund, payout, payout_cancel, payout_failure, refund, refund_failure, reserve_transaction, reserved_funds, stripe_fee, stripe_fx_fee, tax_fee, topup, topup_reversal, transfer, transfer_cancel, transfer_failure, or transfer_refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"balance_transaction_data\"", "created_at": 1784670938.4218547, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.card": {"database": "postgres", "schema": "public", "name": "card", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.card", "fqn": ["stripe", "staging", "stripe", "card"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "card_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Details of a credit card that has been saved to the system.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "account_id": {"name": "account_id", "description": "ID of account associated with this card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "address_city": {"name": "address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "address_country": {"name": "address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "address_line_1": {"name": "address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "address_line_2": {"name": "address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "address_state": {"name": "address_state", "description": "State/County/Province/Region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "address_zip": {"name": "address_zip", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "brand": {"name": "brand", "description": "Card brand. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "country": {"name": "country", "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.created"]}, "customer_id": {"name": "customer_id", "description": "The customer that this card belongs to. NULL if belongs to an account or recipient.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "name": {"name": "name", "description": "Cardholder name", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "recipient": {"name": "recipient", "description": "The recipient that this card belongs to. NULL if the card belongs to a customer or account instead.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "funding": {"name": "funding", "description": "Card funding type. Can be credit, debit, prepaid, or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "wallet_type": {"name": "wallet_type", "description": "The type of the card wallet, one of amex_express_checkout, apple_pay, google_pay, masterpass, samsung_pay, or visa_checkout. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "three_d_secure_authentication_flow": {"name": "three_d_secure_authentication_flow", "description": "For authenticated transactions, how the customer was authenticated by the issuing bank.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "three_d_secure_result": {"name": "three_d_secure_result", "description": "Indicates the outcome of 3D Secure authentication.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "three_d_secure_result_reason": {"name": "three_d_secure_result_reason", "description": "Additional information about why 3D Secure succeeded or failed based on the result.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "three_d_secure_version": {"name": "three_d_secure_version", "description": "The version of 3D Secure that was used.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"card_data\"", "created_at": 1784670938.424312, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.charge": {"database": "postgres", "schema": "public", "name": "charge", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.charge", "fqn": ["stripe", "staging", "stripe", "charge"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "charge_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "To charge a credit or a debit card, you create a Charge object. You can retrieve and refund individual charges as well as list all charges. Charges are identified by a unique, random ID.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge \u00a5100, a zero-decimal currency)", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount_refunded": {"name": "amount_refunded", "description": "The amount of the charge, if any, that has been refunded.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "application_fee_amount": {"name": "application_fee_amount", "description": "The amount of the application fee (if any) for the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "captured": {"name": "captured", "description": "If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "card_id": {"name": "card_id", "description": "ID of the card that was charged.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.created"]}, "connected_account_id": {"name": "connected_account_id", "description": "ID of account connected for this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the customer this charge is for if one exists.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "failure_code": {"name": "failure_code", "description": "Error code explaining reason for charge failure if available.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "failure_message": {"name": "failure_message", "description": "Message to user further explaining reason for charge failure if available.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "paid": {"name": "paid", "description": "true if the charge succeeded, or was successfully authorized for later capture.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "ID of the PaymentIntent associated with this charge, if one exists.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "receipt_email": {"name": "receipt_email", "description": "This is the email address that the receipt for this charge was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "receipt_number": {"name": "receipt_number", "description": "This is the transaction number that appears on email receipts sent for this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "refunded": {"name": "refunded", "description": "Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "The status of the payment is either succeeded, pending, or failed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_carrier": {"name": "shipping_carrier", "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_name": {"name": "shipping_name", "description": "Recipient name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_phone": {"name": "shipping_phone", "description": "Recipient phone (including extension).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_tracking_number": {"name": "shipping_tracking_number", "description": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_id": {"name": "source_id", "description": "ID of the source associated. Source objects allow you to accept a variety of payment methods. They represent a customer's payment instrument, and can be used with the Stripe API just like a Card object, once chargeable, they can be charged, or can be attached to customers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_transfer": {"name": "source_transfer", "description": "The transfer ID which created this charge. Only present if the charge came from another Stripe account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "Extra information about a source. This will appear on your customer's statement every time you charge the source.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The id of the invoice associated with this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "The currency of the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_method_id": {"name": "payment_method_id", "description": "Unique identifier for the payment method object used in this charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "calculated_statement_descriptor": {"name": "calculated_statement_descriptor", "description": "The full statement descriptor that is passed to card networks, and that is displayed on your customers' credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_address_city": {"name": "billing_detail_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_address_country": {"name": "billing_detail_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_address_line1": {"name": "billing_detail_address_line1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_address_line2": {"name": "billing_detail_address_line2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_address_postal_code": {"name": "billing_detail_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_address_state": {"name": "billing_detail_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_email": {"name": "billing_detail_email", "description": "Email address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_name": {"name": "billing_detail_name", "description": "Full name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_detail_phone": {"name": "billing_detail_phone", "description": "Billing phone number (including extension).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"charge_data\"", "created_at": 1784670938.4254954, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.customer": {"database": "postgres", "schema": "public", "name": "customer", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.customer", "fqn": ["stripe", "staging", "stripe", "customer"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "customer_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Customer objects allow you to perform recurring charges, and to track multiple charges, that are associated with the same customer.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "account_balance": {"name": "account_balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "address_city": {"name": "address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.city"]}, "address_country": {"name": "address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.country"]}, "address_line_1": {"name": "address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.line_1"]}, "address_line_2": {"name": "address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.line_2"]}, "address_postal_code": {"name": "address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.postal_code"]}, "address_state": {"name": "address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.state"]}, "balance": {"name": "balance", "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "bank_account_id": {"name": "bank_account_id", "description": "ID of the bank account associated with this customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "default_card_id": {"name": "default_card_id", "description": "ID for the default card used by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "delinquent": {"name": "delinquent", "description": "When the customer's latest invoice is billed by charging automatically, delinquent is true if the invoice's latest charge is failed. When the customer's latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "name": {"name": "name", "description": "Customer name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "phone": {"name": "phone", "description": "Customer's phone number.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_1": {"name": "shipping_address_line_1", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_line_2": {"name": "shipping_address_line_2", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_postal_code": {"name": "shipping_address_postal_code", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_address_state": {"name": "shipping_address_state", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_name": {"name": "shipping_name", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shipping_phone": {"name": "shipping_phone", "description": "Attribute of the customer's shipping address.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Boolean reflecting whether the customer has been deleted in Stripe.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"customer_data\"", "created_at": 1784670938.4262009, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.dispute": {"database": "postgres", "schema": "public", "name": "dispute", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.dispute", "fqn": ["stripe", "staging", "stripe", "dispute"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "dispute_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "The details of a dispute related to a charge. A dispute occurs when a customer questions your charge with their card issuer. When this happens, you're given the opportunity to respond to the dispute with evidence that shows that the charge is legitimate.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Disputed amount. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction": {"name": "balance_transaction", "description": "List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the charge that was disputed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "connected_account_id": {"name": "connected_account_id", "description": "Account id associated with this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase. Must be a supported currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_access_activity_log": {"name": "evidence_access_activity_log", "description": "Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_billing_address": {"name": "evidence_billing_address", "description": "The billing address provided by the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_cancellation_policy": {"name": "evidence_cancellation_policy", "description": "(ID of a file upload) Your subscription cancellation policy, as shown to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_cancellation_policy_disclosure": {"name": "evidence_cancellation_policy_disclosure", "description": "An explanation of how and when the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_cancellation_rebuttal": {"name": "evidence_cancellation_rebuttal", "description": "A justification for why the customer's subscription was not canceled. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_customer_communication": {"name": "evidence_customer_communication", "description": "(ID of a file upload) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_customer_email_address": {"name": "evidence_customer_email_address", "description": "The email address of the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_customer_name": {"name": "evidence_customer_name", "description": "The name of the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_customer_purchase_ip": {"name": "evidence_customer_purchase_ip", "description": "The IP address that the customer used when making the purchase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_customer_signature": {"name": "evidence_customer_signature", "description": "(ID of a file upload) A relevant document or contract showing the customer's signature.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_details_due_by": {"name": "evidence_details_due_by", "description": "Date by which evidence must be submitted in order to successfully challenge dispute. Will be 0 if the customer's bank or credit card company doesn't allow a response for this particular dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_details_has_evidence": {"name": "evidence_details_has_evidence", "description": "Whether evidence has been staged for this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_details_past_due": {"name": "evidence_details_past_due", "description": "Whether the last evidence submission was submitted past the due date. Defaults to false if no evidence submissions have occurred. If true, then delivery of the latest evidence is not guaranteed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_details_submission_count": {"name": "evidence_details_submission_count", "description": "The number of times evidence has been submitted. Typically, you may only submit evidence once.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_duplicate_charge_documentation": {"name": "evidence_duplicate_charge_documentation", "description": "(ID of a file upload) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_duplicate_charge_explanation": {"name": "evidence_duplicate_charge_explanation", "description": "An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_duplicate_charge_id": {"name": "evidence_duplicate_charge_id", "description": "The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_product_description": {"name": "evidence_product_description", "description": "A description of the product or service that was sold. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_receipt": {"name": "evidence_receipt", "description": "(ID of a file upload) Any receipt or message sent to the customer notifying them of the charge.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_refund_policy": {"name": "evidence_refund_policy", "description": "(ID of a file upload) Your refund policy, as shown to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_refund_policy_disclosure": {"name": "evidence_refund_policy_disclosure", "description": "Documentation demonstrating that the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_refund_refusal_explanation": {"name": "evidence_refund_refusal_explanation", "description": "A justification for why the customer is not entitled to a refund. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_service_date": {"name": "evidence_service_date", "description": "The date on which the customer received or began receiving the purchased service, in a clear human-readable format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_service_documentation": {"name": "evidence_service_documentation", "description": "(ID of a file upload) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_shipping_address": {"name": "evidence_shipping_address", "description": "The address to which a physical product was shipped. You should try to include as complete address information as possible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_shipping_carrier": {"name": "evidence_shipping_carrier", "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_shipping_date": {"name": "evidence_shipping_date", "description": "The date on which a physical product began its route to the shipping address, in a clear human-readable format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_shipping_documentation": {"name": "evidence_shipping_documentation", "description": "(ID of a file upload) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer's full shipping address, if possible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_shipping_tracking_number": {"name": "evidence_shipping_tracking_number", "description": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_uncategorized_file": {"name": "evidence_uncategorized_file", "description": "(ID of a file upload) Any additional evidence or statements.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "evidence_uncategorized_text": {"name": "evidence_uncategorized_text", "description": "Any additional evidence or statements. Has a maximum character count of 20,000.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_charge_refundable": {"name": "is_charge_refundable", "description": "Boolean ff true, it is still possible to refund the disputed payment. Once the payment has been fully refunded, no further funds will be withdrawn from your Stripe account as a result of this dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test dispute.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "reason": {"name": "reason", "description": "Reason given by cardholder for dispute. Possible values are bank_cannot_process, check_returned, credit_not_processed, customer_initiated, debit_not_authorized, duplicate, fraudulent, general, incorrect_account_details, insufficient_funds, product_not_received, product_unacceptable, subscription_canceled, or unrecognized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Current status of dispute. Possible values are warning_needs_response, warning_under_review, warning_closed, needs_response, under_review, won, or lost.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"dispute_data\"", "created_at": 1784670938.427173, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.fee": {"database": "postgres", "schema": "public", "name": "fee", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.fee", "fqn": ["stripe", "staging", "stripe", "fee"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "fee_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "The details of a fee associated with a balance_transaction", "columns": {"balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the balance transaction entry the fee applies to", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "index": {"name": "index", "description": "The index of the fee within the balance transaction", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount of the fee, in cents.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "application": {"name": "application", "description": "ID of the Connect application that earned the fee.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "Type of the fee, can be application_fee, stripe_fee or tax.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"fee_data\"", "created_at": 1784670938.4278564, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.payment_intent": {"database": "postgres", "schema": "public", "name": "payment_intent", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.payment_intent", "fqn": ["stripe", "staging", "stripe", "payment_intent"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "payment_intent_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "A Payment Intent guides you through the process of collecting a payment from your customer.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge \u00a5100, a zero-decimal currency)", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount_capturable": {"name": "amount_capturable", "description": "Amount that can be captured from this PaymentIntent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount_received": {"name": "amount_received", "description": "Amount that was collected by this PaymentIntent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "application": {"name": "application", "description": "ID of the Connect application that created the PaymentIntent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "application_fee_amount": {"name": "application_fee_amount", "description": "The amount of the application fee (if any) for the resulting payment.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "canceled_at": {"name": "canceled_at", "description": "Populated when status is canceled, this is the time at which the PaymentIntent was canceled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "cancellation_reason": {"name": "cancellation_reason", "description": "Reason for cancellation of this PaymentIntent, either user-provided (duplicate, fraudulent, requested_by_customer, or abandoned) or generated by Stripe internally (failed_invoice, void_invoice, or automatic).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "capture_method": {"name": "capture_method", "description": "Controls when the funds will be captured from the customer's account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "confirmation_method": {"name": "confirmation_method", "description": "Whether confirmed automatically or manually", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the Customer this PaymentIntent belongs to, if one exists.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_method_id": {"name": "payment_method_id", "description": "ID of the payment method used in this PaymentIntent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "receipt_email": {"name": "receipt_email", "description": "Email address that the receipt for the resulting payment will be sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "For non-card charges, you can use this value as the complete description that appears on your customers' statements.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of this PaymentIntent, one of requires_payment_method, requires_confirmation, requires_action, processing, requires_capture, canceled, or succeeded.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test payment intent.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"payment_intent_data\"", "created_at": 1784670938.4284608, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.payment_method_card": {"database": "postgres", "schema": "public", "name": "payment_method_card", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.payment_method_card", "fqn": ["stripe", "staging", "stripe", "payment_method_card"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "payment_method_card_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Table with the relationships between a payment method and a card", "columns": {"payment_method_id": {"name": "payment_method_id", "description": "ID of the payment method", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "brand": {"name": "brand", "description": "Card brand. Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "funding": {"name": "funding", "description": "Card funding type. Can be credit, debit, prepaid, or unknown.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the charge that this card belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the payment method.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "wallet_type": {"name": "wallet_type", "description": "The type of the card wallet, one of amex_express_checkout, apple_pay, google_pay, masterpass, samsung_pay, or visa_checkout. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"payment_method_card_data\"", "created_at": 1784670938.429148, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.payment_method": {"database": "postgres", "schema": "public", "name": "payment_method", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.payment_method", "fqn": ["stripe", "staging", "stripe", "payment_method"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "payment_method_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "PaymentMethod objects represent your customer's payment instruments. They can be used with PaymentIntents to collect payments or saved to Customer objects to store instrument details for future payments.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.created"]}, "customer_id": {"name": "customer_id", "description": "The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test payment method.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"payment_method_data\"", "created_at": 1784670938.429687, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.payout": {"database": "postgres", "schema": "public", "name": "payout", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.payout", "fqn": ["stripe", "staging", "stripe", "payout"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "payout_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "A Payout object is created when you receive funds from Stripe, or when you initiate a payout to either a bank account or debit card of a connected Stripe account.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount (in cents) to be transferred to your bank account or debit card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "arrival_date": {"name": "arrival_date", "description": "Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "automatic": {"name": "automatic", "description": "true if the payout was created by an automated payout schedule, and false if it was requested manually.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the balance transaction that describes the impact of this payout on your account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "destination_bank_account_id": {"name": "destination_bank_account_id", "description": "ID of the bank account the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "destination_card_id": {"name": "destination_card_id", "description": "ID of the card the payout was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "method": {"name": "method", "description": "The method used to send this payout, which can be standard or instant.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_type": {"name": "source_type", "description": "The source balance this payout came from. One of card, fpx, or bank_account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Current status of the payout. Can be paid, pending, in_transit, canceled or failed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "Can be bank_account or card.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test payout.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"payout_data\"", "created_at": 1784670938.4304123, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.payout_balance_transaction": {"database": "postgres", "schema": "public", "name": "payout_balance_transaction", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.payout_balance_transaction", "fqn": ["stripe", "staging", "stripe", "payout_balance_transaction"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "payout_balance_transaction_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Table that contains the complete mapping between `payout_id` and `balance_transaction_id`. The payout to balance_transaction relationship is 1:many.\n", "columns": {"payout_id": {"name": "payout_id", "description": "Unique identifier for the payout.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "Unique identifier for the balance transaction.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp when the record was last synced.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"payout_balance_transaction_data\"", "created_at": 1784670938.4310687, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.refund": {"database": "postgres", "schema": "public", "name": "refund", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.refund", "fqn": ["stripe", "staging", "stripe", "refund"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "refund_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Details of transactions that have been refunded", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount, in cents.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "ID of the latest balance transaction linked to this payout, describing its impact on your account balance. The payout to balance_transaction relationship is 1:many.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the charge that was refunded.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users. (Available on non-card refunds only)", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "ID of the payment intent associated with this refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "reason": {"name": "reason", "description": "Reason for the refund, either user-provided (duplicate, fraudulent, or requested_by_customer) or generated by Stripe internally (expired_uncaptured_charge).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "receipt_number": {"name": "receipt_number", "description": "This is the transaction number that appears on email receipts sent for this refund.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of the refund. For credit card refunds, this can be pending, succeeded, or failed. For other types of refunds, it can be pending, succeeded, failed, or canceled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"refund_data\"", "created_at": 1784670938.431617, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.invoice_line_item": {"database": "postgres", "schema": "public", "name": "invoice_line_item", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.invoice_line_item", "fqn": ["stripe", "staging", "stripe", "invoice_line_item"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "invoice_line_item_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "The different items that an invoice contains", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The ID of the invoice this item is a part of", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The ID of the invoice item this item is a part of", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "price_id": {"name": "price_id", "description": "ID of the price object this item pertains to", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The amount, in cents.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "discountable": {"name": "discountable", "description": "If true, discounts will apply to this line item. Always false for prorations.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "plan_id": {"name": "plan_id", "description": "The ID of the plan of the subscription, if the line item is a subscription or a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "proration": {"name": "proration", "description": "Whether this is a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The quantity of the subscription, if the line item is a subscription or a proration.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription that the invoice item pertains to, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_item_id": {"name": "subscription_item_id", "description": "The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "A string identifying the type of the source of this line item, either an invoice item or a subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "unique_id": {"name": "unique_id", "description": "A unique id generated and only for old invoice line item ID's from a past version of the API. The introduction of this field resolves the pagination break issue for invoice line items, which was introduced by the [Stripe API update](https://stripe.com/docs/upgrades#2019-12-03).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test invoice line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"invoice_line_item_data\"", "created_at": 1784670938.4321914, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.invoice": {"database": "postgres", "schema": "public", "name": "invoice", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.invoice", "fqn": ["stripe", "staging", "stripe", "invoice"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "invoice_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Invoices are statements of amounts owed by a customer, and are either generated one-off, or generated periodically from a subscription.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount_due": {"name": "amount_due", "description": "Final amount due at this time for this invoice. If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount_paid": {"name": "amount_paid", "description": "The amount, in cents, that was paid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount_remaining": {"name": "amount_remaining", "description": "The amount remaining, in cents, that is due.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "attempt_count": {"name": "attempt_count", "description": "Number of payment attempts made for this invoice, from the perspective of the payment retry schedule.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "auto_advance": {"name": "auto_advance", "description": "Controls whether Stripe will perform automatic collection of the invoice. When false, the invoice's state will not automatically advance without an explicit action.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_reason": {"name": "billing_reason", "description": "Indicates the reason why the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charge_id": {"name": "charge_id", "description": "ID of the latest charge generated for this invoice, if any.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the customer who will be billed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "due_date": {"name": "due_date", "description": "The date on which payment for this invoice is due. This value will be null for invoices where collection_method=charge_automatically.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "number": {"name": "number", "description": "A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer's unique invoice_prefix if it is specified.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "paid": {"name": "paid", "description": "Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer's account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "receipt_number": {"name": "receipt_number", "description": "This is the transaction number that appears on email receipts sent for this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription that the invoice pertains to,.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subtotal": {"name": "subtotal", "description": "Total of all subscriptions, invoice items, and prorations on the invoice before any discount or tax is applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "tax": {"name": "tax", "description": "The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "tax_percent": {"name": "tax_percent", "description": "The percent used to calculate the tax amount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total": {"name": "total", "description": "Total after discounts and taxes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "period_start": {"name": "period_start", "description": "Start of the usage period during for which the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "period_end": {"name": "period_end", "description": "End of the usage period during for which the invoice was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "default_payment_method_id": {"name": "default_payment_method_id", "description": "ID of the default payment method in this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payment_intent_id": {"name": "payment_intent_id", "description": "ID of the PaymentIntent associated with this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "post_payment_credit_notes_amount": {"name": "post_payment_credit_notes_amount", "description": "Total amount of all post-payment credit notes issued for this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "pre_payment_credit_notes_amount": {"name": "pre_payment_credit_notes_amount", "description": "Total amount of all pre-payment credit notes issued for this invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status_transitions_finalized_at": {"name": "status_transitions_finalized_at", "description": "The time that the invoice draft was finalized.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status_transitions_marked_uncollectible_at": {"name": "status_transitions_marked_uncollectible_at", "description": "The time that the invoice was marked uncollectible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status_transitions_paid_at": {"name": "status_transitions_paid_at", "description": "The time that the invoice was paid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status_transitions_voided_at": {"name": "status_transitions_voided_at", "description": "The time that the invoice was voided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"invoice_data\"", "created_at": 1784670938.4328806, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.subscription_history": {"database": "postgres", "schema": "public", "name": "subscription_history", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.subscription_history", "fqn": ["stripe", "staging", "stripe", "subscription_history"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "subscription_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Subscriptions allow you to charge a customer on a recurring basis. Please note this source table is used only on connectors setup **after** February 09, 2022.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing": {"name": "billing", "description": "How the invoice is billed", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_cycle_anchor": {"name": "billing_cycle_anchor", "description": "Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "cancel_at": {"name": "cancel_at", "description": "A date in the future at which the subscription will automatically get canceled", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "cancel_at_period_end": {"name": "cancel_at_period_end", "description": "Boolean indicating whether this subscription should cancel at the end of the current period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "canceled_at": {"name": "canceled_at", "description": "If the subscription has been canceled, the date of that cancellation.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.created"]}, "current_period_start": {"name": "current_period_start", "description": "Start of the current period that the subscription has been invoiced for.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "current_period_end": {"name": "current_period_end", "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of customer this subscription belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "days_until_due": {"name": "days_until_due", "description": "Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "start_date": {"name": "start_date", "description": "Date when the subscription was first created. The date might differ from the created date due to backdating.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "ended_at": {"name": "ended_at", "description": "If the subscription has ended, the date the subscription ended.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "_fivetran_active": {"name": "_fivetran_active", "description": "Boolean indicating if the record is the latest.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "latest_invoice_id": {"name": "latest_invoice_id", "description": "ID of the latest invoice for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "default_payment_method_id": {"name": "default_payment_method_id", "description": "ID of the default payment method for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "pending_setup_intent_id": {"name": "pending_setup_intent_id", "description": "ID of the payment setup intent for this subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "pause_collection_behavior": {"name": "pause_collection_behavior", "description": "The payment collection behavior for this subscription while paused. One of keep_as_draft, mark_uncollectible, or void.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "pause_collection_resumes_at": {"name": "pause_collection_resumes_at", "description": "The time after which the subscription will resume collecting payments.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"subscription_history_data\"", "created_at": 1784670938.4334903, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.subscription": {"database": "postgres", "schema": "public", "name": "subscription", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.subscription", "fqn": ["stripe", "staging", "stripe", "subscription"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "subscription_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Subscriptions allow you to charge a customer on a recurring basis. Please note this source table is only present in connectors setup **before** February 09, 2022.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing": {"name": "billing", "description": "How the invoice is billed", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_cycle_anchor": {"name": "billing_cycle_anchor", "description": "Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "cancel_at": {"name": "cancel_at", "description": "A date in the future at which the subscription will automatically get canceled", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "cancel_at_period_end": {"name": "cancel_at_period_end", "description": "Boolean indicating whether this subscription should cancel at the end of the current period.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "canceled_at": {"name": "canceled_at", "description": "If the subscription has been canceled, the date of that cancellation.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.created"]}, "current_period_start": {"name": "current_period_start", "description": "Start of the current period that the subscription has been invoiced for.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "current_period_end": {"name": "current_period_end", "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "ID of the customer who owns the subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "days_until_due": {"name": "days_until_due", "description": "Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "start_date": {"name": "start_date", "description": "Date when the subscription was first created. The date might differ from the created date due to backdating.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "ended_at": {"name": "ended_at", "description": "If the subscription has ended, the date the subscription ended.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "pause_collection_behavior": {"name": "pause_collection_behavior", "description": "The payment collection behavior for this subscription while paused. One of keep_as_draft, mark_uncollectible, or void.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "pause_collection_resumes_at": {"name": "pause_collection_resumes_at", "description": "The time after which the subscription will resume collecting payments.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"subscription_data\"", "created_at": 1784670938.4340374, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.subscription_item": {"database": "postgres", "schema": "public", "name": "subscription_item", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.subscription_item", "fqn": ["stripe", "staging", "stripe", "subscription_item"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "subscription_item_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Subscription items allow you to create customer subscriptions with more than one plan, making it easy to represent complex billing relationships.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "plan_id": {"name": "plan_id", "description": "The ID of the plan associated with this subscription_item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The ID of the subscription this item belongs to. Join key to the subscription_history table.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the object was created", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "current_period_start": {"name": "current_period_start", "description": "Start of the current period that the subscription has been invoiced for.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "current_period_end": {"name": "current_period_end", "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The quantity of the plan to which the customer is subscribed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"subscription_item_data\"", "created_at": 1784670938.4346018, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.plan": {"database": "postgres", "schema": "public", "name": "plan", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.plan", "fqn": ["stripe", "staging", "stripe", "plan"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "plan_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Plans define the base price, currency, and billing cycle for recurring purchases of products.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "active": {"name": "active", "description": "Whether the plan can be used for new purchases.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The unit amount in cents to be charged, represented as a whole integer if possible.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "interval": {"name": "interval", "description": "The frequency at which a subscription is billed. One of day, week, month or year.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "interval_count": {"name": "interval_count", "description": "The number of intervals between subscription billings. For example, interval_count=3 bills every 3 months.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "nickname": {"name": "nickname", "description": "A brief description of the plan, hidden from customers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "product": {"name": "product", "description": "The product whose pricing this plan determines.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test plan.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"plan_data\"", "created_at": 1784670938.4351346, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.credit_note": {"database": "postgres", "schema": "public", "name": "credit_note", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.credit_note", "fqn": ["stripe", "staging", "stripe", "credit_note"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "credit_note_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Credit notes are documents that decrease the amount owed on an invoice. They're the only way to adjust the amount of a finalized invoice other than voiding and recreating the invoice.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The integer amount in cents representing the total amount of the credit note, including tax.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "The currency of the charge. Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "discount_amount": {"name": "discount_amount", "description": "The integer amount in cents representing the total amount of discount that was credited.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subtotal": {"name": "subtotal", "description": "The integer amount in cents representing the amount of the credit note, excluding tax and invoice level discounts.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "total": {"name": "total", "description": "The integer amount in cents representing the total amount of the credit note, including tax and all discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Has the value true if the object exists in live mode or the value false if the object exists in test mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "memo": {"name": "memo", "description": "Customer-facing text that appears on the credit note PDF.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "number": {"name": "number", "description": "A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "pdf": {"name": "pdf", "description": "The link to download the PDF of the credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "reason": {"name": "reason", "description": "Reason for issuing this credit note, one of duplicate, fraudulent, order_change, or product_unsatisfactory", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "status": {"name": "status", "description": "Status of this credit note, one of issued or void. Learn more about voiding credit notes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "Type of this credit note, one of pre_payment or post_payment. A pre_payment credit note means it was issued when the invoice was open. A post_payment credit note means it was issued when the invoice was paid.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "voided_at": {"name": "voided_at", "description": "The time that the credit note was voided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_balance_transaction": {"name": "customer_balance_transaction", "description": "Customer balance transaction related to this credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The id of the invoice associated with this credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "refund_id": {"name": "refund_id", "description": "The id of the refund associated with this credit note.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"credit_note_data\"", "created_at": 1784670938.4356923, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.credit_note_line_item": {"database": "postgres", "schema": "public", "name": "credit_note_line_item", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.credit_note_line_item", "fqn": ["stripe", "staging", "stripe", "credit_note_line_item"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "credit_note_line_item_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "The different items that a credit note contains.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_id": {"name": "credit_note_id", "description": "The ID of the credit note this item is a part of.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The integer amount in cents representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "discount_amount": {"name": "discount_amount", "description": "The integer amount in cents representing the discount being credited for this line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "Description of the item being credited.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Has the value true if the object exists in live mode or the value false if the object exists in test mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "quantity": {"name": "quantity", "description": "The number of units of product being credited.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the credit note line item, one of invoice_line_item or custom_line_item. When the type is invoice_line_item there is an additional invoice_line_item property on the resource the value of which is the id of the credited line item on the invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "unit_amount": {"name": "unit_amount", "description": "The cost of each unit of product being credited.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "unit_amount_decimal": {"name": "unit_amount_decimal", "description": "Same as unit_amount, but contains a decimal value with at most 12 decimal places.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"credit_note_line_item_data\"", "created_at": 1784670938.436237, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.price": {"database": "postgres", "schema": "public", "name": "price", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.price", "fqn": ["stripe", "staging", "stripe", "price"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "price_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products.", "columns": {"active": {"name": "active", "description": "Whether the price can be used for new purchases.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "billing_scheme": {"name": "billing_scheme", "description": "Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in unit_amount or unit_amount_decimal) will be charged per unit in quantity (for prices with usage_type=licensed), or per unit of total usage (for prices with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.created"]}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase. Must be a supported currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The ID of the invoice item this record is a part of.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Whether record has been deleted.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Has the value true if the object exists in live mode or the value false if the object exists in test mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "lookup_key": {"name": "lookup_key", "description": "A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "nickname": {"name": "nickname", "description": "A brief description of the price, hidden from customers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "product_id": {"name": "product_id", "description": "The ID of the product this price is associated with.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "recurring_aggregate_usage": {"name": "recurring_aggregate_usage", "description": "Specifies a usage aggregation strategy for prices of usage_type=metered. Allowed values are sum for summing up all usage during a period, last_during_period for using the last usage record reported within a period, last_ever for using the last usage record ever (across period bounds) or max which uses the usage record with the maximum reported usage during a period. Defaults to sum.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "recurring_interval": {"name": "recurring_interval", "description": "Specifies billing frequency. Either day, week, month or year.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "recurring_interval_count": {"name": "recurring_interval_count", "description": "The number of intervals between subscription billings. For example, interval=month and interval_count=3 bills every 3 months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "recurring_usage_type": {"name": "recurring_usage_type", "description": "Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "tiers_mode": {"name": "tiers_mode", "description": "Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transform_quantity_divide_by": {"name": "transform_quantity_divide_by", "description": "Divide usage by this number. Transform Quantity applies a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transform_quantity_round": {"name": "transform_quantity_round", "description": "After division, either round the result up or down. Transform Quantity applies a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "One of one_time or recurring depending on whether the price is for a one-time purchase or a recurring (subscription) purchase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "unit_amount": {"name": "unit_amount", "description": "The unit amount in cents to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "unit_amount_decimal": {"name": "unit_amount_decimal", "description": "The unit amount in cents to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"price_data\"", "created_at": 1784670938.4368262, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.account": {"database": "postgres", "schema": "public", "name": "account", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.account", "fqn": ["stripe", "staging", "stripe", "account"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "account_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "business_profile_name": {"name": "business_profile_name", "description": "The customer-facing business name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "business_type": {"name": "business_type", "description": "The business type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "business_profile_mcc": {"name": "business_profile_mcc", "description": "The merchant category code for the account. MCCs are used to classify businesses based on the goods or services they provide.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "charges_enabled": {"name": "charges_enabled", "description": "Whether the account can create live charges.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_address_city": {"name": "company_address_city", "description": "City, district, suburb, town, or village.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_address_country": {"name": "company_address_country", "description": "Two-letter country code (ISO 3166-1 alpha-2).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_address_line_1": {"name": "company_address_line_1", "description": "Address line 1 (e.g., street, PO Box, or company name).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_address_line_2": {"name": "company_address_line_2", "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_address_postal_code": {"name": "company_address_postal_code", "description": "ZIP or postal code.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_address_state": {"name": "company_address_state", "description": "State, county, province, or region.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_name": {"name": "company_name", "description": "The company's legal name.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "company_phone": {"name": "company_phone", "description": "The company's phone number (used for verification).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "country": {"name": "country", "description": "The account's country.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": ["doc.stripe.created"]}, "default_currency": {"name": "default_currency", "description": "Three-letter ISO currency code representing the default currency for the account. This must be a currency that Stripe supports in the account's country.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "email": {"name": "email", "description": "An email address associated with the account. You can treat this as metadata; it is not used for authentication or messaging account holders.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Boolean of whether account has been deleted. Accounts created using test-mode keys can be deleted at any time. Standard accounts created using live-mode keys cannot be deleted. Custom or Express accounts created using live-mode keys can only be deleted once all balances are zero.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "payouts_enabled": {"name": "payouts_enabled", "description": "Boolean of whether payouts are enabled.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "Account type", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"account_data\"", "created_at": 1784670938.4374533, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.transfer": {"database": "postgres", "schema": "public", "name": "transfer", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.transfer", "fqn": ["stripe", "staging", "stripe", "transfer"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "transfer_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "A Transfer object is created when you move funds between Stripe accounts as part of Connect. Before April 6, 2017, transfers also represented movement of funds from a Stripe account to a card or bank account. That has since been moved to the Payout object. The Payout object represents money moving from a Stripe account to an external account (bank or debit card). The Transfer object now only represents money moving between Stripe accounts on a Connect platform.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "Amount in cents to be transferred.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount_reversed": {"name": "amount_reversed", "description": "Amount in cents reversed (can be less than the amount attribute on the transfer if a partial reversal was issued).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "balance_transaction_id": {"name": "balance_transaction_id", "description": "Balance transaction that describes the impact of this transfer on your account balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time that this record of the transfer was first created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase. Must be a supported currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "An arbitrary string attached to the object. Often useful for displaying to users.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "destination": {"name": "destination", "description": "ID of the Stripe account the transfer was sent to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "destination_payment": {"name": "destination_payment", "description": "If the destination is a Stripe account, the payment that the destination account received for the transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "destination_payment_id": {"name": "destination_payment_id", "description": "If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "metadata": {"name": "metadata", "description": "Custom metadata added to the record, in JSON string format", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "reversed": {"name": "reversed", "description": "Boolean of whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_transaction": {"name": "source_transaction", "description": "The source transaction related to this transfer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_transaction_id": {"name": "source_transaction_id", "description": "ID of the charge or payment that was used to fund the transfer. If null, the transfer was funded from the available balance.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "source_type": {"name": "source_type", "description": "The source balance this transfer came from. One of card, fpx, or bank_account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "transfer_group": {"name": "transfer_group", "description": "A string that identifies this transaction as part of a group. See the Connect documentation for details.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"transfer_data\"", "created_at": 1784670938.4381902, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.product": {"database": "postgres", "schema": "public", "name": "product", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.product", "fqn": ["stripe", "staging", "stripe", "product"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "product_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "A product object represents an individual product to be sold, with various attributes detailing its properties and behaviors.", "columns": {"id": {"name": "id", "description": "Unique identifier for the object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "active": {"name": "active", "description": "Whether the product is currently available for purchase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "attributes": {"name": "attributes", "description": "Key-value pairs that can be attached to a product object, useful for storing additional structured information.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "caption": {"name": "caption", "description": "A brief explanation or description of the product for display purposes.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "create": {"name": "create", "description": "Timestamp indicating when the product was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "deactivate_on": {"name": "deactivate_on", "description": "List of dates when the product will be deactivated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "description": {"name": "description", "description": "The product's description, meant to be displayable to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "images": {"name": "images", "description": "A list of up to 8 URLs of images for this product, meant to be displayable to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "is_deleted": {"name": "is_deleted", "description": "Indicates whether the product has been deleted.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates if this is a test product.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "name": {"name": "name", "description": "The product's name, meant to be displayable to the customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "shippable": {"name": "shippable", "description": "Whether this product is shipped (i.e., physical goods).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "statement_descriptor": {"name": "statement_descriptor", "description": "Extra information about a product which will appear on your customer's credit card statement.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "The type of the product (e.g., good, service).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "unit_label": {"name": "unit_label", "description": "A label that represents units of this product, included in receipts and invoices.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "updated": {"name": "updated", "description": "Time at which the object was last updated, measured in seconds since the Unix epoch.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "url": {"name": "url", "description": "A URL of a publicly-accessible webpage for this product.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"product_data\"", "created_at": 1784670938.438741, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.discount": {"database": "postgres", "schema": "public", "name": "discount", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.discount", "fqn": ["stripe", "staging", "stripe", "discount"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "discount_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "A discount represents the actual application of a coupon or promotion code. It contains information about when the discount began, when it will end, and what it is applied to.", "columns": {"id": {"name": "id", "description": "The ID of the discount object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type": {"name": "type", "description": "String representing the object's type.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "type_id": {"name": "type_id", "description": "Identifier of the related object type (e.g., coupon ID, promotion code).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount": {"name": "amount", "description": "The amount of discount applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "checkout_session_id": {"name": "checkout_session_id", "description": "The Checkout session that this discount is applied to, if it is applied to a particular session in payment mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "checkout_session_line_item_id": {"name": "checkout_session_line_item_id", "description": "The ID of the specific line item within the checkout session that the discount is applied to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "coupon_id": {"name": "coupon_id", "description": "The ID of the coupon applied to create this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "credit_note_line_item_id": {"name": "credit_note_line_item_id", "description": "The ID of the credit note line item associated with this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the customer associated with this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "end": {"name": "end", "description": "If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The invoice item id (or invoice line item id for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "promotion_code": {"name": "promotion_code", "description": "The promotion code applied to create this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "start": {"name": "start", "description": "The date that the coupon was applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The subscription that this coupon is applied to, if it is applied to a particular subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"discount_data\"", "created_at": 1784670938.4393024, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.subscription_discount": {"database": "postgres", "schema": "public", "name": "subscription_discount", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.subscription_discount", "fqn": ["stripe", "staging", "stripe", "subscription_discount"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "subscription_discount_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "A subscription discount represents the application of a coupon or promotion code specifically applied to a subscription. It contains information about when the discount began, when it will end, and what it is applied to.", "columns": {"id": {"name": "id", "description": "The ID of the subscription discount object.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "checkout_session": {"name": "checkout_session", "description": "The Checkout Session that this discount is applied to, if it is applied to a particular session in payment mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "coupon_id": {"name": "coupon_id", "description": "The ID of the coupon applied to create this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "customer_id": {"name": "customer_id", "description": "The ID of the customer associated with this discount.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "end": {"name": "end", "description": "If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_id": {"name": "invoice_id", "description": "The invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "invoice_item_id": {"name": "invoice_item_id", "description": "The invoice item id (or invoice line item id for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "start": {"name": "start", "description": "The date that the coupon was applied.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "subscription_id": {"name": "subscription_id", "description": "The subscription that this coupon is applied to, if it is applied to a particular subscription.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"subscription_discount_data\"", "created_at": 1784670938.4398344, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}, "source.stripe.stripe.coupon": {"database": "postgres", "schema": "public", "name": "coupon", "resource_type": "source", "package_name": "stripe", "path": "models/staging/src_stripe.yml", "original_file_path": "models/staging/src_stripe.yml", "unique_id": "source.stripe.stripe.coupon", "fqn": ["stripe", "staging", "stripe", "coupon"], "source_name": "stripe", "source_description": "", "loader": "fivetran", "identifier": "coupon_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "freshness": null, "external": null, "description": "A coupon represents a discount that can be applied to a subscription or invoice. It contains information about the coupon's duration, amount, and applicability.", "columns": {"id": {"name": "id", "description": "The ID of the coupon.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "amount_off": {"name": "amount_off", "description": "The amount taken off the total price in the selected currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "created": {"name": "created", "description": "Time at which the object was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "currency": {"name": "currency", "description": "Three-letter ISO currency code, in lowercase.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "duration": {"name": "duration", "description": "The duration of the coupon. Typically \"forever,\" \"once,\" or \"repeating.\"", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "duration_in_months": {"name": "duration_in_months", "description": "If the coupon does not last forever, the duration in months you can apply it. For a forever coupon, this attribute is null.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "livemode": {"name": "livemode", "description": "Indicates whether the coupon is in live mode or test mode.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "max_redemptions": {"name": "max_redemptions", "description": "The maximum number of times this coupon can be redeemed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "name": {"name": "name", "description": "Name of the coupon or promotion.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "percent_off": {"name": "percent_off", "description": "The percentage taken off the total price.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "redeem_by": {"name": "redeem_by", "description": "The date by which the coupon must be redeemed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "times_redeemed": {"name": "times_redeemed", "description": "The number of times this coupon has been redeemed.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}, "valid": {"name": "valid", "description": "Indicates whether the coupon can still be applied to a customer.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "config": {"meta": {}, "tags": []}, "tags": [], "granularity": null, "dimension": null, "entity": null, "doc_blocks": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true, "event_time": null, "freshness": null, "loaded_at_field": "_fivetran_synced", "loaded_at_query": null, "meta": {}, "tags": [], "static_analysis": null}, "patch_path": null, "unrendered_config": {"loaded_at_field": "_fivetran_synced", "enabled": true, "freshness": null, "loaded_at_query": null, "meta": {}, "tags": []}, "relation_name": "\"postgres\".\"public\".\"coupon_data\"", "created_at": 1784670938.440371, "unrendered_database": "{% if target.type != 'spark' %}{{ var('stripe_database', target.database) }}{% endif %}", "unrendered_schema": "{{var ('stripe_schema', 'stripe')}}", "doc_blocks": []}}, "macros": {"macro.dbt_postgres.postgres__create_table_as": {"name": "postgres__create_table_as", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__create_table_as", "macro_sql": "{% macro postgres__create_table_as(temporary, relation, sql) -%}\n {%- set unlogged = config.get('unlogged', default=false) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n\n create {% if temporary -%}\n temporary\n {%- elif unlogged -%}\n unlogged\n {%- endif %} table {{ relation }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {% endif -%}\n {% if contract_config.enforced and (not temporary) -%}\n {{ get_table_columns_and_constraints() }} ;\n insert into {{ relation }} (\n {{ adapter.dispatch('get_column_names', 'dbt')() }}\n )\n {%- set sql = get_select_subquery(sql) %}\n {% else %}\n as\n {% endif %}\n (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_table_columns_and_constraints", "macro.dbt.default__get_column_names", "macro.dbt.get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "temporary", "type": null, "description": ""}, {"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.2881615, "supported_languages": null}, "macro.dbt_postgres.postgres__get_create_index_sql": {"name": "postgres__get_create_index_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_create_index_sql", "macro_sql": "{% macro postgres__get_create_index_sql(relation, index_dict) -%}\n {%- set index_config = adapter.parse_index(index_dict) -%}\n {%- set comma_separated_columns = \", \".join(index_config.columns) -%}\n {%- set index_name = index_config.render(relation) -%}\n\n create {% if index_config.unique -%}\n unique\n {%- endif %} index if not exists\n \"{{ index_name }}\"\n on {{ relation }} {% if index_config.type -%}\n using {{ index_config.type }}\n {%- endif %}\n ({{ comma_separated_columns }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "index_dict", "type": null, "description": ""}], "created_at": 1784670933.2892628, "supported_languages": null}, "macro.dbt_postgres.postgres__create_schema": {"name": "postgres__create_schema", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__create_schema", "macro_sql": "{% macro postgres__create_schema(relation) -%}\n {% if relation.database -%}\n {{ adapter.verify_database(relation.database) }}\n {%- endif -%}\n {%- call statement('create_schema') -%}\n create schema if not exists {{ relation.without_identifier().include(database=False) }}\n {%- endcall -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.2898948, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_schema": {"name": "postgres__drop_schema", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__drop_schema", "macro_sql": "{% macro postgres__drop_schema(relation) -%}\n {% if relation.database -%}\n {{ adapter.verify_database(relation.database) }}\n {%- endif -%}\n {%- call statement('drop_schema') -%}\n drop schema if exists {{ relation.without_identifier().include(database=False) }} cascade\n {%- endcall -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.2905464, "supported_languages": null}, "macro.dbt_postgres.postgres__get_columns_in_relation": {"name": "postgres__get_columns_in_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_columns_in_relation", "macro_sql": "{% macro postgres__get_columns_in_relation(relation) -%}\n {% call statement('get_columns_in_relation', fetch_result=True) %}\n select\n column_name,\n data_type,\n character_maximum_length,\n numeric_precision,\n numeric_scale\n\n from {{ relation.information_schema('columns') }}\n where table_name = '{{ relation.identifier }}'\n {% if relation.schema %}\n and table_schema = '{{ relation.schema }}'\n {% endif %}\n order by ordinal_position\n\n {% endcall %}\n {% set table = load_result('get_columns_in_relation').table %}\n {{ return(sql_convert_columns_in_relation(table)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.sql_convert_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.2914963, "supported_languages": null}, "macro.dbt_postgres.postgres__list_relations_without_caching": {"name": "postgres__list_relations_without_caching", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__list_relations_without_caching", "macro_sql": "{% macro postgres__list_relations_without_caching(schema_relation) %}\n {% call statement('list_relations_without_caching', fetch_result=True) -%}\n select\n '{{ schema_relation.database }}' as database,\n tablename as name,\n schemaname as schema,\n 'table' as type\n from pg_tables\n where schemaname ilike '{{ schema_relation.schema }}'\n union all\n select\n '{{ schema_relation.database }}' as database,\n viewname as name,\n schemaname as schema,\n 'view' as type\n from pg_views\n where schemaname ilike '{{ schema_relation.schema }}'\n union all\n select\n '{{ schema_relation.database }}' as database,\n matviewname as name,\n schemaname as schema,\n 'materialized_view' as type\n from pg_matviews\n where schemaname ilike '{{ schema_relation.schema }}'\n union all\n select distinct\n '{{ schema_relation.database }}' as database,\n proname as name,\n ns.nspname as schema,\n 'function' as type\n from pg_proc\n join pg_namespace as ns on pronamespace = ns.oid\n where ns.nspname ilike '{{ schema_relation.schema }}'\n {% endcall %}\n {{ return(load_result('list_relations_without_caching').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_relation", "type": null, "description": ""}], "created_at": 1784670933.2924833, "supported_languages": null}, "macro.dbt_postgres.postgres__information_schema_name": {"name": "postgres__information_schema_name", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__information_schema_name", "macro_sql": "{% macro postgres__information_schema_name(database) -%}\n {% if database_name -%}\n {{ adapter.verify_database(database_name) }}\n {%- endif -%}\n information_schema\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "database", "type": null, "description": ""}], "created_at": 1784670933.2928486, "supported_languages": null}, "macro.dbt_postgres.postgres__list_schemas": {"name": "postgres__list_schemas", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__list_schemas", "macro_sql": "{% macro postgres__list_schemas(database) %}\n {% if database -%}\n {{ adapter.verify_database(database) }}\n {%- endif -%}\n {% call statement('list_schemas', fetch_result=True, auto_begin=False) %}\n select distinct nspname from pg_namespace\n {% endcall %}\n {{ return(load_result('list_schemas').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "database", "type": null, "description": ""}], "created_at": 1784670933.293539, "supported_languages": null}, "macro.dbt_postgres.postgres__check_schema_exists": {"name": "postgres__check_schema_exists", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__check_schema_exists", "macro_sql": "{% macro postgres__check_schema_exists(information_schema, schema) -%}\n {% if information_schema.database -%}\n {{ adapter.verify_database(information_schema.database) }}\n {%- endif -%}\n {% call statement('check_schema_exists', fetch_result=True, auto_begin=False) %}\n select count(*) from pg_namespace where nspname = '{{ schema }}'\n {% endcall %}\n {{ return(load_result('check_schema_exists').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "information_schema", "type": null, "description": ""}, {"name": "schema", "type": null, "description": ""}], "created_at": 1784670933.294316, "supported_languages": null}, "macro.dbt_postgres.postgres__make_relation_with_suffix": {"name": "postgres__make_relation_with_suffix", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_relation_with_suffix", "macro_sql": "{% macro postgres__make_relation_with_suffix(base_relation, suffix, dstring) %}\n {% if dstring %}\n {% set dt = modules.datetime.datetime.now() %}\n {% set dtstring = dt.strftime(\"%H%M%S%f\") %}\n {% set suffix = suffix ~ dtstring %}\n {% endif %}\n {% set suffix_length = suffix|length %}\n {% set relation_max_name_length = base_relation.relation_max_name_length() %}\n {% if suffix_length > relation_max_name_length %}\n {% do exceptions.raise_compiler_error('Relation suffix is too long (' ~ suffix_length ~ ' characters). Maximum length is ' ~ relation_max_name_length ~ ' characters.') %}\n {% endif %}\n {% set identifier = base_relation.identifier[:relation_max_name_length - suffix_length] ~ suffix %}\n\n {{ return(base_relation.incorporate(path={\"identifier\": identifier })) }}\n\n {% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "base_relation", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}, {"name": "dstring", "type": null, "description": ""}], "created_at": 1784670933.2959175, "supported_languages": null}, "macro.dbt_postgres.postgres__make_intermediate_relation": {"name": "postgres__make_intermediate_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_intermediate_relation", "macro_sql": "{% macro postgres__make_intermediate_relation(base_relation, suffix) %}\n {{ return(postgres__make_relation_with_suffix(base_relation, suffix, dstring=False)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "base_relation", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}], "created_at": 1784670933.2963283, "supported_languages": null}, "macro.dbt_postgres.postgres__make_temp_relation": {"name": "postgres__make_temp_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_temp_relation", "macro_sql": "{% macro postgres__make_temp_relation(base_relation, suffix) %}\n {% set temp_relation = postgres__make_relation_with_suffix(base_relation, suffix, dstring=True) %}\n {{ return(temp_relation.incorporate(path={\"schema\": none,\n \"database\": none})) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "base_relation", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}], "created_at": 1784670933.2969582, "supported_languages": null}, "macro.dbt_postgres.postgres__make_backup_relation": {"name": "postgres__make_backup_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_backup_relation", "macro_sql": "{% macro postgres__make_backup_relation(base_relation, backup_relation_type, suffix) %}\n {% set backup_relation = postgres__make_relation_with_suffix(base_relation, suffix, dstring=False) %}\n {{ return(backup_relation.incorporate(type=backup_relation_type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "base_relation", "type": null, "description": ""}, {"name": "backup_relation_type", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}], "created_at": 1784670933.2975135, "supported_languages": null}, "macro.dbt_postgres.postgres_escape_comment": {"name": "postgres_escape_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres_escape_comment", "macro_sql": "{% macro postgres_escape_comment(comment) -%}\n {% if comment is not string %}\n {% do exceptions.raise_compiler_error('cannot escape a non-string: ' ~ comment) %}\n {% endif %}\n {%- set magic = '$dbt_comment_literal_block$' -%}\n {%- if magic in comment -%}\n {%- do exceptions.raise_compiler_error('The string ' ~ magic ~ ' is not allowed in comments.') -%}\n {%- endif -%}\n {{ magic }}{{ comment }}{{ magic }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "comment", "type": null, "description": ""}], "created_at": 1784670933.2983708, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_relation_comment": {"name": "postgres__alter_relation_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__alter_relation_comment", "macro_sql": "{% macro postgres__alter_relation_comment(relation, comment) %}\n {% set escaped_comment = postgres_escape_comment(comment) %}\n {% if relation.type == 'materialized_view' -%}\n {% set relation_type = \"materialized view\" %}\n {%- else -%}\n {%- set relation_type = relation.type -%}\n {%- endif -%}\n comment on {{ relation_type }} {{ relation }} is {{ escaped_comment }};\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "comment", "type": null, "description": ""}], "created_at": 1784670933.2991388, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_column_comment": {"name": "postgres__alter_column_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__alter_column_comment", "macro_sql": "{% macro postgres__alter_column_comment(relation, column_dict) %}\n {% set existing_columns = adapter.get_columns_in_relation(relation) | map(attribute=\"name\") | list %}\n {% for column_name in column_dict if (column_name in existing_columns) %}\n {% set comment = column_dict[column_name]['description'] %}\n {% set escaped_comment = postgres_escape_comment(comment) %}\n comment on column {{ relation }}.{{ adapter.quote(column_name) if column_dict[column_name]['quote'] else column_name }} is {{ escaped_comment }};\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "column_dict", "type": null, "description": ""}], "created_at": 1784670933.300433, "supported_languages": null}, "macro.dbt_postgres.postgres__get_show_grant_sql": {"name": "postgres__get_show_grant_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_show_grant_sql", "macro_sql": "\n\n{%- macro postgres__get_show_grant_sql(relation) -%}\n select grantee, privilege_type\n from {{ relation.information_schema('role_table_grants') }}\n where grantor = current_role\n and grantee != current_role\n and table_schema = '{{ relation.schema }}'\n and table_name = '{{ relation.identifier }}'\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3008401, "supported_languages": null}, "macro.dbt_postgres.postgres__copy_grants": {"name": "postgres__copy_grants", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__copy_grants", "macro_sql": "{% macro postgres__copy_grants() %}\n {{ return(False) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.301104, "supported_languages": null}, "macro.dbt_postgres.postgres__get_show_indexes_sql": {"name": "postgres__get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_show_indexes_sql", "macro_sql": "{% macro postgres__get_show_indexes_sql(relation) %}\n select\n i.relname as name,\n m.amname as method,\n ix.indisunique as \"unique\",\n array_to_string(array_agg(a.attname), ',') as column_names\n from pg_index ix\n join pg_class i\n on i.oid = ix.indexrelid\n join pg_am m\n on m.oid=i.relam\n join pg_class t\n on t.oid = ix.indrelid\n join pg_namespace n\n on n.oid = t.relnamespace\n join pg_attribute a\n on a.attrelid = t.oid\n and a.attnum = ANY(ix.indkey)\n where t.relname = '{{ relation.identifier }}'\n and n.nspname = '{{ relation.schema }}'\n and t.relkind in ('r', 'm')\n group by 1, 2, 3\n order by 1, 2, 3\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3014505, "supported_languages": null}, "macro.dbt_postgres.postgres__get_drop_index_sql": {"name": "postgres__get_drop_index_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_drop_index_sql", "macro_sql": "\n\n\n{%- macro postgres__get_drop_index_sql(relation, index_name) -%}\n drop index if exists \"{{ relation.schema }}\".\"{{ index_name }}\"\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "index_name", "type": null, "description": ""}], "created_at": 1784670933.3017378, "supported_languages": null}, "macro.dbt_postgres.postgres__get_catalog_relations": {"name": "postgres__get_catalog_relations", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "unique_id": "macro.dbt_postgres.postgres__get_catalog_relations", "macro_sql": "{% macro postgres__get_catalog_relations(information_schema, relations) -%}\n {%- call statement('catalog', fetch_result=True) -%}\n\n {#\n If the user has multiple databases set and the first one is wrong, this will fail.\n But we won't fail in the case where there are multiple quoting-difference-only dbs, which is better.\n #}\n {% set database = information_schema.database %}\n {{ adapter.verify_database(database) }}\n\n select\n '{{ database }}' as table_database,\n sch.nspname as table_schema,\n tbl.relname as table_name,\n case tbl.relkind\n when 'v' then 'VIEW'\n when 'm' then 'MATERIALIZED VIEW'\n else 'BASE TABLE'\n end as table_type,\n tbl_desc.description as table_comment,\n col.attname as column_name,\n col.attnum as column_index,\n pg_catalog.format_type(col.atttypid, col.atttypmod) as column_type,\n col_desc.description as column_comment,\n pg_get_userbyid(tbl.relowner) as table_owner\n\n from pg_catalog.pg_namespace sch\n join pg_catalog.pg_class tbl on tbl.relnamespace = sch.oid\n join pg_catalog.pg_attribute col on col.attrelid = tbl.oid\n left outer join pg_catalog.pg_description tbl_desc on (tbl_desc.objoid = tbl.oid and tbl_desc.objsubid = 0)\n left outer join pg_catalog.pg_description col_desc on (col_desc.objoid = tbl.oid and col_desc.objsubid = col.attnum)\n where (\n {%- for relation in relations -%}\n {%- if relation.identifier -%}\n (upper(sch.nspname) = upper('{{ relation.schema }}') and\n upper(tbl.relname) = upper('{{ relation.identifier }}'))\n {%- else-%}\n upper(sch.nspname) = upper('{{ relation.schema }}')\n {%- endif -%}\n {%- if not loop.last %} or {% endif -%}\n {%- endfor -%}\n )\n and not pg_is_other_temp_schema(sch.oid) -- not a temporary schema belonging to another session\n and tbl.relpersistence in ('p', 'u') -- [p]ermanent table or [u]nlogged table. Exclude [t]emporary tables\n and tbl.relkind in ('r', 'v', 'f', 'p', 'm') -- o[r]dinary table, [v]iew, [f]oreign table, [p]artitioned table, [m]aterialized view. Other values are [i]ndex, [S]equence, [c]omposite type, [t]OAST table\n and col.attnum > 0 -- negative numbers are used for system columns such as oid\n and not col.attisdropped -- column as not been dropped\n\n order by\n sch.nspname,\n tbl.relname,\n col.attnum\n\n {%- endcall -%}\n\n {{ return(load_result('catalog').table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "information_schema", "type": null, "description": ""}, {"name": "relations", "type": null, "description": ""}], "created_at": 1784670933.303672, "supported_languages": null}, "macro.dbt_postgres.postgres__get_catalog": {"name": "postgres__get_catalog", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "unique_id": "macro.dbt_postgres.postgres__get_catalog", "macro_sql": "{% macro postgres__get_catalog(information_schema, schemas) -%}\n {%- set relations = [] -%}\n {%- for schema in schemas -%}\n {%- set dummy = relations.append({'schema': schema}) -%}\n {%- endfor -%}\n {{ return(postgres__get_catalog_relations(information_schema, relations)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "information_schema", "type": null, "description": ""}, {"name": "schemas", "type": null, "description": ""}], "created_at": 1784670933.3043897, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp": {"name": "postgres__current_timestamp", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp", "macro_sql": "{% macro postgres__current_timestamp() -%}\n now()\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3048115, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_string_as_time": {"name": "postgres__snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_string_as_time", "macro_sql": "{% macro postgres__snapshot_string_as_time(timestamp) -%}\n {%- set result = \"'\" ~ timestamp ~ \"'::timestamp without time zone\" -%}\n {{ return(result) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "timestamp", "type": null, "description": ""}], "created_at": 1784670933.3051984, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_get_time": {"name": "postgres__snapshot_get_time", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_get_time", "macro_sql": "{% macro postgres__snapshot_get_time() -%}\n {{ current_timestamp() }}::timestamp without time zone\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.305424, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_backcompat": {"name": "postgres__current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp_backcompat", "macro_sql": "{% macro postgres__current_timestamp_backcompat() %}\n current_timestamp::{{ type_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3056445, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat": {"name": "postgres__current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat", "macro_sql": "{% macro postgres__current_timestamp_in_utc_backcompat() %}\n (current_timestamp at time zone 'utc')::{{ type_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3058667, "supported_languages": null}, "macro.dbt_postgres.postgres__get_relations": {"name": "postgres__get_relations", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations.sql", "original_file_path": "macros/relations.sql", "unique_id": "macro.dbt_postgres.postgres__get_relations", "macro_sql": "{% macro postgres__get_relations() -%}\n\n {#\n -- in pg_depend, objid is the dependent, refobjid is the referenced object\n -- > a pg_depend entry indicates that the referenced object cannot be\n -- > dropped without also dropping the dependent object.\n #}\n\n {%- call statement('relations', fetch_result=True) -%}\n select distinct\n dependent_namespace.nspname as dependent_schema,\n dependent_class.relname as dependent_name,\n referenced_namespace.nspname as referenced_schema,\n referenced_class.relname as referenced_name\n\n -- Query for views: views are entries in pg_class with an entry in pg_rewrite, but we avoid\n -- a seq scan on pg_rewrite by leveraging the fact there is an \"internal\" row in pg_depend for\n -- the view...\n from pg_class as dependent_class\n join pg_namespace as dependent_namespace on dependent_namespace.oid = dependent_class.relnamespace\n join pg_depend as dependent_depend on dependent_depend.refobjid = dependent_class.oid\n and dependent_depend.classid = 'pg_rewrite'::regclass\n and dependent_depend.refclassid = 'pg_class'::regclass\n and dependent_depend.deptype = 'i'\n\n -- ... and via pg_depend (that has a row per column, hence the need for \"distinct\" above, and\n -- making sure to exclude the internal row to avoid a view appearing to depend on itself)...\n join pg_depend as joining_depend on joining_depend.objid = dependent_depend.objid\n and joining_depend.classid = 'pg_rewrite'::regclass\n and joining_depend.refclassid = 'pg_class'::regclass\n and joining_depend.refobjid != dependent_depend.refobjid\n\n -- ... we can find the tables they query from in pg_class, but excluding system tables. Note we\n -- don't need need to exclude _dependent_ system tables, because they only query from other\n -- system tables, and so are automatically excluded by excluding _referenced_ system tables\n join pg_class as referenced_class on referenced_class.oid = joining_depend.refobjid\n join pg_namespace as referenced_namespace on referenced_namespace.oid = referenced_class.relnamespace\n and referenced_namespace.nspname != 'information_schema'\n and referenced_namespace.nspname not like 'pg\\_%'\n\n order by\n dependent_schema, dependent_name, referenced_schema, referenced_name;\n\n {%- endcall -%}\n\n {{ return(load_result('relations').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3068485, "supported_languages": null}, "macro.dbt_postgres.postgres_get_relations": {"name": "postgres_get_relations", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations.sql", "original_file_path": "macros/relations.sql", "unique_id": "macro.dbt_postgres.postgres_get_relations", "macro_sql": "{% macro postgres_get_relations() %}\n {{ return(postgres__get_relations()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3071356, "supported_languages": null}, "macro.dbt_postgres.postgres__datediff": {"name": "postgres__datediff", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt_postgres.postgres__datediff", "macro_sql": "{% macro postgres__datediff(first_date, second_date, datepart) -%}\n\n {% if datepart == 'year' %}\n (date_part('year', ({{second_date}})::date) - date_part('year', ({{first_date}})::date))\n {% elif datepart == 'quarter' %}\n ({{ datediff(first_date, second_date, 'year') }} * 4 + date_part('quarter', ({{second_date}})::date) - date_part('quarter', ({{first_date}})::date))\n {% elif datepart == 'month' %}\n ({{ datediff(first_date, second_date, 'year') }} * 12 + date_part('month', ({{second_date}})::date) - date_part('month', ({{first_date}})::date))\n {% elif datepart == 'day' %}\n (({{second_date}})::date - ({{first_date}})::date)\n {% elif datepart == 'week' %}\n ({{ datediff(first_date, second_date, 'day') }} / 7 + case\n when date_part('dow', ({{first_date}})::timestamp) <= date_part('dow', ({{second_date}})::timestamp) then\n case when {{first_date}} <= {{second_date}} then 0 else -1 end\n else\n case when {{first_date}} <= {{second_date}} then 1 else 0 end\n end)\n {% elif datepart == 'hour' %}\n ({{ datediff(first_date, second_date, 'day') }} * 24 + date_part('hour', ({{second_date}})::timestamp) - date_part('hour', ({{first_date}})::timestamp))\n {% elif datepart == 'minute' %}\n ({{ datediff(first_date, second_date, 'hour') }} * 60 + date_part('minute', ({{second_date}})::timestamp) - date_part('minute', ({{first_date}})::timestamp))\n {% elif datepart == 'second' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60 + floor(date_part('second', ({{second_date}})::timestamp)) - floor(date_part('second', ({{first_date}})::timestamp)))\n {% elif datepart == 'millisecond' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60000 + floor(date_part('millisecond', ({{second_date}})::timestamp)) - floor(date_part('millisecond', ({{first_date}})::timestamp)))\n {% elif datepart == 'microsecond' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60000000 + floor(date_part('microsecond', ({{second_date}})::timestamp)) - floor(date_part('microsecond', ({{first_date}})::timestamp)))\n {% else %}\n {{ exceptions.raise_compiler_error(\"Unsupported datepart for macro datediff in postgres: {!r}\".format(datepart)) }}\n {% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "first_date", "type": null, "description": ""}, {"name": "second_date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.3113656, "supported_languages": null}, "macro.dbt_postgres.postgres__last_day": {"name": "postgres__last_day", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt_postgres.postgres__last_day", "macro_sql": "{% macro postgres__last_day(date, datepart) -%}\n\n {%- if datepart == 'quarter' -%}\n -- postgres dateadd does not support quarter interval.\n cast(\n {{dbt.dateadd('day', '-1',\n dbt.dateadd('month', '3', dbt.date_trunc(datepart, date))\n )}}\n as date)\n {%- else -%}\n {{dbt.default_last_day(date, datepart)}}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc", "macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.3123507, "supported_languages": null}, "macro.dbt_postgres.postgres__dateadd": {"name": "postgres__dateadd", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt_postgres.postgres__dateadd", "macro_sql": "{% macro postgres__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n {{ from_date_or_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "from_date_or_timestamp", "type": null, "description": ""}], "created_at": 1784670933.3127875, "supported_languages": null}, "macro.dbt_postgres.postgres__any_value": {"name": "postgres__any_value", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt_postgres.postgres__any_value", "macro_sql": "{% macro postgres__any_value(expression) -%}\n\n min({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expression", "type": null, "description": ""}], "created_at": 1784670933.3131073, "supported_languages": null}, "macro.dbt_postgres.postgres__listagg": {"name": "postgres__listagg", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt_postgres.postgres__listagg", "macro_sql": "{% macro postgres__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}\n\n {% if limit_num -%}\n array_to_string(\n (array_agg(\n {{ measure }}\n {% if order_by_clause -%}\n {{ order_by_clause }}\n {%- endif %}\n ))[1:{{ limit_num }}],\n {{ delimiter_text }}\n )\n {%- else %}\n string_agg(\n {{ measure }},\n {{ delimiter_text }}\n {% if order_by_clause -%}\n {{ order_by_clause }}\n {%- endif %}\n )\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "measure", "type": null, "description": ""}, {"name": "delimiter_text", "type": null, "description": ""}, {"name": "order_by_clause", "type": null, "description": ""}, {"name": "limit_num", "type": null, "description": ""}], "created_at": 1784670933.3141298, "supported_languages": null}, "macro.dbt_postgres.postgres__equals": {"name": "postgres__equals", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/equals.sql", "original_file_path": "macros/utils/equals.sql", "unique_id": "macro.dbt_postgres.postgres__equals", "macro_sql": "{% macro postgres__equals(expr1, expr2) -%}\n{%- if adapter.behavior.enable_truthy_nulls_equals_macro.no_warn %}\n ({{ expr1 }} IS NOT DISTINCT FROM {{ expr2 }})\n{%- else -%}\n ({{ expr1 }} = {{ expr2 }})\n{%- endif %}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expr1", "type": null, "description": ""}, {"name": "expr2", "type": null, "description": ""}], "created_at": 1784670933.3147752, "supported_languages": null}, "macro.dbt_postgres.postgres__split_part": {"name": "postgres__split_part", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt_postgres.postgres__split_part", "macro_sql": "{% macro postgres__split_part(string_text, delimiter_text, part_number) %}\n\n {% if part_number >= 0 %}\n {{ dbt.default__split_part(string_text, delimiter_text, part_number) }}\n {% else %}\n {{ dbt._split_part_negative(string_text, delimiter_text, part_number) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__split_part", "macro.dbt._split_part_negative"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string_text", "type": null, "description": ""}, {"name": "delimiter_text", "type": null, "description": ""}, {"name": "part_number", "type": null, "description": ""}], "created_at": 1784670933.3155587, "supported_languages": null}, "macro.dbt_postgres.postgres__get_incremental_default_sql": {"name": "postgres__get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/incremental_strategies.sql", "original_file_path": "macros/materializations/incremental_strategies.sql", "unique_id": "macro.dbt_postgres.postgres__get_incremental_default_sql", "macro_sql": "{% macro postgres__get_incremental_default_sql(arg_dict) %}\n\n {% if arg_dict[\"unique_key\"] %}\n {% do return(get_incremental_delete_insert_sql(arg_dict)) %}\n {% else %}\n {% do return(get_incremental_append_sql(arg_dict)) %}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_incremental_delete_insert_sql", "macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.3164403, "supported_languages": null}, "macro.dbt_postgres.postgres__get_incremental_microbatch_sql": {"name": "postgres__get_incremental_microbatch_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/incremental_strategies.sql", "original_file_path": "macros/materializations/incremental_strategies.sql", "unique_id": "macro.dbt_postgres.postgres__get_incremental_microbatch_sql", "macro_sql": "{% macro postgres__get_incremental_microbatch_sql(arg_dict) %}\n\n {% if arg_dict[\"unique_key\"] %}\n {% do return(adapter.dispatch('get_incremental_merge_sql', 'dbt')(arg_dict)) %}\n {% else %}\n {{ exceptions.raise_compiler_error(\"dbt-postgres 'microbatch' requires a `unique_key` config\") }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_incremental_merge_sql", "macro.dbt.default__get_incremental_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.3171043, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_merge_sql": {"name": "postgres__snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshot_merge.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_merge_sql", "macro_sql": "{% macro postgres__snapshot_merge_sql(target, source, insert_cols) -%}\n {%- set insert_cols_csv = insert_cols | join(', ') -%}\n\n {%- set columns = config.get(\"snapshot_table_column_names\") or get_snapshot_table_column_names() -%}\n\n update {{ target }}\n set {{ columns.dbt_valid_to }} = DBT_INTERNAL_SOURCE.{{ columns.dbt_valid_to }}\n from {{ source }} as DBT_INTERNAL_SOURCE\n where DBT_INTERNAL_SOURCE.{{ columns.dbt_scd_id }}::text = {{ target }}.{{ columns.dbt_scd_id }}::text\n and DBT_INTERNAL_SOURCE.dbt_change_type::text in ('update'::text, 'delete'::text)\n {% if config.get(\"dbt_valid_to_current\") %}\n and ({{ target }}.{{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }} or {{ target }}.{{ columns.dbt_valid_to }} is null);\n {% else %}\n and {{ target }}.{{ columns.dbt_valid_to }} is null;\n {% endif %}\n\n\n insert into {{ target }} ({{ insert_cols_csv }})\n select {% for column in insert_cols -%}\n DBT_INTERNAL_SOURCE.{{ column }} {%- if not loop.last %}, {%- endif %}\n {%- endfor %}\n from {{ source }} as DBT_INTERNAL_SOURCE\n where DBT_INTERNAL_SOURCE.dbt_change_type::text = 'insert'::text;\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target", "type": null, "description": ""}, {"name": "source", "type": null, "description": ""}, {"name": "insert_cols", "type": null, "description": ""}], "created_at": 1784670933.3193164, "supported_languages": null}, "macro.dbt_postgres.postgres__formatted_scalar_function_args_sql": {"name": "postgres__formatted_scalar_function_args_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt_postgres.postgres__formatted_scalar_function_args_sql", "macro_sql": "{% macro postgres__formatted_scalar_function_args_sql() %}\n {% set args = [] %}\n {% for arg in model.arguments -%}\n {% set default_value = arg.get('default_value', none) %}\n {% if default_value != none %}\n {%- do args.append(arg.name ~ ' ' ~ arg.data_type ~ ' DEFAULT ' ~ default_value) -%}\n {% else %}\n {%- do args.append(arg.name ~ ' ' ~ arg.data_type) -%}\n {% endif %}\n {%- endfor %}\n {{ args | join(', ') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3207076, "supported_languages": null}, "macro.dbt_postgres.postgres__get_rename_table_sql": {"name": "postgres__get_rename_table_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt_postgres.postgres__get_rename_table_sql", "macro_sql": "{% macro postgres__get_rename_table_sql(relation, new_name) %}\n alter table {{ relation }} rename to {{ new_name }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "new_name", "type": null, "description": ""}], "created_at": 1784670933.3210902, "supported_languages": null}, "macro.dbt_postgres.postgres__get_replace_table_sql": {"name": "postgres__get_replace_table_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt_postgres.postgres__get_replace_table_sql", "macro_sql": "{% macro postgres__get_replace_table_sql(relation, sql) -%}\n\n {%- set sql_header = config.get('sql_header', none) -%}\n {{ sql_header if sql_header is not none }}\n\n create or replace table {{ relation }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {{ get_table_columns_and_constraints() }}\n {%- set sql = get_select_subquery(sql) %}\n {% endif %}\n as (\n {{ sql }}\n );\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_table_columns_and_constraints", "macro.dbt.get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.3223243, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_table": {"name": "postgres__drop_table", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt_postgres.postgres__drop_table", "macro_sql": "{% macro postgres__drop_table(relation) -%}\n drop table if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3226223, "supported_languages": null}, "macro.dbt_postgres.postgres__get_rename_view_sql": {"name": "postgres__get_rename_view_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt_postgres.postgres__get_rename_view_sql", "macro_sql": "{% macro postgres__get_rename_view_sql(relation, new_name) %}\n alter view {{ relation }} rename to {{ new_name }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "new_name", "type": null, "description": ""}], "created_at": 1784670933.3229697, "supported_languages": null}, "macro.dbt_postgres.postgres__get_replace_view_sql": {"name": "postgres__get_replace_view_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt_postgres.postgres__get_replace_view_sql", "macro_sql": "{% macro postgres__get_replace_view_sql(relation, sql) -%}\n\n {%- set sql_header = config.get('sql_header', none) -%}\n {{ sql_header if sql_header is not none }}\n\n create or replace view {{ relation }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {%- endif %}\n as (\n {{ sql }}\n );\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.3241174, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_view": {"name": "postgres__drop_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt_postgres.postgres__drop_view", "macro_sql": "{% macro postgres__drop_view(relation) -%}\n drop view if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.324414, "supported_languages": null}, "macro.dbt_postgres.postgres__get_rename_materialized_view_sql": {"name": "postgres__get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt_postgres.postgres__get_rename_materialized_view_sql", "macro_sql": "{% macro postgres__get_rename_materialized_view_sql(relation, new_name) %}\n alter materialized view {{ relation }} rename to {{ new_name }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "new_name", "type": null, "description": ""}], "created_at": 1784670933.3247595, "supported_languages": null}, "macro.dbt_postgres.postgres__refresh_materialized_view": {"name": "postgres__refresh_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt_postgres.postgres__refresh_materialized_view", "macro_sql": "{% macro postgres__refresh_materialized_view(relation) %}\n refresh materialized view {{ relation }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3250363, "supported_languages": null}, "macro.dbt_postgres.postgres__get_create_materialized_view_as_sql": {"name": "postgres__get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt_postgres.postgres__get_create_materialized_view_as_sql", "macro_sql": "{% macro postgres__get_create_materialized_view_as_sql(relation, sql) %}\n create materialized view if not exists {{ relation }} as {{ sql }};\n\n {% for _index_dict in config.get('indexes', []) -%}\n {{- get_create_index_sql(relation, _index_dict) -}}{{ ';' if not loop.last else \"\" }}\n {%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.325869, "supported_languages": null}, "macro.dbt_postgres.postgres__describe_materialized_view": {"name": "postgres__describe_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/describe.sql", "original_file_path": "macros/relations/materialized_view/describe.sql", "unique_id": "macro.dbt_postgres.postgres__describe_materialized_view", "macro_sql": "{% macro postgres__describe_materialized_view(relation) %}\n -- for now just get the indexes, we don't need the name or the query yet\n {% set _indexes = run_query(get_show_indexes_sql(relation)) %}\n {% do return({'indexes': _indexes}) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.get_show_indexes_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3264785, "supported_languages": null}, "macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql": {"name": "postgres__get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql", "macro_sql": "{% macro postgres__get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n\n -- apply a full refresh immediately if needed\n {% if configuration_changes.requires_full_refresh %}\n\n {{ get_replace_sql(existing_relation, relation, sql) }}\n\n -- otherwise apply individual changes as needed\n {% else %}\n\n {{ postgres__update_indexes_on_materialized_view(relation, configuration_changes.indexes) }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_replace_sql", "macro.dbt_postgres.postgres__update_indexes_on_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "configuration_changes", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}, {"name": "existing_relation", "type": null, "description": ""}, {"name": "backup_relation", "type": null, "description": ""}, {"name": "intermediate_relation", "type": null, "description": ""}], "created_at": 1784670933.3275344, "supported_languages": null}, "macro.dbt_postgres.postgres__update_indexes_on_materialized_view": {"name": "postgres__update_indexes_on_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt_postgres.postgres__update_indexes_on_materialized_view", "macro_sql": "\n\n\n{%- macro postgres__update_indexes_on_materialized_view(relation, index_changes) -%}\n {{- log(\"Applying UPDATE INDEXES to: \" ~ relation) -}}\n\n {%- for _index_change in index_changes -%}\n {%- set _index = _index_change.context -%}\n\n {%- if _index_change.action == \"drop\" -%}\n\n {{ postgres__get_drop_index_sql(relation, _index.name) }}\n\n {%- elif _index_change.action == \"create\" -%}\n\n {{ postgres__get_create_index_sql(relation, _index.as_node_config) }}\n\n {%- endif -%}\n\t{{ ';' if not loop.last else \"\" }}\n\n {%- endfor -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_drop_index_sql", "macro.dbt_postgres.postgres__get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "index_changes", "type": null, "description": ""}], "created_at": 1784670933.3286042, "supported_languages": null}, "macro.dbt_postgres.postgres__get_materialized_view_configuration_changes": {"name": "postgres__get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt_postgres.postgres__get_materialized_view_configuration_changes", "macro_sql": "{% macro postgres__get_materialized_view_configuration_changes(existing_relation, new_config) %}\n {% set _existing_materialized_view = postgres__describe_materialized_view(existing_relation) %}\n {% set _configuration_changes = existing_relation.get_materialized_view_config_change_collection(_existing_materialized_view, new_config.model) %}\n {% do return(_configuration_changes) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__describe_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "existing_relation", "type": null, "description": ""}, {"name": "new_config", "type": null, "description": ""}], "created_at": 1784670933.329214, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_materialized_view": {"name": "postgres__drop_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt_postgres.postgres__drop_materialized_view", "macro_sql": "{% macro postgres__drop_materialized_view(relation) -%}\n drop materialized view if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3295143, "supported_languages": null}, "macro.dbt.get_show_sql": {"name": "get_show_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.get_show_sql", "macro_sql": "{% macro get_show_sql(compiled_code, sql_header, limit) -%}\n {%- if sql_header is not none -%}\n {{ sql_header }}\n {%- endif %}\n {{ get_limit_subquery_sql(compiled_code, limit) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_limit_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "compiled_code", "type": null, "description": ""}, {"name": "sql_header", "type": null, "description": ""}, {"name": "limit", "type": null, "description": ""}], "created_at": 1784670933.3302789, "supported_languages": null}, "macro.dbt.get_limit_subquery_sql": {"name": "get_limit_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.get_limit_subquery_sql", "macro_sql": "\n{%- macro get_limit_subquery_sql(sql, limit) -%}\n {{ adapter.dispatch('get_limit_sql', 'dbt')(sql, limit) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__get_limit_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}, {"name": "limit", "type": null, "description": ""}], "created_at": 1784670933.3306525, "supported_languages": null}, "macro.dbt.default__get_limit_sql": {"name": "default__get_limit_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.default__get_limit_sql", "macro_sql": "{% macro default__get_limit_sql(sql, limit) %}\n {{ sql }}\n {% if limit is not none %}\n limit {{ limit }}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}, {"name": "limit", "type": null, "description": ""}], "created_at": 1784670933.3310366, "supported_languages": null}, "macro.dbt.validate_sql": {"name": "validate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/validate_sql.sql", "original_file_path": "macros/adapters/validate_sql.sql", "unique_id": "macro.dbt.validate_sql", "macro_sql": "{% macro validate_sql(sql) -%}\n {{ return(adapter.dispatch('validate_sql', 'dbt')(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__validate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.3315957, "supported_languages": null}, "macro.dbt.default__validate_sql": {"name": "default__validate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/validate_sql.sql", "original_file_path": "macros/adapters/validate_sql.sql", "unique_id": "macro.dbt.default__validate_sql", "macro_sql": "{% macro default__validate_sql(sql) -%}\n {% call statement('validate_sql') -%}\n explain {{ sql }}\n {% endcall %}\n {{ return(load_result('validate_sql')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.3320868, "supported_languages": null}, "macro.dbt.is_core_v2": {"name": "is_core_v2", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/runtime.sql", "original_file_path": "macros/adapters/runtime.sql", "unique_id": "macro.dbt.is_core_v2", "macro_sql": "{% macro is_core_v2() -%}\n {%- set major_version = (dbt_version.split('.') | first) | int -%}\n {{ return(major_version == 2) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3327305, "supported_languages": null}, "macro.dbt.create_schema": {"name": "create_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.create_schema", "macro_sql": "{% macro create_schema(relation) -%}\n {{ adapter.dispatch('create_schema', 'dbt')(relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3333576, "supported_languages": null}, "macro.dbt.default__create_schema": {"name": "default__create_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.default__create_schema", "macro_sql": "{% macro default__create_schema(relation) -%}\n {%- call statement('create_schema') -%}\n create schema if not exists {{ relation.without_identifier() }}\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3337464, "supported_languages": null}, "macro.dbt.drop_schema": {"name": "drop_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.drop_schema", "macro_sql": "{% macro drop_schema(relation) -%}\n {{ adapter.dispatch('drop_schema', 'dbt')(relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3340974, "supported_languages": null}, "macro.dbt.default__drop_schema": {"name": "default__drop_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.default__drop_schema", "macro_sql": "{% macro default__drop_schema(relation) -%}\n {%- call statement('drop_schema') -%}\n drop schema if exists {{ relation.without_identifier() }} cascade\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.334475, "supported_languages": null}, "macro.dbt.get_create_index_sql": {"name": "get_create_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_create_index_sql", "macro_sql": "{% macro get_create_index_sql(relation, index_dict) -%}\n {{ return(adapter.dispatch('get_create_index_sql', 'dbt')(relation, index_dict)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "index_dict", "type": null, "description": ""}], "created_at": 1784670933.3354104, "supported_languages": null}, "macro.dbt.default__get_create_index_sql": {"name": "default__get_create_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_create_index_sql", "macro_sql": "{% macro default__get_create_index_sql(relation, index_dict) -%}\n {% do return(None) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "index_dict", "type": null, "description": ""}], "created_at": 1784670933.335695, "supported_languages": null}, "macro.dbt.create_indexes": {"name": "create_indexes", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.create_indexes", "macro_sql": "{% macro create_indexes(relation) -%}\n {{ adapter.dispatch('create_indexes', 'dbt')(relation) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3360105, "supported_languages": null}, "macro.dbt.default__create_indexes": {"name": "default__create_indexes", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__create_indexes", "macro_sql": "{% macro default__create_indexes(relation) -%}\n {%- set _indexes = config.get('indexes', default=[]) -%}\n\n {% for _index_dict in _indexes %}\n {% set create_index_sql = get_create_index_sql(relation, _index_dict) %}\n {% if create_index_sql %}\n {% do run_query(create_index_sql) %}\n {% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_create_index_sql", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.336807, "supported_languages": null}, "macro.dbt.get_drop_index_sql": {"name": "get_drop_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_drop_index_sql", "macro_sql": "{% macro get_drop_index_sql(relation, index_name) -%}\n {{ adapter.dispatch('get_drop_index_sql', 'dbt')(relation, index_name) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_drop_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "index_name", "type": null, "description": ""}], "created_at": 1784670933.3371987, "supported_languages": null}, "macro.dbt.default__get_drop_index_sql": {"name": "default__get_drop_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_drop_index_sql", "macro_sql": "{% macro default__get_drop_index_sql(relation, index_name) -%}\n {{ exceptions.raise_compiler_error(\"`get_drop_index_sql has not been implemented for this adapter.\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "index_name", "type": null, "description": ""}], "created_at": 1784670933.3374825, "supported_languages": null}, "macro.dbt.get_show_indexes_sql": {"name": "get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_show_indexes_sql", "macro_sql": "{% macro get_show_indexes_sql(relation) -%}\n {{ adapter.dispatch('get_show_indexes_sql', 'dbt')(relation) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_show_indexes_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3378043, "supported_languages": null}, "macro.dbt.default__get_show_indexes_sql": {"name": "default__get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_show_indexes_sql", "macro_sql": "{% macro default__get_show_indexes_sql(relation) -%}\n {{ exceptions.raise_compiler_error(\"`get_show_indexes_sql has not been implemented for this adapter.\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.338082, "supported_languages": null}, "macro.dbt.current_timestamp": {"name": "current_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp", "macro_sql": "{%- macro current_timestamp() -%}\n {{ adapter.dispatch('current_timestamp', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3389523, "supported_languages": null}, "macro.dbt.default__current_timestamp": {"name": "default__current_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp", "macro_sql": "{% macro default__current_timestamp() -%}\n {{ exceptions.raise_not_implemented(\n 'current_timestamp macro not implemented for adapter ' + adapter.type()) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3392859, "supported_languages": null}, "macro.dbt.snapshot_get_time": {"name": "snapshot_get_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.snapshot_get_time", "macro_sql": "\n\n{%- macro snapshot_get_time() -%}\n {{ adapter.dispatch('snapshot_get_time', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3396876, "supported_languages": null}, "macro.dbt.default__snapshot_get_time": {"name": "default__snapshot_get_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__snapshot_get_time", "macro_sql": "{% macro default__snapshot_get_time() %}\n {{ current_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3399146, "supported_languages": null}, "macro.dbt.get_snapshot_get_time_data_type": {"name": "get_snapshot_get_time_data_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.get_snapshot_get_time_data_type", "macro_sql": "{% macro get_snapshot_get_time_data_type() %}\n {% set snapshot_time = adapter.dispatch('snapshot_get_time', 'dbt')() %}\n {% set time_data_type_sql = 'select ' ~ snapshot_time ~ ' as dbt_snapshot_time' %}\n {% set snapshot_time_column_schema = get_column_schema_from_query(time_data_type_sql) %}\n {% set time_data_type = snapshot_time_column_schema[0].dtype %}\n {{ return(time_data_type or none) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_get_time", "macro.dbt_postgres.postgres__snapshot_get_time", "macro.dbt.get_column_schema_from_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3407345, "supported_languages": null}, "macro.dbt.current_timestamp_backcompat": {"name": "current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp_backcompat", "macro_sql": "{% macro current_timestamp_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3410926, "supported_languages": null}, "macro.dbt.default__current_timestamp_backcompat": {"name": "default__current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp_backcompat", "macro_sql": "{% macro default__current_timestamp_backcompat() %}\n current_timestamp::timestamp\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.341267, "supported_languages": null}, "macro.dbt.current_timestamp_in_utc_backcompat": {"name": "current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp_in_utc_backcompat", "macro_sql": "{% macro current_timestamp_in_utc_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_in_utc_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3416016, "supported_languages": null}, "macro.dbt.default__current_timestamp_in_utc_backcompat": {"name": "default__current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp_in_utc_backcompat", "macro_sql": "{% macro default__current_timestamp_in_utc_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp_backcompat", "macro.dbt_postgres.postgres__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3419309, "supported_languages": null}, "macro.dbt.make_intermediate_relation": {"name": "make_intermediate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_intermediate_relation", "macro_sql": "{% macro make_intermediate_relation(base_relation, suffix='__dbt_tmp') %}\n {{ return(adapter.dispatch('make_intermediate_relation', 'dbt')(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_intermediate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "base_relation", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}], "created_at": 1784670933.343262, "supported_languages": null}, "macro.dbt.default__make_intermediate_relation": {"name": "default__make_intermediate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_intermediate_relation", "macro_sql": "{% macro default__make_intermediate_relation(base_relation, suffix) %}\n {{ return(default__make_temp_relation(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "base_relation", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}], "created_at": 1784670933.3436022, "supported_languages": null}, "macro.dbt.make_temp_relation": {"name": "make_temp_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_temp_relation", "macro_sql": "{% macro make_temp_relation(base_relation, suffix='__dbt_tmp') %}\n {#-- This ensures microbatch batches get unique temp relations to avoid clobbering --#}\n {% if suffix == '__dbt_tmp' and model.batch %}\n {% set suffix = suffix ~ '_' ~ model.batch.id %}\n {% endif %}\n\n {{ return(adapter.dispatch('make_temp_relation', 'dbt')(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "base_relation", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}], "created_at": 1784670933.3443968, "supported_languages": null}, "macro.dbt.default__make_temp_relation": {"name": "default__make_temp_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_temp_relation", "macro_sql": "{% macro default__make_temp_relation(base_relation, suffix) %}\n {%- set temp_identifier = base_relation.identifier ~ suffix -%}\n {%- set temp_relation = base_relation.incorporate(\n path={\"identifier\": temp_identifier}) -%}\n\n {{ return(temp_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "base_relation", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}], "created_at": 1784670933.3449688, "supported_languages": null}, "macro.dbt.make_backup_relation": {"name": "make_backup_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_backup_relation", "macro_sql": "{% macro make_backup_relation(base_relation, backup_relation_type, suffix='__dbt_backup') %}\n {{ return(adapter.dispatch('make_backup_relation', 'dbt')(base_relation, backup_relation_type, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_backup_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "base_relation", "type": null, "description": ""}, {"name": "backup_relation_type", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}], "created_at": 1784670933.3454688, "supported_languages": null}, "macro.dbt.default__make_backup_relation": {"name": "default__make_backup_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_backup_relation", "macro_sql": "{% macro default__make_backup_relation(base_relation, backup_relation_type, suffix) %}\n {%- set backup_identifier = base_relation.identifier ~ suffix -%}\n {%- set backup_relation = base_relation.incorporate(\n path={\"identifier\": backup_identifier},\n type=backup_relation_type\n ) -%}\n {{ return(backup_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "base_relation", "type": null, "description": ""}, {"name": "backup_relation_type", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}], "created_at": 1784670933.3461082, "supported_languages": null}, "macro.dbt.truncate_relation": {"name": "truncate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.truncate_relation", "macro_sql": "{% macro truncate_relation(relation) -%}\n {{ return(adapter.dispatch('truncate_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__truncate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3464758, "supported_languages": null}, "macro.dbt.default__truncate_relation": {"name": "default__truncate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__truncate_relation", "macro_sql": "{% macro default__truncate_relation(relation) -%}\n {% call statement('truncate_relation') -%}\n truncate table {{ relation.render() }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3468456, "supported_languages": null}, "macro.dbt.get_or_create_relation": {"name": "get_or_create_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.get_or_create_relation", "macro_sql": "{% macro get_or_create_relation(database, schema, identifier, type) -%}\n {{ return(adapter.dispatch('get_or_create_relation', 'dbt')(database, schema, identifier, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_or_create_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "database", "type": null, "description": ""}, {"name": "schema", "type": null, "description": ""}, {"name": "identifier", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670933.3474543, "supported_languages": null}, "macro.dbt.default__get_or_create_relation": {"name": "default__get_or_create_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__get_or_create_relation", "macro_sql": "{% macro default__get_or_create_relation(database, schema, identifier, type) %}\n {%- set target_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) %}\n\n {% if target_relation %}\n {% do return([true, target_relation]) %}\n {% endif %}\n\n {%- set new_relation = api.Relation.create(\n database=database,\n schema=schema,\n identifier=identifier,\n type=type\n ) -%}\n {% do return([false, new_relation]) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "database", "type": null, "description": ""}, {"name": "schema", "type": null, "description": ""}, {"name": "identifier", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670933.3485382, "supported_languages": null}, "macro.dbt.load_cached_relation": {"name": "load_cached_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.load_cached_relation", "macro_sql": "{% macro load_cached_relation(relation) %}\n {% do return(adapter.get_relation(\n database=relation.database,\n schema=relation.schema,\n identifier=relation.identifier\n )) -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3489833, "supported_languages": null}, "macro.dbt.load_relation": {"name": "load_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.load_relation", "macro_sql": "{% macro load_relation(relation) %}\n {{ return(load_cached_relation(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3492925, "supported_languages": null}, "macro.dbt.get_catalog_relations": {"name": "get_catalog_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog_relations", "macro_sql": "{% macro get_catalog_relations(information_schema, relations) -%}\n {{ return(adapter.dispatch('get_catalog_relations', 'dbt')(information_schema, relations)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "information_schema", "type": null, "description": ""}, {"name": "relations", "type": null, "description": ""}], "created_at": 1784670933.3510017, "supported_languages": null}, "macro.dbt.default__get_catalog_relations": {"name": "default__get_catalog_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog_relations", "macro_sql": "{% macro default__get_catalog_relations(information_schema, relations) -%}\n {% set typename = adapter.type() %}\n {% set msg -%}\n get_catalog_relations not implemented for {{ typename }}\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "information_schema", "type": null, "description": ""}, {"name": "relations", "type": null, "description": ""}], "created_at": 1784670933.3515582, "supported_languages": null}, "macro.dbt.get_catalog": {"name": "get_catalog", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog", "macro_sql": "{% macro get_catalog(information_schema, schemas) -%}\n {{ return(adapter.dispatch('get_catalog', 'dbt')(information_schema, schemas)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "information_schema", "type": null, "description": ""}, {"name": "schemas", "type": null, "description": ""}], "created_at": 1784670933.3519645, "supported_languages": null}, "macro.dbt.default__get_catalog": {"name": "default__get_catalog", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog", "macro_sql": "{% macro default__get_catalog(information_schema, schemas) -%}\n\n {% set typename = adapter.type() %}\n {% set msg -%}\n get_catalog not implemented for {{ typename }}\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "information_schema", "type": null, "description": ""}, {"name": "schemas", "type": null, "description": ""}], "created_at": 1784670933.3525004, "supported_languages": null}, "macro.dbt.information_schema_name": {"name": "information_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.information_schema_name", "macro_sql": "{% macro information_schema_name(database) %}\n {{ return(adapter.dispatch('information_schema_name', 'dbt')(database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__information_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "database", "type": null, "description": ""}], "created_at": 1784670933.35287, "supported_languages": null}, "macro.dbt.default__information_schema_name": {"name": "default__information_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__information_schema_name", "macro_sql": "{% macro default__information_schema_name(database) -%}\n {%- if database -%}\n {{ database }}.INFORMATION_SCHEMA\n {%- else -%}\n INFORMATION_SCHEMA\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "database", "type": null, "description": ""}], "created_at": 1784670933.3532302, "supported_languages": null}, "macro.dbt.list_schemas": {"name": "list_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.list_schemas", "macro_sql": "{% macro list_schemas(database) -%}\n {{ return(adapter.dispatch('list_schemas', 'dbt')(database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__list_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "database", "type": null, "description": ""}], "created_at": 1784670933.353607, "supported_languages": null}, "macro.dbt.default__list_schemas": {"name": "default__list_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__list_schemas", "macro_sql": "{% macro default__list_schemas(database) -%}\n {% set sql %}\n select distinct schema_name\n from {{ information_schema_name(database) }}.SCHEMATA\n where catalog_name ilike '{{ database }}'\n {% endset %}\n {{ return(run_query(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.information_schema_name", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "database", "type": null, "description": ""}], "created_at": 1784670933.354121, "supported_languages": null}, "macro.dbt.check_schema_exists": {"name": "check_schema_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.check_schema_exists", "macro_sql": "{% macro check_schema_exists(information_schema, schema) -%}\n {{ return(adapter.dispatch('check_schema_exists', 'dbt')(information_schema, schema)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__check_schema_exists"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "information_schema", "type": null, "description": ""}, {"name": "schema", "type": null, "description": ""}], "created_at": 1784670933.3545308, "supported_languages": null}, "macro.dbt.default__check_schema_exists": {"name": "default__check_schema_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__check_schema_exists", "macro_sql": "{% macro default__check_schema_exists(information_schema, schema) -%}\n {% set sql -%}\n select count(*)\n from {{ information_schema.replace(information_schema_view='SCHEMATA') }}\n where catalog_name='{{ information_schema.database }}'\n and schema_name='{{ schema }}'\n {%- endset %}\n {{ return(run_query(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "information_schema", "type": null, "description": ""}, {"name": "schema", "type": null, "description": ""}], "created_at": 1784670933.3551867, "supported_languages": null}, "macro.dbt.list_relations_without_caching": {"name": "list_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.list_relations_without_caching", "macro_sql": "{% macro list_relations_without_caching(schema_relation) %}\n {{ return(adapter.dispatch('list_relations_without_caching', 'dbt')(schema_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__list_relations_without_caching"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_relation", "type": null, "description": ""}], "created_at": 1784670933.3555806, "supported_languages": null}, "macro.dbt.default__list_relations_without_caching": {"name": "default__list_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__list_relations_without_caching", "macro_sql": "{% macro default__list_relations_without_caching(schema_relation) %}\n {{ exceptions.raise_not_implemented(\n 'list_relations_without_caching macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_relation", "type": null, "description": ""}], "created_at": 1784670933.356097, "supported_languages": null}, "macro.dbt.list_function_relations_without_caching": {"name": "list_function_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.list_function_relations_without_caching", "macro_sql": "{% macro list_function_relations_without_caching(schema_relation) %}\n {{ return(adapter.dispatch('list_function_relations_without_caching', 'dbt')(schema_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__list_function_relations_without_caching"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_relation", "type": null, "description": ""}], "created_at": 1784670933.356549, "supported_languages": null}, "macro.dbt.default__list_function_relations_without_caching": {"name": "default__list_function_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__list_function_relations_without_caching", "macro_sql": "{% macro default__list_function_relations_without_caching(schema_relation) %}\n {{ exceptions.raise_not_implemented(\n 'list_function_relations_without_caching macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_relation", "type": null, "description": ""}], "created_at": 1784670933.3568892, "supported_languages": null}, "macro.dbt.get_catalog_for_single_relation": {"name": "get_catalog_for_single_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog_for_single_relation", "macro_sql": "{% macro get_catalog_for_single_relation(relation) %}\n {{ return(adapter.dispatch('get_catalog_for_single_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_catalog_for_single_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3572886, "supported_languages": null}, "macro.dbt.default__get_catalog_for_single_relation": {"name": "default__get_catalog_for_single_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog_for_single_relation", "macro_sql": "{% macro default__get_catalog_for_single_relation(relation) %}\n {{ exceptions.raise_not_implemented(\n 'get_catalog_for_single_relation macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3576186, "supported_languages": null}, "macro.dbt.get_relations": {"name": "get_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_relations", "macro_sql": "{% macro get_relations() %}\n {{ return(adapter.dispatch('get_relations', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3580225, "supported_languages": null}, "macro.dbt.default__get_relations": {"name": "default__get_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_relations", "macro_sql": "{% macro default__get_relations() %}\n {{ exceptions.raise_not_implemented(\n 'get_relations macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3583724, "supported_languages": null}, "macro.dbt.get_relation_last_modified": {"name": "get_relation_last_modified", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_relation_last_modified", "macro_sql": "{% macro get_relation_last_modified(information_schema, relations) %}\n {{ return(adapter.dispatch('get_relation_last_modified', 'dbt')(information_schema, relations)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_relation_last_modified"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "information_schema", "type": null, "description": ""}, {"name": "relations", "type": null, "description": ""}], "created_at": 1784670933.3587806, "supported_languages": null}, "macro.dbt.default__get_relation_last_modified": {"name": "default__get_relation_last_modified", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_relation_last_modified", "macro_sql": "{% macro default__get_relation_last_modified(information_schema, relations) %}\n {{ exceptions.raise_not_implemented(\n 'get_relation_last_modified macro not implemented for adapter ' + adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "information_schema", "type": null, "description": ""}, {"name": "relations", "type": null, "description": ""}], "created_at": 1784670933.3591547, "supported_languages": null}, "macro.dbt.alter_column_comment": {"name": "alter_column_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.alter_column_comment", "macro_sql": "{% macro alter_column_comment(relation, column_dict) -%}\n {{ return(adapter.dispatch('alter_column_comment', 'dbt')(relation, column_dict)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "column_dict", "type": null, "description": ""}], "created_at": 1784670933.3604224, "supported_languages": null}, "macro.dbt.default__alter_column_comment": {"name": "default__alter_column_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__alter_column_comment", "macro_sql": "{% macro default__alter_column_comment(relation, column_dict) -%}\n {{ exceptions.raise_not_implemented(\n 'alter_column_comment macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "column_dict", "type": null, "description": ""}], "created_at": 1784670933.3607793, "supported_languages": null}, "macro.dbt.alter_relation_comment": {"name": "alter_relation_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.alter_relation_comment", "macro_sql": "{% macro alter_relation_comment(relation, relation_comment) -%}\n {{ return(adapter.dispatch('alter_relation_comment', 'dbt')(relation, relation_comment)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_relation_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "relation_comment", "type": null, "description": ""}], "created_at": 1784670933.3612216, "supported_languages": null}, "macro.dbt.default__alter_relation_comment": {"name": "default__alter_relation_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__alter_relation_comment", "macro_sql": "{% macro default__alter_relation_comment(relation, relation_comment) -%}\n {{ exceptions.raise_not_implemented(\n 'alter_relation_comment macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "relation_comment", "type": null, "description": ""}], "created_at": 1784670933.3615758, "supported_languages": null}, "macro.dbt.persist_docs": {"name": "persist_docs", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.persist_docs", "macro_sql": "{% macro persist_docs(relation, model, for_relation=true, for_columns=true) -%}\n {{ return(adapter.dispatch('persist_docs', 'dbt')(relation, model, for_relation, for_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "model", "type": null, "description": ""}, {"name": "for_relation", "type": null, "description": ""}, {"name": "for_columns", "type": null, "description": ""}], "created_at": 1784670933.3621302, "supported_languages": null}, "macro.dbt.validate_doc_columns": {"name": "validate_doc_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.validate_doc_columns", "macro_sql": "{% macro validate_doc_columns(relation, column_dict, existing_column_names) %}\n {% set existing_lower = existing_column_names | map(\"lower\") | list %}\n {% set missing = [] %}\n {% set filtered = {} %}\n {% for col_name in column_dict %}\n {% set is_quoted = column_dict[col_name]['quote'] %}\n {% if is_quoted %}\n {% set present = col_name in existing_column_names %}\n {% else %}\n {% set present = col_name | lower in existing_lower %}\n {% endif %}\n {% if present %}\n {% do filtered.update({col_name: column_dict[col_name]}) %}\n {% else %}\n {% do missing.append(col_name) %}\n {% endif %}\n {% endfor %}\n {% if missing | length > 0 %}\n {{ exceptions.warn(\"In relation \" ~ relation.render() ~ \": The following columns are specified in the schema but are not present in the database: \" ~ missing | join(\", \")) }}\n {% endif %}\n {{ return(filtered) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "column_dict", "type": null, "description": ""}, {"name": "existing_column_names", "type": null, "description": ""}], "created_at": 1784670933.3643706, "supported_languages": null}, "macro.dbt.default__persist_docs": {"name": "default__persist_docs", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__persist_docs", "macro_sql": "{% macro default__persist_docs(relation, model, for_relation, for_columns) -%}\n {% if for_relation and config.persist_relation_docs() and model.description %}\n {% do run_query(alter_relation_comment(relation, model.description)) %}\n {% endif %}\n\n {% if for_columns and config.persist_column_docs() and model.columns %}\n {% set existing_columns = adapter.get_columns_in_relation(relation) | map(attribute=\"name\") | list %}\n {% set filtered_columns = validate_doc_columns(relation, model.columns, existing_columns) %}\n {% set alter_comment_sql = alter_column_comment(relation, filtered_columns) %}\n {% if alter_comment_sql and alter_comment_sql | trim | length > 0 %}\n {% do run_query(alter_comment_sql) %}\n {% endif %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.alter_relation_comment", "macro.dbt.validate_doc_columns", "macro.dbt.alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "model", "type": null, "description": ""}, {"name": "for_relation", "type": null, "description": ""}, {"name": "for_columns", "type": null, "description": ""}], "created_at": 1784670933.3659694, "supported_languages": null}, "macro.dbt.collect_freshness": {"name": "collect_freshness", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.collect_freshness", "macro_sql": "{% macro collect_freshness(source, loaded_at_field, filter) %}\n {{ return(adapter.dispatch('collect_freshness', 'dbt')(source, loaded_at_field, filter))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source", "type": null, "description": ""}, {"name": "loaded_at_field", "type": null, "description": ""}, {"name": "filter", "type": null, "description": ""}], "created_at": 1784670933.3668845, "supported_languages": null}, "macro.dbt.default__collect_freshness": {"name": "default__collect_freshness", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.default__collect_freshness", "macro_sql": "{% macro default__collect_freshness(source, loaded_at_field, filter) %}\n {% call statement('collect_freshness', fetch_result=True, auto_begin=False) -%}\n select\n max({{ loaded_at_field }}) as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n from {{ source }}\n {% if filter %}\n where {{ filter }}\n {% endif %}\n {% endcall %}\n {{ return(load_result('collect_freshness')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source", "type": null, "description": ""}, {"name": "loaded_at_field", "type": null, "description": ""}, {"name": "filter", "type": null, "description": ""}], "created_at": 1784670933.3677163, "supported_languages": null}, "macro.dbt.collect_freshness_custom_sql": {"name": "collect_freshness_custom_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.collect_freshness_custom_sql", "macro_sql": "{% macro collect_freshness_custom_sql(source, loaded_at_query) %}\n {{ return(adapter.dispatch('collect_freshness_custom_sql', 'dbt')(source, loaded_at_query))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__collect_freshness_custom_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source", "type": null, "description": ""}, {"name": "loaded_at_query", "type": null, "description": ""}], "created_at": 1784670933.3681557, "supported_languages": null}, "macro.dbt.default__collect_freshness_custom_sql": {"name": "default__collect_freshness_custom_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.default__collect_freshness_custom_sql", "macro_sql": "{% macro default__collect_freshness_custom_sql(source, loaded_at_query) %}\n {% call statement('collect_freshness_custom_sql', fetch_result=True, auto_begin=False) -%}\n with source_query as (\n {{ loaded_at_query }}\n )\n select\n (select * from source_query) as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n {% endcall %}\n {{ return(load_result('collect_freshness_custom_sql')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source", "type": null, "description": ""}, {"name": "loaded_at_query", "type": null, "description": ""}], "created_at": 1784670933.3687754, "supported_languages": null}, "macro.dbt.copy_grants": {"name": "copy_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.copy_grants", "macro_sql": "{% macro copy_grants() %}\n {{ return(adapter.dispatch('copy_grants', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.370875, "supported_languages": null}, "macro.dbt.default__copy_grants": {"name": "default__copy_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__copy_grants", "macro_sql": "{% macro default__copy_grants() %}\n {{ return(True) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3711483, "supported_languages": null}, "macro.dbt.support_multiple_grantees_per_dcl_statement": {"name": "support_multiple_grantees_per_dcl_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.support_multiple_grantees_per_dcl_statement", "macro_sql": "{% macro support_multiple_grantees_per_dcl_statement() %}\n {{ return(adapter.dispatch('support_multiple_grantees_per_dcl_statement', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__support_multiple_grantees_per_dcl_statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3714821, "supported_languages": null}, "macro.dbt.default__support_multiple_grantees_per_dcl_statement": {"name": "default__support_multiple_grantees_per_dcl_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__support_multiple_grantees_per_dcl_statement", "macro_sql": "\n\n{%- macro default__support_multiple_grantees_per_dcl_statement() -%}\n {{ return(True) }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.3717136, "supported_languages": null}, "macro.dbt.should_revoke": {"name": "should_revoke", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.should_revoke", "macro_sql": "{% macro should_revoke(existing_relation, full_refresh_mode=True) %}\n\n {% if not existing_relation %}\n {#-- The table doesn't already exist, so no grants to copy over --#}\n {{ return(False) }}\n {% elif full_refresh_mode %}\n {#-- The object is being REPLACED -- whether grants are copied over depends on the value of user config --#}\n {{ return(copy_grants()) }}\n {% else %}\n {#-- The table is being merged/upserted/inserted -- grants will be carried over --#}\n {{ return(True) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "existing_relation", "type": null, "description": ""}, {"name": "full_refresh_mode", "type": null, "description": ""}], "created_at": 1784670933.37241, "supported_languages": null}, "macro.dbt.get_show_grant_sql": {"name": "get_show_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_show_grant_sql", "macro_sql": "{% macro get_show_grant_sql(relation) %}\n {{ return(adapter.dispatch(\"get_show_grant_sql\", \"dbt\")(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_show_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3727899, "supported_languages": null}, "macro.dbt.default__get_show_grant_sql": {"name": "default__get_show_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_show_grant_sql", "macro_sql": "{% macro default__get_show_grant_sql(relation) %}\n show grants on {{ relation.render() }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3730378, "supported_languages": null}, "macro.dbt.get_grant_sql": {"name": "get_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_grant_sql", "macro_sql": "{% macro get_grant_sql(relation, privilege, grantees) %}\n {{ return(adapter.dispatch('get_grant_sql', 'dbt')(relation, privilege, grantees)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "privilege", "type": null, "description": ""}, {"name": "grantees", "type": null, "description": ""}], "created_at": 1784670933.3735251, "supported_languages": null}, "macro.dbt.default__get_grant_sql": {"name": "default__get_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_grant_sql", "macro_sql": "\n\n{%- macro default__get_grant_sql(relation, privilege, grantees) -%}\n grant {{ privilege }} on {{ relation.render() }} to {{ grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "privilege", "type": null, "description": ""}, {"name": "grantees", "type": null, "description": ""}], "created_at": 1784670933.3739533, "supported_languages": null}, "macro.dbt.get_revoke_sql": {"name": "get_revoke_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_revoke_sql", "macro_sql": "{% macro get_revoke_sql(relation, privilege, grantees) %}\n {{ return(adapter.dispatch('get_revoke_sql', 'dbt')(relation, privilege, grantees)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_revoke_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "privilege", "type": null, "description": ""}, {"name": "grantees", "type": null, "description": ""}], "created_at": 1784670933.374556, "supported_languages": null}, "macro.dbt.default__get_revoke_sql": {"name": "default__get_revoke_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_revoke_sql", "macro_sql": "\n\n{%- macro default__get_revoke_sql(relation, privilege, grantees) -%}\n {%- set quoted_grantees = [] -%}\n {%- for grantee in grantees -%}\n {%- do quoted_grantees.append(adapter.quote(grantee)) -%}\n {%- endfor -%}\n revoke {{ privilege }} on {{ relation.render() }} from {{ quoted_grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "privilege", "type": null, "description": ""}, {"name": "grantees", "type": null, "description": ""}], "created_at": 1784670933.3753436, "supported_languages": null}, "macro.dbt.get_dcl_statement_list": {"name": "get_dcl_statement_list", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_dcl_statement_list", "macro_sql": "{% macro get_dcl_statement_list(relation, grant_config, get_dcl_macro) %}\n {{ return(adapter.dispatch('get_dcl_statement_list', 'dbt')(relation, grant_config, get_dcl_macro)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_dcl_statement_list"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "grant_config", "type": null, "description": ""}, {"name": "get_dcl_macro", "type": null, "description": ""}], "created_at": 1784670933.3758779, "supported_languages": null}, "macro.dbt.default__get_dcl_statement_list": {"name": "default__get_dcl_statement_list", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_dcl_statement_list", "macro_sql": "\n\n{%- macro default__get_dcl_statement_list(relation, grant_config, get_dcl_macro) -%}\n {#\n -- Unpack grant_config into specific privileges and the set of users who need them granted/revoked.\n -- Depending on whether this database supports multiple grantees per statement, pass in the list of\n -- all grantees per privilege, or (if not) template one statement per privilege-grantee pair.\n -- `get_dcl_macro` will be either `get_grant_sql` or `get_revoke_sql`\n #}\n {%- set dcl_statements = [] -%}\n {%- for privilege, grantees in grant_config.items() %}\n {%- if support_multiple_grantees_per_dcl_statement() and grantees -%}\n {%- set dcl = get_dcl_macro(relation, privilege, grantees) -%}\n {%- do dcl_statements.append(dcl) -%}\n {%- else -%}\n {%- for grantee in grantees -%}\n {% set dcl = get_dcl_macro(relation, privilege, [grantee]) %}\n {%- do dcl_statements.append(dcl) -%}\n {% endfor -%}\n {%- endif -%}\n {%- endfor -%}\n {{ return(dcl_statements) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.support_multiple_grantees_per_dcl_statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "grant_config", "type": null, "description": ""}, {"name": "get_dcl_macro", "type": null, "description": ""}], "created_at": 1784670933.377256, "supported_languages": null}, "macro.dbt.call_dcl_statements": {"name": "call_dcl_statements", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.call_dcl_statements", "macro_sql": "{% macro call_dcl_statements(dcl_statement_list) %}\n {{ return(adapter.dispatch(\"call_dcl_statements\", \"dbt\")(dcl_statement_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "dcl_statement_list", "type": null, "description": ""}], "created_at": 1784670933.3776383, "supported_languages": null}, "macro.dbt.default__call_dcl_statements": {"name": "default__call_dcl_statements", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__call_dcl_statements", "macro_sql": "{% macro default__call_dcl_statements(dcl_statement_list) %}\n {#\n -- By default, supply all grant + revoke statements in a single semicolon-separated block,\n -- so that they're all processed together.\n\n -- Some databases do not support this. Those adapters will need to override this macro\n -- to run each statement individually.\n #}\n {% call statement('grants') %}\n {% for dcl_statement in dcl_statement_list %}\n {{ dcl_statement }};\n {% endfor %}\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "dcl_statement_list", "type": null, "description": ""}], "created_at": 1784670933.37815, "supported_languages": null}, "macro.dbt.apply_grants": {"name": "apply_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.apply_grants", "macro_sql": "{% macro apply_grants(relation, grant_config, should_revoke) %}\n {{ return(adapter.dispatch(\"apply_grants\", \"dbt\")(relation, grant_config, should_revoke)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "grant_config", "type": null, "description": ""}, {"name": "should_revoke", "type": null, "description": ""}], "created_at": 1784670933.3786, "supported_languages": null}, "macro.dbt.default__apply_grants": {"name": "default__apply_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__apply_grants", "macro_sql": "{% macro default__apply_grants(relation, grant_config, should_revoke=True) %}\n {#-- If grant_config is {} or None, this is a no-op --#}\n {% if grant_config %}\n {% if should_revoke %}\n {#-- We think previous grants may have carried over --#}\n {#-- Show current grants and calculate diffs --#}\n {% set current_grants_table = run_query(get_show_grant_sql(relation)) %}\n {% set current_grants_dict = adapter.standardize_grants_dict(current_grants_table) %}\n {% set needs_granting = diff_of_two_dicts(grant_config, current_grants_dict) %}\n {% set needs_revoking = diff_of_two_dicts(current_grants_dict, grant_config) %}\n {% if not (needs_granting or needs_revoking) %}\n {{ log('On ' ~ relation.render() ~': All grants are in place, no revocation or granting needed.')}}\n {% endif %}\n {% else %}\n {#-- We don't think there's any chance of previous grants having carried over. --#}\n {#-- Jump straight to granting what the user has configured. --#}\n {% set needs_revoking = {} %}\n {% set needs_granting = grant_config %}\n {% endif %}\n {% if needs_granting or needs_revoking %}\n {% set revoke_statement_list = get_dcl_statement_list(relation, needs_revoking, get_revoke_sql) %}\n {% set grant_statement_list = get_dcl_statement_list(relation, needs_granting, get_grant_sql) %}\n {% set dcl_statement_list = revoke_statement_list + grant_statement_list %}\n {% if dcl_statement_list %}\n {{ call_dcl_statements(dcl_statement_list) }}\n {% endif %}\n {% endif %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.get_show_grant_sql", "macro.dbt.get_dcl_statement_list", "macro.dbt.call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "grant_config", "type": null, "description": ""}, {"name": "should_revoke", "type": null, "description": ""}], "created_at": 1784670933.3808742, "supported_languages": null}, "macro.dbt.get_columns_in_relation": {"name": "get_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_columns_in_relation", "macro_sql": "{% macro get_columns_in_relation(relation) -%}\n {{ return(adapter.dispatch('get_columns_in_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.3830605, "supported_languages": null}, "macro.dbt.default__get_columns_in_relation": {"name": "default__get_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_columns_in_relation", "macro_sql": "{% macro default__get_columns_in_relation(relation) -%}\n {{ exceptions.raise_not_implemented(\n 'get_columns_in_relation macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.383401, "supported_languages": null}, "macro.dbt.sql_convert_columns_in_relation": {"name": "sql_convert_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.sql_convert_columns_in_relation", "macro_sql": "{% macro sql_convert_columns_in_relation(table) -%}\n {% set columns = [] %}\n {% for row in table %}\n {% do columns.append(api.Column(*row)) %}\n {% endfor %}\n {{ return(columns) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "table", "type": null, "description": ""}], "created_at": 1784670933.384024, "supported_languages": null}, "macro.dbt.get_list_of_column_names": {"name": "get_list_of_column_names", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_list_of_column_names", "macro_sql": "\n\n{%- macro get_list_of_column_names(columns) -%}\n {% set col_names = [] %}\n {% for col in columns %}\n {% do col_names.append(col.name) %}\n {% endfor %}\n {{ return(col_names) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "columns", "type": null, "description": ""}], "created_at": 1784670933.3846273, "supported_languages": null}, "macro.dbt.get_empty_subquery_sql": {"name": "get_empty_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_empty_subquery_sql", "macro_sql": "{% macro get_empty_subquery_sql(select_sql, select_sql_header=none) -%}\n {{ return(adapter.dispatch('get_empty_subquery_sql', 'dbt')(select_sql, select_sql_header)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "select_sql", "type": null, "description": ""}, {"name": "select_sql_header", "type": null, "description": ""}], "created_at": 1784670933.3850772, "supported_languages": null}, "macro.dbt.default__get_empty_subquery_sql": {"name": "default__get_empty_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_empty_subquery_sql", "macro_sql": "{% macro default__get_empty_subquery_sql(select_sql, select_sql_header=none) %}\n {%- if select_sql_header is not none -%}\n {{ select_sql_header }}\n {%- endif -%}\n select * from (\n {{ select_sql }}\n ) as __dbt_sbq\n where false\n limit 0\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "select_sql", "type": null, "description": ""}, {"name": "select_sql_header", "type": null, "description": ""}], "created_at": 1784670933.3854935, "supported_languages": null}, "macro.dbt.get_empty_schema_sql": {"name": "get_empty_schema_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_empty_schema_sql", "macro_sql": "{% macro get_empty_schema_sql(columns) -%}\n {{ return(adapter.dispatch('get_empty_schema_sql', 'dbt')(columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_empty_schema_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "columns", "type": null, "description": ""}], "created_at": 1784670933.3858879, "supported_languages": null}, "macro.dbt.default__get_empty_schema_sql": {"name": "default__get_empty_schema_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_empty_schema_sql", "macro_sql": "{% macro default__get_empty_schema_sql(columns) %}\n {%- set col_err = [] -%}\n {%- set col_naked_numeric = [] -%}\n select\n {% for i in columns %}\n {%- set col = columns[i] -%}\n {%- if col['data_type'] is not defined -%}\n {%- do col_err.append(col['name']) -%}\n {#-- If this column's type is just 'numeric' then it is missing precision/scale, raise a warning --#}\n {%- elif col['data_type'].strip().lower() in ('numeric', 'decimal', 'number') -%}\n {%- do col_naked_numeric.append(col['name']) -%}\n {%- endif -%}\n {% set col_name = adapter.quote(col['name']) if col.get('quote') else col['name'] %}\n {{ cast('null', col['data_type']) }} as {{ col_name }}{{ \", \" if not loop.last }}\n {%- endfor -%}\n {%- if (col_err | length) > 0 -%}\n {{ exceptions.column_type_missing(column_names=col_err) }}\n {%- elif (col_naked_numeric | length) > 0 -%}\n {{ exceptions.warn(\"Detected columns with numeric type and unspecified precision/scale, this can lead to unintended rounding: \" ~ col_naked_numeric ~ \"`\") }}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "columns", "type": null, "description": ""}], "created_at": 1784670933.3883297, "supported_languages": null}, "macro.dbt.get_column_schema_from_query": {"name": "get_column_schema_from_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_column_schema_from_query", "macro_sql": "{% macro get_column_schema_from_query(select_sql, select_sql_header=none) -%}\n {% set columns = [] %}\n {# -- Using an 'empty subquery' here to get the same schema as the given select_sql statement, without necessitating a data scan.#}\n {% set sql = get_empty_subquery_sql(select_sql, select_sql_header) %}\n {% set column_schema = adapter.get_column_schema_from_query(sql) %}\n {{ return(column_schema) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "select_sql", "type": null, "description": ""}, {"name": "select_sql_header", "type": null, "description": ""}], "created_at": 1784670933.38901, "supported_languages": null}, "macro.dbt.get_columns_in_query": {"name": "get_columns_in_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_columns_in_query", "macro_sql": "{% macro get_columns_in_query(select_sql) -%}\n {{ return(adapter.dispatch('get_columns_in_query', 'dbt')(select_sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "select_sql", "type": null, "description": ""}], "created_at": 1784670933.389408, "supported_languages": null}, "macro.dbt.default__get_columns_in_query": {"name": "default__get_columns_in_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_columns_in_query", "macro_sql": "{% macro default__get_columns_in_query(select_sql) %}\n {% call statement('get_columns_in_query', fetch_result=True, auto_begin=False) -%}\n {{ get_empty_subquery_sql(select_sql) }}\n {% endcall %}\n {{ return(load_result('get_columns_in_query').table.columns | map(attribute='name') | list) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "select_sql", "type": null, "description": ""}], "created_at": 1784670933.3900993, "supported_languages": null}, "macro.dbt.alter_column_type": {"name": "alter_column_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.alter_column_type", "macro_sql": "{% macro alter_column_type(relation, column_name, new_column_type) -%}\n {{ return(adapter.dispatch('alter_column_type', 'dbt')(relation, column_name, new_column_type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "new_column_type", "type": null, "description": ""}], "created_at": 1784670933.3905494, "supported_languages": null}, "macro.dbt.default__alter_column_type": {"name": "default__alter_column_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__alter_column_type", "macro_sql": "{% macro default__alter_column_type(relation, column_name, new_column_type) -%}\n {#\n 1. Create a new column (w/ temp name and correct type)\n 2. Copy data over to it\n 3. Drop the existing column (cascade!)\n 4. Rename the new column to existing column\n #}\n {%- set tmp_column = column_name + \"__dbt_alter\" -%}\n\n {% call statement('alter_column_type') %}\n alter table {{ relation.render() }} add column {{ adapter.quote(tmp_column) }} {{ new_column_type }};\n update {{ relation.render() }} set {{ adapter.quote(tmp_column) }} = {{ adapter.quote(column_name) }};\n alter table {{ relation.render() }} drop column {{ adapter.quote(column_name) }} cascade;\n alter table {{ relation.render() }} rename column {{ adapter.quote(tmp_column) }} to {{ adapter.quote(column_name) }}\n {% endcall %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "new_column_type", "type": null, "description": ""}], "created_at": 1784670933.3918517, "supported_languages": null}, "macro.dbt.alter_relation_add_remove_columns": {"name": "alter_relation_add_remove_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.alter_relation_add_remove_columns", "macro_sql": "{% macro alter_relation_add_remove_columns(relation, add_columns = none, remove_columns = none) -%}\n {{ return(adapter.dispatch('alter_relation_add_remove_columns', 'dbt')(relation, add_columns, remove_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__alter_relation_add_remove_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "add_columns", "type": null, "description": ""}, {"name": "remove_columns", "type": null, "description": ""}], "created_at": 1784670933.3923802, "supported_languages": null}, "macro.dbt.default__alter_relation_add_remove_columns": {"name": "default__alter_relation_add_remove_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__alter_relation_add_remove_columns", "macro_sql": "{% macro default__alter_relation_add_remove_columns(relation, add_columns, remove_columns) %}\n\n {% if add_columns is none %}\n {% set add_columns = [] %}\n {% endif %}\n {% if remove_columns is none %}\n {% set remove_columns = [] %}\n {% endif %}\n\n {% set sql -%}\n\n alter {{ relation.type }} {{ relation.render() }}\n\n {% for column in add_columns %}\n add column {{ column.quoted }} {{ column.expanded_data_type }}{{ ',' if not loop.last }}\n {% endfor %}{{ ',' if add_columns and remove_columns }}\n\n {% for column in remove_columns %}\n drop column {{ column.quoted }}{{ ',' if not loop.last }}\n {% endfor %}\n\n {%- endset -%}\n\n {% do run_query(sql) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "add_columns", "type": null, "description": ""}, {"name": "remove_columns", "type": null, "description": ""}], "created_at": 1784670933.3939462, "supported_languages": null}, "macro.dbt.generate_schema_name": {"name": "generate_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.generate_schema_name", "macro_sql": "{% macro generate_schema_name(custom_schema_name=none, node=none) -%}\n {{ return(adapter.dispatch('generate_schema_name', 'dbt')(custom_schema_name, node)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "custom_schema_name", "type": null, "description": ""}, {"name": "node", "type": null, "description": ""}], "created_at": 1784670933.3948376, "supported_languages": null}, "macro.dbt.default__generate_schema_name": {"name": "default__generate_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.default__generate_schema_name", "macro_sql": "{% macro default__generate_schema_name(custom_schema_name, node) -%}\n\n {%- set default_schema = target.schema -%}\n {%- if custom_schema_name is none -%}\n\n {{ default_schema }}\n\n {%- else -%}\n\n {{ default_schema }}_{{ custom_schema_name | trim }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "custom_schema_name", "type": null, "description": ""}, {"name": "node", "type": null, "description": ""}], "created_at": 1784670933.3954005, "supported_languages": null}, "macro.dbt.generate_schema_name_for_env": {"name": "generate_schema_name_for_env", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.generate_schema_name_for_env", "macro_sql": "{% macro generate_schema_name_for_env(custom_schema_name, node) -%}\n\n {%- set default_schema = target.schema -%}\n {%- if target.name == 'prod' and custom_schema_name is not none -%}\n\n {{ custom_schema_name | trim }}\n\n {%- else -%}\n\n {{ default_schema }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "custom_schema_name", "type": null, "description": ""}, {"name": "node", "type": null, "description": ""}], "created_at": 1784670933.395971, "supported_languages": null}, "macro.dbt.generate_database_name": {"name": "generate_database_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "unique_id": "macro.dbt.generate_database_name", "macro_sql": "{% macro generate_database_name(custom_database_name=none, node=none) -%}\n {% do return(adapter.dispatch('generate_database_name', 'dbt')(custom_database_name, node)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_database_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "custom_database_name", "type": null, "description": ""}, {"name": "node", "type": null, "description": ""}], "created_at": 1784670933.3967726, "supported_languages": null}, "macro.dbt.default__generate_database_name": {"name": "default__generate_database_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "unique_id": "macro.dbt.default__generate_database_name", "macro_sql": "{% macro default__generate_database_name(custom_database_name=none, node=none) -%}\n {%- set default_database = target.database -%}\n {%- if node is not none and node|attr('database') -%}\n {%- set catalog_relation = adapter.build_catalog_relation(node) -%}\n {%- if catalog_relation and catalog_relation|attr('catalog_database') -%}\n {{ return(catalog_relation.catalog_database) }}\n {%- endif -%}\n {%- endif -%}\n {%- if custom_database_name is none -%}\n\n {{ default_database }}\n\n {%- else -%}\n\n {{ custom_database_name }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "custom_database_name", "type": null, "description": ""}, {"name": "node", "type": null, "description": ""}], "created_at": 1784670933.3978488, "supported_languages": null}, "macro.dbt.generate_latest_version_pointer_alias": {"name": "generate_latest_version_pointer_alias", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_latest_version_pointer_alias.sql", "original_file_path": "macros/get_custom_name/get_latest_version_pointer_alias.sql", "unique_id": "macro.dbt.generate_latest_version_pointer_alias", "macro_sql": "{% macro generate_latest_version_pointer_alias(custom_alias_name=none, node=none) -%}\n {% do return(adapter.dispatch('generate_latest_version_pointer_alias', 'dbt')(custom_alias_name, node)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_latest_version_pointer_alias"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "custom_alias_name", "type": null, "description": ""}, {"name": "node", "type": null, "description": ""}], "created_at": 1784670933.3985815, "supported_languages": null}, "macro.dbt.default__generate_latest_version_pointer_alias": {"name": "default__generate_latest_version_pointer_alias", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_latest_version_pointer_alias.sql", "original_file_path": "macros/get_custom_name/get_latest_version_pointer_alias.sql", "unique_id": "macro.dbt.default__generate_latest_version_pointer_alias", "macro_sql": "{% macro default__generate_latest_version_pointer_alias(custom_alias_name=none, node=none) -%}\n {%- if custom_alias_name -%}\n {{ custom_alias_name | trim }}\n {%- else -%}\n {{ node.name }}\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "custom_alias_name", "type": null, "description": ""}, {"name": "node", "type": null, "description": ""}], "created_at": 1784670933.3990319, "supported_languages": null}, "macro.dbt.generate_alias_name": {"name": "generate_alias_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "unique_id": "macro.dbt.generate_alias_name", "macro_sql": "{% macro generate_alias_name(custom_alias_name=none, node=none) -%}\n {% do return(adapter.dispatch('generate_alias_name', 'dbt')(custom_alias_name, node)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_alias_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "custom_alias_name", "type": null, "description": ""}, {"name": "node", "type": null, "description": ""}], "created_at": 1784670933.3997788, "supported_languages": null}, "macro.dbt.default__generate_alias_name": {"name": "default__generate_alias_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "unique_id": "macro.dbt.default__generate_alias_name", "macro_sql": "{% macro default__generate_alias_name(custom_alias_name=none, node=none) -%}\n\n {%- if custom_alias_name -%}\n\n {{ custom_alias_name | trim }}\n\n {%- elif node.version -%}\n\n {{ return(node.name ~ \"_v\" ~ (node.version | replace(\".\", \"_\"))) }}\n\n {%- else -%}\n\n {{ node.name }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "custom_alias_name", "type": null, "description": ""}, {"name": "node", "type": null, "description": ""}], "created_at": 1784670933.4007292, "supported_languages": null}, "macro.dbt.array_construct": {"name": "array_construct", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "unique_id": "macro.dbt.array_construct", "macro_sql": "{% macro array_construct(inputs=[], data_type=api.Column.translate_type('integer')) -%}\n {{ return(adapter.dispatch('array_construct', 'dbt')(inputs, data_type)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_construct"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "inputs", "type": null, "description": ""}, {"name": "data_type", "type": null, "description": ""}], "created_at": 1784670933.4014864, "supported_languages": null}, "macro.dbt.default__array_construct": {"name": "default__array_construct", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "unique_id": "macro.dbt.default__array_construct", "macro_sql": "{% macro default__array_construct(inputs, data_type) -%}\n {% if inputs|length > 0 %}\n array[ {{ inputs|join(' , ') }} ]\n {% else %}\n array[]::{{data_type}}[]\n {% endif %}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "inputs", "type": null, "description": ""}, {"name": "data_type", "type": null, "description": ""}], "created_at": 1784670933.4019866, "supported_languages": null}, "macro.dbt.position": {"name": "position", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "unique_id": "macro.dbt.position", "macro_sql": "{% macro position(substring_text, string_text) -%}\n {{ return(adapter.dispatch('position', 'dbt') (substring_text, string_text)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__position"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "substring_text", "type": null, "description": ""}, {"name": "string_text", "type": null, "description": ""}], "created_at": 1784670933.4025564, "supported_languages": null}, "macro.dbt.default__position": {"name": "default__position", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "unique_id": "macro.dbt.default__position", "macro_sql": "{% macro default__position(substring_text, string_text) %}\n\n position(\n {{ substring_text }} in {{ string_text }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "substring_text", "type": null, "description": ""}, {"name": "string_text", "type": null, "description": ""}], "created_at": 1784670933.4028354, "supported_languages": null}, "macro.dbt.safe_cast": {"name": "safe_cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "unique_id": "macro.dbt.safe_cast", "macro_sql": "{% macro safe_cast(field, type) %}\n {{ return(adapter.dispatch('safe_cast', 'dbt') (field, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670933.4034123, "supported_languages": null}, "macro.dbt.default__safe_cast": {"name": "default__safe_cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "unique_id": "macro.dbt.default__safe_cast", "macro_sql": "{% macro default__safe_cast(field, type) %}\n {# most databases don't support this function yet\n so we just need to use cast #}\n cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670933.403703, "supported_languages": null}, "macro.dbt.datediff": {"name": "datediff", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt.datediff", "macro_sql": "{% macro datediff(first_date, second_date, datepart) %}\n {{ return(adapter.dispatch('datediff', 'dbt')(first_date, second_date, datepart)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "first_date", "type": null, "description": ""}, {"name": "second_date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.4043248, "supported_languages": null}, "macro.dbt.default__datediff": {"name": "default__datediff", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt.default__datediff", "macro_sql": "{% macro default__datediff(first_date, second_date, datepart) -%}\n\n datediff(\n {{ datepart }},\n {{ first_date }},\n {{ second_date }}\n )\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "first_date", "type": null, "description": ""}, {"name": "second_date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.4046686, "supported_languages": null}, "macro.dbt.cast_bool_to_text": {"name": "cast_bool_to_text", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "unique_id": "macro.dbt.cast_bool_to_text", "macro_sql": "{% macro cast_bool_to_text(field) %}\n {{ adapter.dispatch('cast_bool_to_text', 'dbt') (field) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}], "created_at": 1784670933.4051616, "supported_languages": null}, "macro.dbt.default__cast_bool_to_text": {"name": "default__cast_bool_to_text", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "unique_id": "macro.dbt.default__cast_bool_to_text", "macro_sql": "{% macro default__cast_bool_to_text(field) %}\n cast({{ field }} as {{ api.Column.translate_type('string') }})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}], "created_at": 1784670933.4054973, "supported_languages": null}, "macro.dbt.last_day": {"name": "last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.last_day", "macro_sql": "{% macro last_day(date, datepart) %}\n {{ return(adapter.dispatch('last_day', 'dbt') (date, datepart)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.4061158, "supported_languages": null}, "macro.dbt.default_last_day": {"name": "default_last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.default_last_day", "macro_sql": "\n\n{%- macro default_last_day(date, datepart) -%}\n cast(\n {{dbt.dateadd('day', '-1',\n dbt.dateadd(datepart, '1', dbt.date_trunc(datepart, date))\n )}}\n as date)\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.4066527, "supported_languages": null}, "macro.dbt.default__last_day": {"name": "default__last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.default__last_day", "macro_sql": "{% macro default__last_day(date, datepart) -%}\n {{dbt.default_last_day(date, datepart)}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.406954, "supported_languages": null}, "macro.dbt.except": {"name": "except", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "unique_id": "macro.dbt.except", "macro_sql": "{% macro except() %}\n {{ return(adapter.dispatch('except', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4074283, "supported_languages": null}, "macro.dbt.default__except": {"name": "default__except", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "unique_id": "macro.dbt.default__except", "macro_sql": "{% macro default__except() %}\n\n except\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4076974, "supported_languages": null}, "macro.dbt.get_powers_of_two": {"name": "get_powers_of_two", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.get_powers_of_two", "macro_sql": "{% macro get_powers_of_two(upper_bound) %}\n {{ return(adapter.dispatch('get_powers_of_two', 'dbt')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "upper_bound", "type": null, "description": ""}], "created_at": 1784670933.4085474, "supported_languages": null}, "macro.dbt.default__get_powers_of_two": {"name": "default__get_powers_of_two", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.default__get_powers_of_two", "macro_sql": "{% macro default__get_powers_of_two(upper_bound) %}\n\n {% if upper_bound <= 0 %}\n {{ exceptions.raise_compiler_error(\"upper bound must be positive\") }}\n {% endif %}\n\n {% for _ in range(1, 100) %}\n {% if upper_bound <= 2 ** loop.index %}{{ return(loop.index) }}{% endif %}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "upper_bound", "type": null, "description": ""}], "created_at": 1784670933.4093883, "supported_languages": null}, "macro.dbt.generate_series": {"name": "generate_series", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "upper_bound", "type": null, "description": ""}], "created_at": 1784670933.409761, "supported_languages": null}, "macro.dbt.default__generate_series": {"name": "default__generate_series", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.default__generate_series", "macro_sql": "{% macro default__generate_series(upper_bound) %}\n\n {% set n = dbt.get_powers_of_two(upper_bound) %}\n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n {% for i in range(n) %}\n p{{i}}.generated_number * power(2, {{i}})\n {% if not loop.last %} + {% endif %}\n {% endfor %}\n + 1\n as generated_number\n\n from\n\n {% for i in range(n) %}\n p as p{{i}}\n {% if not loop.last %} cross join {% endif %}\n {% endfor %}\n\n )\n\n select *\n from unioned\n where generated_number <= {{upper_bound}}\n order by generated_number\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "upper_bound", "type": null, "description": ""}], "created_at": 1784670933.4108038, "supported_languages": null}, "macro.dbt.length": {"name": "length", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "unique_id": "macro.dbt.length", "macro_sql": "{% macro length(expression) -%}\n {{ return(adapter.dispatch('length', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__length"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expression", "type": null, "description": ""}], "created_at": 1784670933.4113247, "supported_languages": null}, "macro.dbt.default__length": {"name": "default__length", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "unique_id": "macro.dbt.default__length", "macro_sql": "{% macro default__length(expression) %}\n\n length(\n {{ expression }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expression", "type": null, "description": ""}], "created_at": 1784670933.4115486, "supported_languages": null}, "macro.dbt.array_append": {"name": "array_append", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "unique_id": "macro.dbt.array_append", "macro_sql": "{% macro array_append(array, new_element) -%}\n {{ return(adapter.dispatch('array_append', 'dbt')(array, new_element)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_append"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "array", "type": null, "description": ""}, {"name": "new_element", "type": null, "description": ""}], "created_at": 1784670933.4121213, "supported_languages": null}, "macro.dbt.default__array_append": {"name": "default__array_append", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "unique_id": "macro.dbt.default__array_append", "macro_sql": "{% macro default__array_append(array, new_element) -%}\n array_append({{ array }}, {{ new_element }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "array", "type": null, "description": ""}, {"name": "new_element", "type": null, "description": ""}], "created_at": 1784670933.412399, "supported_languages": null}, "macro.dbt.cast": {"name": "cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast.sql", "original_file_path": "macros/utils/cast.sql", "unique_id": "macro.dbt.cast", "macro_sql": "{% macro cast(field, type) %}\n {{ return(adapter.dispatch('cast', 'dbt') (field, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670933.412955, "supported_languages": null}, "macro.dbt.default__cast": {"name": "default__cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast.sql", "original_file_path": "macros/utils/cast.sql", "unique_id": "macro.dbt.default__cast", "macro_sql": "{% macro default__cast(field, type) %}\n cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670933.4132562, "supported_languages": null}, "macro.dbt.date": {"name": "date", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date.sql", "original_file_path": "macros/utils/date.sql", "unique_id": "macro.dbt.date", "macro_sql": "{% macro date(year, month, day) %}\n {{ return(adapter.dispatch('date', 'dbt') (year, month, day)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__date"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "year", "type": null, "description": ""}, {"name": "month", "type": null, "description": ""}, {"name": "day", "type": null, "description": ""}], "created_at": 1784670933.413877, "supported_languages": null}, "macro.dbt.default__date": {"name": "default__date", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date.sql", "original_file_path": "macros/utils/date.sql", "unique_id": "macro.dbt.default__date", "macro_sql": "{% macro default__date(year, month, day) -%}\n {%- set dt = modules.datetime.date(year, month, day) -%}\n {%- set iso_8601_formatted_date = dt.strftime('%Y-%m-%d') -%}\n to_date('{{ iso_8601_formatted_date }}', 'YYYY-MM-DD')\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "year", "type": null, "description": ""}, {"name": "month", "type": null, "description": ""}, {"name": "day", "type": null, "description": ""}], "created_at": 1784670933.414477, "supported_languages": null}, "macro.dbt.replace": {"name": "replace", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "unique_id": "macro.dbt.replace", "macro_sql": "{% macro replace(field, old_chars, new_chars) -%}\n {{ return(adapter.dispatch('replace', 'dbt') (field, old_chars, new_chars)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__replace"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "old_chars", "type": null, "description": ""}, {"name": "new_chars", "type": null, "description": ""}], "created_at": 1784670933.4150937, "supported_languages": null}, "macro.dbt.default__replace": {"name": "default__replace", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "unique_id": "macro.dbt.default__replace", "macro_sql": "{% macro default__replace(field, old_chars, new_chars) %}\n\n replace(\n {{ field }},\n {{ old_chars }},\n {{ new_chars }}\n )\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "old_chars", "type": null, "description": ""}, {"name": "new_chars", "type": null, "description": ""}], "created_at": 1784670933.4154437, "supported_languages": null}, "macro.dbt.bool_or": {"name": "bool_or", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "unique_id": "macro.dbt.bool_or", "macro_sql": "{% macro bool_or(expression) -%}\n {{ return(adapter.dispatch('bool_or', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__bool_or"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expression", "type": null, "description": ""}], "created_at": 1784670933.415933, "supported_languages": null}, "macro.dbt.default__bool_or": {"name": "default__bool_or", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "unique_id": "macro.dbt.default__bool_or", "macro_sql": "{% macro default__bool_or(expression) -%}\n\n bool_or({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expression", "type": null, "description": ""}], "created_at": 1784670933.4162788, "supported_languages": null}, "macro.dbt.array_concat": {"name": "array_concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "unique_id": "macro.dbt.array_concat", "macro_sql": "{% macro array_concat(array_1, array_2) -%}\n {{ return(adapter.dispatch('array_concat', 'dbt')(array_1, array_2)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "array_1", "type": null, "description": ""}, {"name": "array_2", "type": null, "description": ""}], "created_at": 1784670933.41681, "supported_languages": null}, "macro.dbt.default__array_concat": {"name": "default__array_concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "unique_id": "macro.dbt.default__array_concat", "macro_sql": "{% macro default__array_concat(array_1, array_2) -%}\n array_cat({{ array_1 }}, {{ array_2 }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "array_1", "type": null, "description": ""}, {"name": "array_2", "type": null, "description": ""}], "created_at": 1784670933.4171112, "supported_languages": null}, "macro.dbt.dateadd": {"name": "dateadd", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt.dateadd", "macro_sql": "{% macro dateadd(datepart, interval, from_date_or_timestamp) %}\n {{ return(adapter.dispatch('dateadd', 'dbt')(datepart, interval, from_date_or_timestamp)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "from_date_or_timestamp", "type": null, "description": ""}], "created_at": 1784670933.41771, "supported_languages": null}, "macro.dbt.default__dateadd": {"name": "default__dateadd", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt.default__dateadd", "macro_sql": "{% macro default__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n dateadd(\n {{ datepart }},\n {{ interval }},\n {{ from_date_or_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "from_date_or_timestamp", "type": null, "description": ""}], "created_at": 1784670933.418067, "supported_languages": null}, "macro.dbt.any_value": {"name": "any_value", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt.any_value", "macro_sql": "{% macro any_value(expression) -%}\n {{ return(adapter.dispatch('any_value', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__any_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expression", "type": null, "description": ""}], "created_at": 1784670933.4185557, "supported_languages": null}, "macro.dbt.default__any_value": {"name": "default__any_value", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt.default__any_value", "macro_sql": "{% macro default__any_value(expression) -%}\n\n any_value({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expression", "type": null, "description": ""}], "created_at": 1784670933.4187784, "supported_languages": null}, "macro.dbt.listagg": {"name": "listagg", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt.listagg", "macro_sql": "{% macro listagg(measure, delimiter_text=\"','\", order_by_clause=none, limit_num=none) -%}\n {{ return(adapter.dispatch('listagg', 'dbt') (measure, delimiter_text, order_by_clause, limit_num)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__listagg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "measure", "type": null, "description": ""}, {"name": "delimiter_text", "type": null, "description": ""}, {"name": "order_by_clause", "type": null, "description": ""}, {"name": "limit_num", "type": null, "description": ""}], "created_at": 1784670933.4196405, "supported_languages": null}, "macro.dbt.default__listagg": {"name": "default__listagg", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt.default__listagg", "macro_sql": "{% macro default__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}\n\n {% if limit_num -%}\n array_to_string(\n array_slice(\n array_agg(\n {{ measure }}\n ){% if order_by_clause -%}\n within group ({{ order_by_clause }})\n {%- endif %}\n ,0\n ,{{ limit_num }}\n ),\n {{ delimiter_text }}\n )\n {%- else %}\n listagg(\n {{ measure }},\n {{ delimiter_text }}\n )\n {% if order_by_clause -%}\n within group ({{ order_by_clause }})\n {%- endif %}\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "measure", "type": null, "description": ""}, {"name": "delimiter_text", "type": null, "description": ""}, {"name": "order_by_clause", "type": null, "description": ""}, {"name": "limit_num", "type": null, "description": ""}], "created_at": 1784670933.4204726, "supported_languages": null}, "macro.dbt.escape_single_quotes": {"name": "escape_single_quotes", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "unique_id": "macro.dbt.escape_single_quotes", "macro_sql": "{% macro escape_single_quotes(expression) %}\n {{ return(adapter.dispatch('escape_single_quotes', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__escape_single_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expression", "type": null, "description": ""}], "created_at": 1784670933.4209988, "supported_languages": null}, "macro.dbt.default__escape_single_quotes": {"name": "default__escape_single_quotes", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "unique_id": "macro.dbt.default__escape_single_quotes", "macro_sql": "{% macro default__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\",\"''\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expression", "type": null, "description": ""}], "created_at": 1784670933.4213128, "supported_languages": null}, "macro.dbt.concat": {"name": "concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "unique_id": "macro.dbt.concat", "macro_sql": "{% macro concat(fields) -%}\n {{ return(adapter.dispatch('concat', 'dbt')(fields)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "fields", "type": null, "description": ""}], "created_at": 1784670933.421795, "supported_languages": null}, "macro.dbt.default__concat": {"name": "default__concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "unique_id": "macro.dbt.default__concat", "macro_sql": "{% macro default__concat(fields) -%}\n {{ fields|join(' || ') }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "fields", "type": null, "description": ""}], "created_at": 1784670933.4220784, "supported_languages": null}, "macro.dbt.date_trunc": {"name": "date_trunc", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "unique_id": "macro.dbt.date_trunc", "macro_sql": "{% macro date_trunc(datepart, date) -%}\n {{ return(adapter.dispatch('date_trunc', 'dbt') (datepart, date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "date", "type": null, "description": ""}], "created_at": 1784670933.4226162, "supported_languages": null}, "macro.dbt.default__date_trunc": {"name": "default__date_trunc", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "unique_id": "macro.dbt.default__date_trunc", "macro_sql": "{% macro default__date_trunc(datepart, date) -%}\n date_trunc('{{datepart}}', {{date}})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "date", "type": null, "description": ""}], "created_at": 1784670933.4228966, "supported_languages": null}, "macro.dbt.string_literal": {"name": "string_literal", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "unique_id": "macro.dbt.string_literal", "macro_sql": "{%- macro string_literal(value) -%}\n {{ return(adapter.dispatch('string_literal', 'dbt') (value)) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__string_literal"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "value", "type": null, "description": ""}], "created_at": 1784670933.4239647, "supported_languages": null}, "macro.dbt.default__string_literal": {"name": "default__string_literal", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "unique_id": "macro.dbt.default__string_literal", "macro_sql": "{% macro default__string_literal(value) -%}\n '{{ value }}'\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "value", "type": null, "description": ""}], "created_at": 1784670933.4242125, "supported_languages": null}, "macro.dbt.equals": {"name": "equals", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/equals.sql", "original_file_path": "macros/utils/equals.sql", "unique_id": "macro.dbt.equals", "macro_sql": "{% macro equals(expr1, expr2) %}\n {{ return(adapter.dispatch('equals', 'dbt') (expr1, expr2)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__equals"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expr1", "type": null, "description": ""}, {"name": "expr2", "type": null, "description": ""}], "created_at": 1784670933.4248192, "supported_languages": null}, "macro.dbt.default__equals": {"name": "default__equals", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/equals.sql", "original_file_path": "macros/utils/equals.sql", "unique_id": "macro.dbt.default__equals", "macro_sql": "{% macro default__equals(expr1, expr2) -%}\n{%- if adapter.behavior.enable_truthy_nulls_equals_macro.no_warn %}\n case when (({{ expr1 }} = {{ expr2 }}) or ({{ expr1 }} is null and {{ expr2 }} is null))\n then 0\n else 1\n end = 0\n{%- else -%}\n ({{ expr1 }} = {{ expr2 }})\n{%- endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expr1", "type": null, "description": ""}, {"name": "expr2", "type": null, "description": ""}], "created_at": 1784670933.4254272, "supported_languages": null}, "macro.dbt.type_string": {"name": "type_string", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_string", "macro_sql": "\n\n{%- macro type_string() -%}\n {{ return(adapter.dispatch('type_string', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4266975, "supported_languages": null}, "macro.dbt.default__type_string": {"name": "default__type_string", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_string", "macro_sql": "{% macro default__type_string() %}\n {{ return(api.Column.translate_type(\"string\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.427006, "supported_languages": null}, "macro.dbt.type_timestamp": {"name": "type_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_timestamp", "macro_sql": "\n\n{%- macro type_timestamp() -%}\n {{ return(adapter.dispatch('type_timestamp', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4273586, "supported_languages": null}, "macro.dbt.default__type_timestamp": {"name": "default__type_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_timestamp", "macro_sql": "{% macro default__type_timestamp() %}\n {{ return(api.Column.translate_type(\"timestamp\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4276717, "supported_languages": null}, "macro.dbt.type_float": {"name": "type_float", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_float", "macro_sql": "\n\n{%- macro type_float() -%}\n {{ return(adapter.dispatch('type_float', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4279954, "supported_languages": null}, "macro.dbt.default__type_float": {"name": "default__type_float", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_float", "macro_sql": "{% macro default__type_float() %}\n {{ return(api.Column.translate_type(\"float\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4283202, "supported_languages": null}, "macro.dbt.type_numeric": {"name": "type_numeric", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_numeric", "macro_sql": "\n\n{%- macro type_numeric() -%}\n {{ return(adapter.dispatch('type_numeric', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4286504, "supported_languages": null}, "macro.dbt.default__type_numeric": {"name": "default__type_numeric", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_numeric", "macro_sql": "{% macro default__type_numeric() %}\n {{ return(api.Column.numeric_type(\"numeric\", 28, 6)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.429, "supported_languages": null}, "macro.dbt.type_bigint": {"name": "type_bigint", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_bigint", "macro_sql": "\n\n{%- macro type_bigint() -%}\n {{ return(adapter.dispatch('type_bigint', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_bigint"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4293456, "supported_languages": null}, "macro.dbt.default__type_bigint": {"name": "default__type_bigint", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_bigint", "macro_sql": "{% macro default__type_bigint() %}\n {{ return(api.Column.translate_type(\"bigint\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4296489, "supported_languages": null}, "macro.dbt.type_int": {"name": "type_int", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_int", "macro_sql": "\n\n{%- macro type_int() -%}\n {{ return(adapter.dispatch('type_int', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4299667, "supported_languages": null}, "macro.dbt.default__type_int": {"name": "default__type_int", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_int", "macro_sql": "{%- macro default__type_int() -%}\n {{ return(api.Column.translate_type(\"integer\")) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4302838, "supported_languages": null}, "macro.dbt.type_boolean": {"name": "type_boolean", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_boolean", "macro_sql": "\n\n{%- macro type_boolean() -%}\n {{ return(adapter.dispatch('type_boolean', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_boolean"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4307244, "supported_languages": null}, "macro.dbt.default__type_boolean": {"name": "default__type_boolean", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_boolean", "macro_sql": "{%- macro default__type_boolean() -%}\n {{ return(api.Column.translate_type(\"boolean\")) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4310281, "supported_languages": null}, "macro.dbt.hash": {"name": "hash", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "unique_id": "macro.dbt.hash", "macro_sql": "{% macro hash(field) -%}\n {{ return(adapter.dispatch('hash', 'dbt') (field)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__hash"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}], "created_at": 1784670933.4315612, "supported_languages": null}, "macro.dbt.default__hash": {"name": "default__hash", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "unique_id": "macro.dbt.default__hash", "macro_sql": "{% macro default__hash(field) -%}\n md5(cast({{ field }} as {{ api.Column.translate_type('string') }}))\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}], "created_at": 1784670933.4318967, "supported_languages": null}, "macro.dbt.get_intervals_between": {"name": "get_intervals_between", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.get_intervals_between", "macro_sql": "{% macro get_intervals_between(start_date, end_date, datepart) -%}\n {{ return(adapter.dispatch('get_intervals_between', 'dbt')(start_date, end_date, datepart)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "start_date", "type": null, "description": ""}, {"name": "end_date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.4328487, "supported_languages": null}, "macro.dbt.default__get_intervals_between": {"name": "default__get_intervals_between", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.default__get_intervals_between", "macro_sql": "{% macro default__get_intervals_between(start_date, end_date, datepart) -%}\n {%- call statement('get_intervals_between', fetch_result=True) %}\n\n select {{ dbt.datediff(start_date, end_date, datepart) }}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_intervals_between') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values[0]) }}\n {%- else -%}\n {{ return(1) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "start_date", "type": null, "description": ""}, {"name": "end_date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.4340863, "supported_languages": null}, "macro.dbt.date_spine": {"name": "date_spine", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.date_spine", "macro_sql": "{% macro date_spine(datepart, start_date, end_date) %}\n {{ return(adapter.dispatch('date_spine', 'dbt')(datepart, start_date, end_date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "start_date", "type": null, "description": ""}, {"name": "end_date", "type": null, "description": ""}], "created_at": 1784670933.4345837, "supported_languages": null}, "macro.dbt.default__date_spine": {"name": "default__date_spine", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.default__date_spine", "macro_sql": "{% macro default__date_spine(datepart, start_date, end_date) %}\n\n\n {# call as follows:\n\n date_spine(\n \"day\",\n \"to_date('01/01/2016', 'mm/dd/yyyy')\",\n \"dbt.dateadd(week, 1, current_date)\"\n ) #}\n\n\n with rawdata as (\n\n {{dbt.generate_series(\n dbt.get_intervals_between(start_date, end_date, datepart)\n )}}\n\n ),\n\n all_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n \"row_number() over (order by 1) - 1\",\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n\n ),\n\n filtered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n )\n\n select * from filtered\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.generate_series", "macro.dbt.get_intervals_between", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "start_date", "type": null, "description": ""}, {"name": "end_date", "type": null, "description": ""}], "created_at": 1784670933.435319, "supported_languages": null}, "macro.dbt.split_part": {"name": "split_part", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt.split_part", "macro_sql": "{% macro split_part(string_text, delimiter_text, part_number) %}\n {{ return(adapter.dispatch('split_part', 'dbt') (string_text, delimiter_text, part_number)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string_text", "type": null, "description": ""}, {"name": "delimiter_text", "type": null, "description": ""}, {"name": "part_number", "type": null, "description": ""}], "created_at": 1784670933.436034, "supported_languages": null}, "macro.dbt.default__split_part": {"name": "default__split_part", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt.default__split_part", "macro_sql": "{% macro default__split_part(string_text, delimiter_text, part_number) %}\n\n split_part(\n {{ string_text }},\n {{ delimiter_text }},\n {{ part_number }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string_text", "type": null, "description": ""}, {"name": "delimiter_text", "type": null, "description": ""}, {"name": "part_number", "type": null, "description": ""}], "created_at": 1784670933.436402, "supported_languages": null}, "macro.dbt._split_part_negative": {"name": "_split_part_negative", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt._split_part_negative", "macro_sql": "{% macro _split_part_negative(string_text, delimiter_text, part_number) %}\n\n split_part(\n {{ string_text }},\n {{ delimiter_text }},\n length({{ string_text }})\n - length(\n replace({{ string_text }}, {{ delimiter_text }}, '')\n ) + 2 + {{ part_number }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string_text", "type": null, "description": ""}, {"name": "delimiter_text", "type": null, "description": ""}, {"name": "part_number", "type": null, "description": ""}], "created_at": 1784670933.4368563, "supported_languages": null}, "macro.dbt.right": {"name": "right", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "unique_id": "macro.dbt.right", "macro_sql": "{% macro right(string_text, length_expression) -%}\n {{ return(adapter.dispatch('right', 'dbt') (string_text, length_expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__right"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string_text", "type": null, "description": ""}, {"name": "length_expression", "type": null, "description": ""}], "created_at": 1784670933.4374428, "supported_languages": null}, "macro.dbt.default__right": {"name": "default__right", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "unique_id": "macro.dbt.default__right", "macro_sql": "{% macro default__right(string_text, length_expression) %}\n\n right(\n {{ string_text }},\n {{ length_expression }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string_text", "type": null, "description": ""}, {"name": "length_expression", "type": null, "description": ""}], "created_at": 1784670933.4377398, "supported_languages": null}, "macro.dbt.intersect": {"name": "intersect", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "unique_id": "macro.dbt.intersect", "macro_sql": "{% macro intersect() %}\n {{ return(adapter.dispatch('intersect', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__intersect"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.438219, "supported_languages": null}, "macro.dbt.default__intersect": {"name": "default__intersect", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "unique_id": "macro.dbt.default__intersect", "macro_sql": "{% macro default__intersect() %}\n\n intersect\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.438395, "supported_languages": null}, "macro.dbt.run_hooks": {"name": "run_hooks", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.run_hooks", "macro_sql": "{% macro run_hooks(hooks, inside_transaction=True) %}\n {% for hook in hooks | selectattr('transaction', 'equalto', inside_transaction) %}\n {% if not inside_transaction and loop.first %}\n {% call statement(auto_begin=inside_transaction) %}\n commit;\n {% endcall %}\n {% endif %}\n {% set rendered = render(hook.get('sql')) | trim %}\n {% if (rendered | length) > 0 %}\n {% call statement(auto_begin=inside_transaction) %}\n {{ rendered }}\n {% endcall %}\n {% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "hooks", "type": null, "description": ""}, {"name": "inside_transaction", "type": null, "description": ""}], "created_at": 1784670933.4402573, "supported_languages": null}, "macro.dbt.make_hook_config": {"name": "make_hook_config", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.make_hook_config", "macro_sql": "{% macro make_hook_config(sql, inside_transaction) %}\n {{ tojson({\"sql\": sql, \"transaction\": inside_transaction}) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}, {"name": "inside_transaction", "type": null, "description": ""}], "created_at": 1784670933.440662, "supported_languages": null}, "macro.dbt.before_begin": {"name": "before_begin", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.before_begin", "macro_sql": "{% macro before_begin(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.4409583, "supported_languages": null}, "macro.dbt.in_transaction": {"name": "in_transaction", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.in_transaction", "macro_sql": "{% macro in_transaction(sql) %}\n {{ make_hook_config(sql, inside_transaction=True) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.4413376, "supported_languages": null}, "macro.dbt.after_commit": {"name": "after_commit", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.after_commit", "macro_sql": "{% macro after_commit(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.4416373, "supported_languages": null}, "macro.dbt.set_sql_header": {"name": "set_sql_header", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.set_sql_header", "macro_sql": "{% macro set_sql_header(config) -%}\n {{ config.set('sql_header', caller()) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "config", "type": null, "description": ""}], "created_at": 1784670933.4422426, "supported_languages": null}, "macro.dbt.should_full_refresh": {"name": "should_full_refresh", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.should_full_refresh", "macro_sql": "{% macro should_full_refresh() %}\n {% set config_full_refresh = config.get('full_refresh') %}\n {% if config_full_refresh is none %}\n {% set config_full_refresh = flags.FULL_REFRESH %}\n {% endif %}\n {% do return(config_full_refresh) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4428554, "supported_languages": null}, "macro.dbt.should_store_failures": {"name": "should_store_failures", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.should_store_failures", "macro_sql": "{% macro should_store_failures() %}\n {% set config_store_failures = config.get('store_failures') %}\n {% if config_store_failures is none %}\n {% set config_store_failures = flags.STORE_FAILURES %}\n {% endif %}\n {% do return(config_store_failures) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4434907, "supported_languages": null}, "macro.dbt.materialization_function_default": {"name": "materialization_function_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/function.sql", "original_file_path": "macros/materializations/functions/function.sql", "unique_id": "macro.dbt.materialization_function_default", "macro_sql": "{% materialization function, default, supported_languages=['sql', 'python', 'javascript'] %}\n {% set existing_relation = load_cached_relation(this) %}\n {% set target_relation = this.incorporate(type=this.Function) %}\n\n {{ run_hooks(pre_hooks) }}\n\n {% set function_config = this.get_function_config(model) %}\n {% set macro_name = this.get_function_macro_name(function_config) %}\n\n {# Doing this aliasing of adapter.dispatch is a hacky way to disable the static analysis of actually calling adapter.dispatch #}\n {# This is necessary because the static analysis breaks being able to dynamically pass a macro_name #}\n {% set _dispatch = adapter.dispatch %}\n\n {% set build_sql = _dispatch(macro_name, 'dbt')(target_relation) %}\n {{ function_execute_build_sql(build_sql, existing_relation, target_relation) }}\n {{ run_hooks(post_hooks) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.run_hooks", "macro.dbt.function_execute_build_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "supported_languages", "type": null, "description": ""}], "created_at": 1784670933.4455295, "supported_languages": ["sql", "python", "javascript"]}, "macro.dbt.function_execute_build_sql": {"name": "function_execute_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/helpers.sql", "original_file_path": "macros/materializations/functions/helpers.sql", "unique_id": "macro.dbt.function_execute_build_sql", "macro_sql": "{% macro function_execute_build_sql(build_sql, existing_relation, target_relation) %}\n {{ return(adapter.dispatch('function_execute_build_sql', 'dbt')(build_sql, existing_relation, target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__function_execute_build_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "build_sql", "type": null, "description": ""}, {"name": "existing_relation", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.4462903, "supported_languages": null}, "macro.dbt.default__function_execute_build_sql": {"name": "default__function_execute_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/helpers.sql", "original_file_path": "macros/materializations/functions/helpers.sql", "unique_id": "macro.dbt.default__function_execute_build_sql", "macro_sql": "{% macro default__function_execute_build_sql(build_sql, existing_relation, target_relation) %}\n\n {% set grant_config = config.get('grants') %}\n\n {% call statement(name=\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ adapter.commit() }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "build_sql", "type": null, "description": ""}, {"name": "existing_relation", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.4473538, "supported_languages": null}, "macro.dbt.get_aggregate_function_create_replace_signature": {"name": "get_aggregate_function_create_replace_signature", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_aggregate_function_create_replace_signature", "macro_sql": "{% macro get_aggregate_function_create_replace_signature(target_relation) %}\n {{ return(adapter.dispatch('get_aggregate_function_create_replace_signature', 'dbt')(target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_aggregate_function_create_replace_signature"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.4485867, "supported_languages": null}, "macro.dbt.default__get_aggregate_function_create_replace_signature": {"name": "default__get_aggregate_function_create_replace_signature", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_aggregate_function_create_replace_signature", "macro_sql": "{% macro default__get_aggregate_function_create_replace_signature(target_relation) %}\n CREATE OR REPLACE AGGREGATE FUNCTION {{ target_relation.render() }} ({{ get_formatted_aggregate_function_args()}})\n RETURNS {{ model.returns.data_type }}\n {{ get_function_language_specifier() }}\n {{ get_aggregate_function_volatility_specifier() }}\n {% if model.get('language') == 'python' %}\n {{ get_function_python_options() }}\n {% endif %}\n AS\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_formatted_aggregate_function_args", "macro.dbt.get_function_language_specifier", "macro.dbt.get_aggregate_function_volatility_specifier", "macro.dbt.get_function_python_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.4493256, "supported_languages": null}, "macro.dbt.get_formatted_aggregate_function_args": {"name": "get_formatted_aggregate_function_args", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_formatted_aggregate_function_args", "macro_sql": "{% macro get_formatted_aggregate_function_args() %}\n {{ return(adapter.dispatch('get_formatted_aggregate_function_args', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_formatted_aggregate_function_args"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4496655, "supported_languages": null}, "macro.dbt.default__get_formatted_aggregate_function_args": {"name": "default__get_formatted_aggregate_function_args", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_formatted_aggregate_function_args", "macro_sql": "{% macro default__get_formatted_aggregate_function_args() %}\n {# conveniently we can reuse the sql scalar function args #}\n {{ formatted_scalar_function_args_sql() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.formatted_scalar_function_args_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.449905, "supported_languages": null}, "macro.dbt.get_function_language_specifier": {"name": "get_function_language_specifier", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_function_language_specifier", "macro_sql": "{% macro get_function_language_specifier() %}\n {{ return(adapter.dispatch('get_function_language_specifier', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_function_language_specifier"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4502552, "supported_languages": null}, "macro.dbt.default__get_function_language_specifier": {"name": "default__get_function_language_specifier", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_function_language_specifier", "macro_sql": "{% macro default__get_function_language_specifier() %}\n {% set language = model.get('language') %}\n {% if language == 'sql' %}\n {# generally you dont need to specify the language for sql functions #}\n {% elif language == 'python' %}\n LANGUAGE PYTHON\n {% elif language == 'javascript' %}\n LANGUAGE js\n {% else %}\n {{ 'LANGUAGE ' ~ language.upper() }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4511478, "supported_languages": null}, "macro.dbt.get_aggregate_function_volatility_specifier": {"name": "get_aggregate_function_volatility_specifier", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_aggregate_function_volatility_specifier", "macro_sql": "{% macro get_aggregate_function_volatility_specifier() %}\n {{ return(adapter.dispatch('get_aggregate_function_volatility_specifier', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_aggregate_function_volatility_specifier"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4514995, "supported_languages": null}, "macro.dbt.default__get_aggregate_function_volatility_specifier": {"name": "default__get_aggregate_function_volatility_specifier", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_aggregate_function_volatility_specifier", "macro_sql": "{% macro default__get_aggregate_function_volatility_specifier() %}\n {{ scalar_function_volatility_sql() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.scalar_function_volatility_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4517224, "supported_languages": null}, "macro.dbt.get_function_python_options": {"name": "get_function_python_options", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.get_function_python_options", "macro_sql": "{% macro get_function_python_options() %}\n {{ return(adapter.dispatch('get_function_python_options', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_function_python_options"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4520679, "supported_languages": null}, "macro.dbt.default__get_function_python_options": {"name": "default__get_function_python_options", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/aggregate.sql", "original_file_path": "macros/materializations/functions/aggregate.sql", "unique_id": "macro.dbt.default__get_function_python_options", "macro_sql": "{% macro default__get_function_python_options() %}\n RUNTIME_VERSION = '{{ model.config.get('runtime_version') }}'\n HANDLER = '{{ model.config.get('entry_point') }}'\n {% set packages = model.config.get('packages', []) %}\n {% if packages %}\n PACKAGES = ('{{ packages | join(\"','\") }}')\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4528122, "supported_languages": null}, "macro.dbt.scalar_function_sql": {"name": "scalar_function_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_sql", "macro_sql": "{% macro scalar_function_sql(target_relation) %}\n {{ return(adapter.dispatch('scalar_function_sql', 'dbt')(target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.4543927, "supported_languages": null}, "macro.dbt.default__scalar_function_sql": {"name": "default__scalar_function_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_sql", "macro_sql": "{% macro default__scalar_function_sql(target_relation) %}\n {{ scalar_function_create_replace_signature_sql(target_relation) }}\n {{ scalar_function_body_sql() }};\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.scalar_function_create_replace_signature_sql", "macro.dbt.scalar_function_body_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.4547224, "supported_languages": null}, "macro.dbt.scalar_function_create_replace_signature_sql": {"name": "scalar_function_create_replace_signature_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_create_replace_signature_sql", "macro_sql": "{% macro scalar_function_create_replace_signature_sql(target_relation) %}\n {{ return(adapter.dispatch('scalar_function_create_replace_signature_sql', 'dbt')(target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_create_replace_signature_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.455108, "supported_languages": null}, "macro.dbt.default__scalar_function_create_replace_signature_sql": {"name": "default__scalar_function_create_replace_signature_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_create_replace_signature_sql", "macro_sql": "{% macro default__scalar_function_create_replace_signature_sql(target_relation) %}\n CREATE OR REPLACE FUNCTION {{ target_relation.render() }} ({{ formatted_scalar_function_args_sql()}})\n RETURNS {{ model.returns.data_type }}\n {{ scalar_function_volatility_sql() }}\n AS\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.formatted_scalar_function_args_sql", "macro.dbt.scalar_function_volatility_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.4555402, "supported_languages": null}, "macro.dbt.formatted_scalar_function_args_sql": {"name": "formatted_scalar_function_args_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.formatted_scalar_function_args_sql", "macro_sql": "{% macro formatted_scalar_function_args_sql() %}\n {{ return(adapter.dispatch('formatted_scalar_function_args_sql', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__formatted_scalar_function_args_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.455872, "supported_languages": null}, "macro.dbt.formatted_scalar_function_args_javascript": {"name": "formatted_scalar_function_args_javascript", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.formatted_scalar_function_args_javascript", "macro_sql": "{% macro formatted_scalar_function_args_javascript() %}\n {{ return(adapter.dispatch('formatted_scalar_function_args_javascript', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__formatted_scalar_function_args_javascript"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4562402, "supported_languages": null}, "macro.dbt.default__formatted_scalar_function_args_sql": {"name": "default__formatted_scalar_function_args_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__formatted_scalar_function_args_sql", "macro_sql": "{% macro default__formatted_scalar_function_args_sql() %}\n {% set args = [] %}\n {% for arg in model.arguments -%}\n {%- do args.append(arg.name ~ ' ' ~ arg.data_type) -%}\n {%- endfor %}\n {{ args | join(', ') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4568877, "supported_languages": null}, "macro.dbt.default__formatted_scalar_function_args_javascript": {"name": "default__formatted_scalar_function_args_javascript", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__formatted_scalar_function_args_javascript", "macro_sql": "{% macro default__formatted_scalar_function_args_javascript() %}\n {% set msg = \"formatted_scalar_function_args_javascript not implemented for adapter \" ~ adapter.type() %}\n {% do exceptions.raise_compiler_error(msg) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.457321, "supported_languages": null}, "macro.dbt.scalar_function_body_sql": {"name": "scalar_function_body_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_body_sql", "macro_sql": "{% macro scalar_function_body_sql() %}\n {{ return(adapter.dispatch('scalar_function_body_sql', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_body_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4576523, "supported_languages": null}, "macro.dbt.default__scalar_function_body_sql": {"name": "default__scalar_function_body_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_body_sql", "macro_sql": "{% macro default__scalar_function_body_sql() %}\n $$\n {{ model.compiled_code }}\n $$ LANGUAGE SQL\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4578726, "supported_languages": null}, "macro.dbt.scalar_function_volatility_sql": {"name": "scalar_function_volatility_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_volatility_sql", "macro_sql": "{% macro scalar_function_volatility_sql() %}\n {{ return(adapter.dispatch('scalar_function_volatility_sql', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_volatility_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4582238, "supported_languages": null}, "macro.dbt.scalar_function_volatility_javascript": {"name": "scalar_function_volatility_javascript", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.scalar_function_volatility_javascript", "macro_sql": "{% macro scalar_function_volatility_javascript() %}\n {{ return(adapter.dispatch('scalar_function_volatility_javascript', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__scalar_function_volatility_javascript"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4585552, "supported_languages": null}, "macro.dbt.default__scalar_function_volatility_javascript": {"name": "default__scalar_function_volatility_javascript", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_volatility_javascript", "macro_sql": "{% macro default__scalar_function_volatility_javascript() %}\n {% set volatility = model.config.get('volatility') %}\n {% if volatility != none %}\n {% set msg = \"Volatility is not supported by \" ~ adapter.type() ~ \" in javascript UDF and will be ignored\" %}\n {% do exceptions.warn(msg) %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.459383, "supported_languages": null}, "macro.dbt.default__scalar_function_volatility_sql": {"name": "default__scalar_function_volatility_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__scalar_function_volatility_sql", "macro_sql": "{% macro default__scalar_function_volatility_sql() %}\n {% set volatility = model.config.get('volatility') %}\n {% if volatility == 'deterministic' %}\n IMMUTABLE\n {% elif volatility == 'stable' %}\n STABLE\n {% elif volatility == 'non-deterministic' %}\n VOLATILE\n {% elif volatility != none %}\n {# This shouldn't happen unless a new volatility is invented #}\n {% do unsupported_volatility_warning(volatility) %}\n {% endif %}\n {# If no volatility is set, don't add anything and let the data warehouse default it #}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.unsupported_volatility_warning"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4602332, "supported_languages": null}, "macro.dbt.unsupported_volatility_warning": {"name": "unsupported_volatility_warning", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.unsupported_volatility_warning", "macro_sql": "{% macro unsupported_volatility_warning(volatility) %}\n {{ return(adapter.dispatch('unsupported_volatility_warning', 'dbt')(volatility)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__unsupported_volatility_warning"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "volatility", "type": null, "description": ""}], "created_at": 1784670933.4606073, "supported_languages": null}, "macro.dbt.default__unsupported_volatility_warning": {"name": "default__unsupported_volatility_warning", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/functions/scalar.sql", "original_file_path": "macros/materializations/functions/scalar.sql", "unique_id": "macro.dbt.default__unsupported_volatility_warning", "macro_sql": "{% macro default__unsupported_volatility_warning(volatility) %}\n {% set msg = \"Found `\" ~ volatility ~ \"` volatility specified on function `\" ~ model.name ~ \"`. This volatility is not supported by \" ~ adapter.type() ~ \", and will be ignored\" %}\n {% do exceptions.warn(msg) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "volatility", "type": null, "description": ""}], "created_at": 1784670933.4611506, "supported_languages": null}, "macro.dbt.materialization_table_default": {"name": "materialization_table_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/table.sql", "original_file_path": "macros/materializations/models/table.sql", "unique_id": "macro.dbt.materialization_table_default", "macro_sql": "{% materialization table, default %}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='table') %}\n {%- set intermediate_relation = make_intermediate_relation(target_relation) -%}\n -- the intermediate_relation should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) -%}\n /*\n See ../view/view.sql for more information about this relation.\n */\n {%- set backup_relation_type = 'table' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n -- as above, the backup_relation should not already exist\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_table_as_sql(False, intermediate_relation, sql) }}\n {%- endcall %}\n\n {% do create_indexes(intermediate_relation) %}\n\n -- cleanup\n {% if existing_relation is not none %}\n /* Do the equivalent of rename_if_exists. 'existing_relation' could have been dropped\n since the variable was first set. */\n {% set existing_relation = load_cached_relation(existing_relation) %}\n {% if existing_relation is not none %}\n {{ adapter.rename_relation(existing_relation, backup_relation) }}\n {% endif %}\n {% endif %}\n\n {{ adapter.rename_relation(intermediate_relation, target_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n -- `COMMIT` happens here\n {{ adapter.commit() }}\n\n -- finally, drop the existing/backup relation after the commit\n {{ drop_relation_if_exists(backup_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks", "macro.dbt.statement", "macro.dbt.get_create_table_as_sql", "macro.dbt.create_indexes", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "supported_languages", "type": null, "description": ""}], "created_at": 1784670933.4652648, "supported_languages": ["sql"]}, "macro.dbt.materialization_materialized_view_default": {"name": "materialization_materialized_view_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialization_materialized_view_default", "macro_sql": "{% materialization materialized_view, default %}\n {% set existing_relation = load_cached_relation(this) %}\n {% set target_relation = this.incorporate(type=this.MaterializedView) %}\n {% set intermediate_relation = make_intermediate_relation(target_relation) %}\n {% set backup_relation_type = target_relation.MaterializedView if existing_relation is none else existing_relation.type %}\n {% set backup_relation = make_backup_relation(target_relation, backup_relation_type) %}\n\n {{ materialized_view_setup(backup_relation, intermediate_relation, pre_hooks) }}\n\n {% set build_sql = materialized_view_get_build_sql(existing_relation, target_relation, backup_relation, intermediate_relation) %}\n\n {% if build_sql == '' %}\n {{ materialized_view_execute_no_op(target_relation) }}\n {% else %}\n {{ materialized_view_execute_build_sql(build_sql, existing_relation, target_relation, post_hooks) }}\n {% endif %}\n\n {{ materialized_view_teardown(backup_relation, intermediate_relation, post_hooks) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.materialized_view_setup", "macro.dbt.materialized_view_get_build_sql", "macro.dbt.materialized_view_execute_no_op", "macro.dbt.materialized_view_execute_build_sql", "macro.dbt.materialized_view_teardown"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "supported_languages", "type": null, "description": ""}], "created_at": 1784670933.4683812, "supported_languages": ["sql"]}, "macro.dbt.materialized_view_setup": {"name": "materialized_view_setup", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_setup", "macro_sql": "{% macro materialized_view_setup(backup_relation, intermediate_relation, pre_hooks) %}\n\n -- backup_relation and intermediate_relation should not already exist in the database\n -- it's possible these exist because of a previous run that exited unexpectedly\n {% set preexisting_backup_relation = load_cached_relation(backup_relation) %}\n {% set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) %}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "backup_relation", "type": null, "description": ""}, {"name": "intermediate_relation", "type": null, "description": ""}, {"name": "pre_hooks", "type": null, "description": ""}], "created_at": 1784670933.4691737, "supported_languages": null}, "macro.dbt.materialized_view_teardown": {"name": "materialized_view_teardown", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_teardown", "macro_sql": "{% macro materialized_view_teardown(backup_relation, intermediate_relation, post_hooks) %}\n\n -- drop the temp relations if they exist to leave the database clean for the next run\n {{ drop_relation_if_exists(backup_relation) }}\n {{ drop_relation_if_exists(intermediate_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "backup_relation", "type": null, "description": ""}, {"name": "intermediate_relation", "type": null, "description": ""}, {"name": "post_hooks", "type": null, "description": ""}], "created_at": 1784670933.4696698, "supported_languages": null}, "macro.dbt.materialized_view_get_build_sql": {"name": "materialized_view_get_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_get_build_sql", "macro_sql": "{% macro materialized_view_get_build_sql(existing_relation, target_relation, backup_relation, intermediate_relation) %}\n\n {% set full_refresh_mode = should_full_refresh() %}\n\n -- determine the scenario we're in: create, full_refresh, alter, refresh data\n {% if existing_relation is none %}\n {% set build_sql = get_create_materialized_view_as_sql(target_relation, sql) %}\n {% elif full_refresh_mode or not existing_relation.is_materialized_view %}\n {% set build_sql = get_replace_sql(existing_relation, target_relation, sql) %}\n {% else %}\n\n -- get config options\n {% set on_configuration_change = config.get('on_configuration_change') %}\n {% set configuration_changes = get_materialized_view_configuration_changes(existing_relation, config) %}\n\n {% if configuration_changes is none %}\n {% set build_sql = refresh_materialized_view(target_relation) %}\n\n {% elif on_configuration_change == 'apply' %}\n {% set build_sql = get_alter_materialized_view_as_sql(target_relation, configuration_changes, sql, existing_relation, backup_relation, intermediate_relation) %}\n {% elif on_configuration_change == 'continue' %}\n {% set build_sql = '' %}\n {{ exceptions.warn(\"Configuration changes were identified and `on_configuration_change` was set to `continue` for `\" ~ target_relation.render() ~ \"`\") }}\n {% elif on_configuration_change == 'fail' %}\n {{ exceptions.raise_fail_fast_error(\"Configuration changes were identified and `on_configuration_change` was set to `fail` for `\" ~ target_relation.render() ~ \"`\") }}\n\n {% else %}\n -- this only happens if the user provides a value other than `apply`, 'skip', 'fail'\n {{ exceptions.raise_compiler_error(\"Unexpected configuration scenario\") }}\n\n {% endif %}\n\n {% endif %}\n\n {% do return(build_sql) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh", "macro.dbt.get_create_materialized_view_as_sql", "macro.dbt.get_replace_sql", "macro.dbt.get_materialized_view_configuration_changes", "macro.dbt.refresh_materialized_view", "macro.dbt.get_alter_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "existing_relation", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}, {"name": "backup_relation", "type": null, "description": ""}, {"name": "intermediate_relation", "type": null, "description": ""}], "created_at": 1784670933.472246, "supported_languages": null}, "macro.dbt.materialized_view_execute_no_op": {"name": "materialized_view_execute_no_op", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_execute_no_op", "macro_sql": "{% macro materialized_view_execute_no_op(target_relation) %}\n {% do store_raw_result(\n name=\"main\",\n message=\"skip \" ~ target_relation,\n code=\"skip\",\n rows_affected=\"-1\"\n ) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.4727163, "supported_languages": null}, "macro.dbt.materialized_view_execute_build_sql": {"name": "materialized_view_execute_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_execute_build_sql", "macro_sql": "{% macro materialized_view_execute_build_sql(build_sql, existing_relation, target_relation, post_hooks) %}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set grant_config = config.get('grants') %}\n\n {% call statement(name=\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "build_sql", "type": null, "description": ""}, {"name": "existing_relation", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}, {"name": "post_hooks", "type": null, "description": ""}], "created_at": 1784670933.4739952, "supported_languages": null}, "macro.dbt.materialization_view_default": {"name": "materialization_view_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view.sql", "original_file_path": "macros/materializations/models/view.sql", "unique_id": "macro.dbt.materialization_view_default", "macro_sql": "{%- materialization view, default -%}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='view') -%}\n {%- set intermediate_relation = make_intermediate_relation(target_relation) -%}\n\n -- the intermediate_relation should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) -%}\n /*\n This relation (probably) doesn't exist yet. If it does exist, it's a leftover from\n a previous run, and we're going to try to drop it immediately. At the end of this\n materialization, we're going to rename the \"existing_relation\" to this identifier,\n and then we're going to drop it. In order to make sure we run the correct one of:\n - drop view ...\n - drop table ...\n\n We need to set the type of this relation to be the type of the existing_relation, if it exists,\n or else \"view\" as a sane default if it does not. Note that if the existing_relation does not\n exist, then there is nothing to move out of the way and subsequentally drop. In that case,\n this relation will be effectively unused.\n */\n {%- set backup_relation_type = 'view' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n -- as above, the backup_relation should not already exist\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_view_as_sql(intermediate_relation, sql) }}\n {%- endcall %}\n\n -- cleanup\n -- move the existing view out of the way\n {% if existing_relation is not none %}\n /* Do the equivalent of rename_if_exists. 'existing_relation' could have been dropped\n since the variable was first set. */\n {% set existing_relation = load_cached_relation(existing_relation) %}\n {% if existing_relation is not none %}\n {{ adapter.rename_relation(existing_relation, backup_relation) }}\n {% endif %}\n {% endif %}\n {{ adapter.rename_relation(intermediate_relation, target_relation) }}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n {{ drop_relation_if_exists(backup_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.run_hooks", "macro.dbt.drop_relation_if_exists", "macro.dbt.statement", "macro.dbt.get_create_view_as_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "supported_languages", "type": null, "description": ""}], "created_at": 1784670933.4782093, "supported_languages": ["sql"]}, "macro.dbt.create_or_replace_clone": {"name": "create_or_replace_clone", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/create_or_replace_clone.sql", "original_file_path": "macros/materializations/models/clone/create_or_replace_clone.sql", "unique_id": "macro.dbt.create_or_replace_clone", "macro_sql": "{% macro create_or_replace_clone(this_relation, defer_relation) %}\n {{ return(adapter.dispatch('create_or_replace_clone', 'dbt')(this_relation, defer_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_or_replace_clone"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "this_relation", "type": null, "description": ""}, {"name": "defer_relation", "type": null, "description": ""}], "created_at": 1784670933.478824, "supported_languages": null}, "macro.dbt.default__create_or_replace_clone": {"name": "default__create_or_replace_clone", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/create_or_replace_clone.sql", "original_file_path": "macros/materializations/models/clone/create_or_replace_clone.sql", "unique_id": "macro.dbt.default__create_or_replace_clone", "macro_sql": "{% macro default__create_or_replace_clone(this_relation, defer_relation) %}\n create or replace table {{ this_relation.render() }} clone {{ defer_relation.render() }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "this_relation", "type": null, "description": ""}, {"name": "defer_relation", "type": null, "description": ""}], "created_at": 1784670933.4791973, "supported_languages": null}, "macro.dbt.materialization_clone_default": {"name": "materialization_clone_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/clone.sql", "original_file_path": "macros/materializations/models/clone/clone.sql", "unique_id": "macro.dbt.materialization_clone_default", "macro_sql": "{%- materialization clone, default -%}\n\n {%- set relations = {'relations': []} -%}\n\n {%- if not defer_relation -%}\n -- nothing to do\n {{ log(\"No relation found in state manifest for \" ~ model.unique_id, info=True) }}\n {{ return(relations) }}\n {%- endif -%}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n\n {%- if existing_relation and not flags.FULL_REFRESH -%}\n -- noop!\n {{ log(\"Relation \" ~ existing_relation ~ \" already exists\", info=True) }}\n {{ return(relations) }}\n {%- endif -%}\n\n {%- set other_existing_relation = load_cached_relation(defer_relation) -%}\n\n -- If this is a database that can do zero-copy cloning of tables, and the other relation is a table, then this will be a table\n -- Otherwise, this will be a view\n\n {% set can_clone_table = can_clone_table() %}\n {%- set grant_config = config.get('grants') -%}\n\n {%- if other_existing_relation and other_existing_relation.type == 'table' and can_clone_table -%}\n\n {%- set target_relation = this.incorporate(type='table') -%}\n {% if existing_relation is not none and not existing_relation.is_table %}\n {{ log(\"Dropping relation \" ~ existing_relation.render() ~ \" because it is of type \" ~ existing_relation.type) }}\n {{ drop_relation_if_exists(existing_relation) }}\n {% endif %}\n\n -- as a general rule, data platforms that can clone tables can also do atomic 'create or replace'\n {% if target_relation.database == defer_relation.database and\n target_relation.schema == defer_relation.schema and\n target_relation.identifier == defer_relation.identifier %}\n {{ log(\"Target relation and defer relation are the same, skipping clone for relation: \" ~ target_relation.render()) }}\n {% else %}\n {% call statement('main') %}\n {{ create_or_replace_clone(target_relation, defer_relation) }}\n {% endcall %}\n {% endif %}\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n {% do persist_docs(target_relation, model) %}\n\n {{ return({'relations': [target_relation]}) }}\n\n {%- else -%}\n\n {%- set target_relation = this.incorporate(type='view') -%}\n\n -- reuse the view materialization\n -- TODO: support actual dispatch for materialization macros\n -- Tracking ticket: https://github.com/dbt-labs/dbt-core/issues/7799\n {% set search_name = \"materialization_view_\" ~ adapter.type() %}\n {% if not search_name in context %}\n {% set search_name = \"materialization_view_default\" %}\n {% endif %}\n {% set materialization_macro = context[search_name] %}\n {% set relations = materialization_macro() %}\n {{ return(relations) }}\n\n {%- endif -%}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.can_clone_table", "macro.dbt.drop_relation_if_exists", "macro.dbt.statement", "macro.dbt.create_or_replace_clone", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "supported_languages", "type": null, "description": ""}], "created_at": 1784670933.4842365, "supported_languages": ["sql"]}, "macro.dbt.can_clone_table": {"name": "can_clone_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/can_clone_table.sql", "original_file_path": "macros/materializations/models/clone/can_clone_table.sql", "unique_id": "macro.dbt.can_clone_table", "macro_sql": "{% macro can_clone_table() %}\n {{ return(adapter.dispatch('can_clone_table', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__can_clone_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.4847558, "supported_languages": null}, "macro.dbt.default__can_clone_table": {"name": "default__can_clone_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/can_clone_table.sql", "original_file_path": "macros/materializations/models/clone/can_clone_table.sql", "unique_id": "macro.dbt.default__can_clone_table", "macro_sql": "{% macro default__can_clone_table() %}\n {{ return(False) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.485002, "supported_languages": null}, "macro.dbt.get_quoted_csv": {"name": "get_quoted_csv", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.get_quoted_csv", "macro_sql": "{% macro get_quoted_csv(column_names) %}\n\n {% set quoted = [] %}\n {% for col in column_names -%}\n {%- do quoted.append(adapter.quote(col)) -%}\n {%- endfor %}\n\n {%- set dest_cols_csv = quoted | join(', ') -%}\n {{ return(dest_cols_csv) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "column_names", "type": null, "description": ""}], "created_at": 1784670933.4866464, "supported_languages": null}, "macro.dbt.diff_columns": {"name": "diff_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.diff_columns", "macro_sql": "{% macro diff_columns(source_columns, target_columns) %}\n\n {% set result = [] %}\n {% set source_names = source_columns | map(attribute = 'column') | list %}\n {% set target_names = target_columns | map(attribute = 'column') | list %}\n\n {# --check whether the name attribute exists in the target - this does not perform a data type check #}\n {% for sc in source_columns %}\n {% if sc.name not in target_names %}\n {{ result.append(sc) }}\n {% endif %}\n {% endfor %}\n\n {{ return(result) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source_columns", "type": null, "description": ""}, {"name": "target_columns", "type": null, "description": ""}], "created_at": 1784670933.4877646, "supported_languages": null}, "macro.dbt.diff_column_data_types": {"name": "diff_column_data_types", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.diff_column_data_types", "macro_sql": "{% macro diff_column_data_types(source_columns, target_columns) %}\n {{ return(adapter.dispatch('diff_column_data_types', 'dbt')(source_columns, target_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__diff_column_data_types"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source_columns", "type": null, "description": ""}, {"name": "target_columns", "type": null, "description": ""}], "created_at": 1784670933.4882183, "supported_languages": null}, "macro.dbt.default__diff_column_data_types": {"name": "default__diff_column_data_types", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.default__diff_column_data_types", "macro_sql": "{% macro default__diff_column_data_types(source_columns, target_columns) %}\n {% set result = [] %}\n {% for sc in source_columns %}\n {% set tc = target_columns | selectattr(\"name\", \"equalto\", sc.name) | list | first %}\n {% if tc %}\n {% if sc.expanded_data_type != tc.expanded_data_type and not sc.can_expand_to(other_column=tc) %}\n {{ result.append( { 'column_name': tc.name, 'new_type': sc.expanded_data_type } ) }}\n {% endif %}\n {% endif %}\n {% endfor %}\n\n {{ return(result) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source_columns", "type": null, "description": ""}, {"name": "target_columns", "type": null, "description": ""}], "created_at": 1784670933.4895222, "supported_languages": null}, "macro.dbt.get_merge_update_columns": {"name": "get_merge_update_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.get_merge_update_columns", "macro_sql": "{% macro get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) %}\n {{ return(adapter.dispatch('get_merge_update_columns', 'dbt')(merge_update_columns, merge_exclude_columns, dest_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_merge_update_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "merge_update_columns", "type": null, "description": ""}, {"name": "merge_exclude_columns", "type": null, "description": ""}, {"name": "dest_columns", "type": null, "description": ""}], "created_at": 1784670933.4899907, "supported_languages": null}, "macro.dbt.default__get_merge_update_columns": {"name": "default__get_merge_update_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.default__get_merge_update_columns", "macro_sql": "{% macro default__get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) %}\n {%- set default_cols = dest_columns | map(attribute=\"quoted\") | list -%}\n\n {%- if merge_update_columns and merge_exclude_columns -%}\n {{ exceptions.raise_compiler_error(\n 'Model cannot specify merge_update_columns and merge_exclude_columns. Please update model to use only one config'\n )}}\n {%- elif merge_update_columns -%}\n {%- set update_columns = merge_update_columns -%}\n {%- elif merge_exclude_columns -%}\n {%- set update_columns = [] -%}\n {%- for column in dest_columns -%}\n {% if column.column | lower not in merge_exclude_columns | map(\"lower\") | list %}\n {%- do update_columns.append(column.quoted) -%}\n {% endif %}\n {%- endfor -%}\n {%- else -%}\n {%- set update_columns = default_cols -%}\n {%- endif -%}\n\n {{ return(update_columns) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "merge_update_columns", "type": null, "description": ""}, {"name": "merge_exclude_columns", "type": null, "description": ""}, {"name": "dest_columns", "type": null, "description": ""}], "created_at": 1784670933.4914298, "supported_languages": null}, "macro.dbt.materialization_incremental_default": {"name": "materialization_incremental_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/incremental.sql", "original_file_path": "macros/materializations/models/incremental/incremental.sql", "unique_id": "macro.dbt.materialization_incremental_default", "macro_sql": "{% materialization incremental, default -%}\n\n -- relations\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='table') -%}\n {%- set temp_relation = make_temp_relation(target_relation)-%}\n {%- set intermediate_relation = make_intermediate_relation(target_relation)-%}\n {%- set backup_relation_type = 'table' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n\n -- configs\n {%- set unique_key = config.get('unique_key') -%}\n {%- set full_refresh_mode = (should_full_refresh() or existing_relation.is_view) -%}\n {%- set on_schema_change = incremental_validate_on_schema_change(config.get('on_schema_change'), default='ignore') -%}\n\n -- the temp_ and backup_ relations should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation. This has to happen before\n -- BEGIN, in a separate transaction\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation)-%}\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set to_drop = [] %}\n\n {% set incremental_strategy = config.get('incremental_strategy') or 'default' %}\n {% set strategy_sql_macro_func = adapter.get_incremental_strategy_macro(context, incremental_strategy) %}\n\n {% if existing_relation is none %}\n {% set build_sql = get_create_table_as_sql(False, target_relation, sql) %}\n {% set relation_for_indexes = target_relation %}\n {% elif full_refresh_mode %}\n {% set build_sql = get_create_table_as_sql(False, intermediate_relation, sql) %}\n {% set relation_for_indexes = intermediate_relation %}\n {% set need_swap = true %}\n {% else %}\n {% do run_query(get_create_table_as_sql(True, temp_relation, sql)) %}\n {% set relation_for_indexes = temp_relation %}\n {% set contract_config = config.get('contract') %}\n {% if not contract_config or not contract_config.enforced %}\n {% do adapter.expand_target_column_types(\n from_relation=temp_relation,\n to_relation=target_relation) %}\n {% endif %}\n {#-- Process schema changes. Returns dict of changes if successful. Use source columns for upserting/merging --#}\n {% set dest_columns = process_schema_changes(on_schema_change, temp_relation, existing_relation) %}\n {% if not dest_columns %}\n {% set dest_columns = adapter.get_columns_in_relation(existing_relation) %}\n {% endif %}\n\n {#-- Get the incremental_strategy, the macro to use for the strategy, and build the sql --#}\n {% set incremental_predicates = config.get('predicates', none) or config.get('incremental_predicates', none) %}\n {% set strategy_arg_dict = ({'target_relation': target_relation, 'temp_relation': temp_relation, 'unique_key': unique_key, 'dest_columns': dest_columns, 'incremental_predicates': incremental_predicates }) %}\n {% set build_sql = strategy_sql_macro_func(strategy_arg_dict) %}\n\n {% endif %}\n\n {% call statement(\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% if existing_relation is none or existing_relation.is_view or should_full_refresh() %}\n {% do create_indexes(relation_for_indexes) %}\n {% endif %}\n\n {% if need_swap %}\n {% do adapter.rename_relation(target_relation, backup_relation) %}\n {% do adapter.rename_relation(intermediate_relation, target_relation) %}\n {% do to_drop.append(backup_relation) %}\n {% endif %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n -- `COMMIT` happens here\n {% do adapter.commit() %}\n\n {% for rel in to_drop %}\n {% do adapter.drop_relation(rel) %}\n {% endfor %}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{%- endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_temp_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.should_full_refresh", "macro.dbt.incremental_validate_on_schema_change", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks", "macro.dbt.get_create_table_as_sql", "macro.dbt.run_query", "macro.dbt.process_schema_changes", "macro.dbt.statement", "macro.dbt.create_indexes", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "supported_languages", "type": null, "description": ""}], "created_at": 1784670933.5000014, "supported_languages": ["sql"]}, "macro.dbt.is_incremental": {"name": "is_incremental", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/is_incremental.sql", "original_file_path": "macros/materializations/models/incremental/is_incremental.sql", "unique_id": "macro.dbt.is_incremental", "macro_sql": "{% macro is_incremental() %}\n {#-- do not run introspective queries in parsing #}\n {% if not execute %}\n {{ return(False) }}\n {% else %}\n {% set relation = adapter.get_relation(this.database, this.schema, this.table) %}\n {{ return(relation is not none\n and relation.type == 'table'\n and model.config.materialized == 'incremental'\n and not should_full_refresh()) }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.5012338, "supported_languages": null}, "macro.dbt.incremental_validate_on_schema_change": {"name": "incremental_validate_on_schema_change", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.incremental_validate_on_schema_change", "macro_sql": "{% macro incremental_validate_on_schema_change(on_schema_change, default='ignore') %}\n\n {% if on_schema_change not in ['sync_all_columns', 'append_new_columns', 'fail', 'ignore'] %}\n\n {% set log_message = 'Invalid value for on_schema_change (%s) specified. Setting default value of %s.' % (on_schema_change, default) %}\n {% do log(log_message) %}\n\n {{ return(default) }}\n\n {% else %}\n\n {{ return(on_schema_change) }}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "on_schema_change", "type": null, "description": ""}, {"name": "default", "type": null, "description": ""}], "created_at": 1784670933.503681, "supported_languages": null}, "macro.dbt.check_for_schema_changes": {"name": "check_for_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.check_for_schema_changes", "macro_sql": "{% macro check_for_schema_changes(source_relation, target_relation) %}\n {{ return(adapter.dispatch('check_for_schema_changes', 'dbt')(source_relation, target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__check_for_schema_changes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source_relation", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.50413, "supported_languages": null}, "macro.dbt.default__check_for_schema_changes": {"name": "default__check_for_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.default__check_for_schema_changes", "macro_sql": "{% macro default__check_for_schema_changes(source_relation, target_relation) %}\n\n {% set schema_changed = False %}\n\n {%- set source_columns = adapter.get_columns_in_relation(source_relation) -%}\n {%- set target_columns = adapter.get_columns_in_relation(target_relation) -%}\n {%- set source_not_in_target = diff_columns(source_columns, target_columns) -%}\n {%- set target_not_in_source = diff_columns(target_columns, source_columns) -%}\n\n {% set new_target_types = diff_column_data_types(source_columns, target_columns) %}\n\n {% if source_not_in_target != [] %}\n {% set schema_changed = True %}\n {% elif target_not_in_source != [] or new_target_types != [] %}\n {% set schema_changed = True %}\n {% elif new_target_types != [] %}\n {% set schema_changed = True %}\n {% endif %}\n\n {% set changes_dict = {\n 'schema_changed': schema_changed,\n 'source_not_in_target': source_not_in_target,\n 'target_not_in_source': target_not_in_source,\n 'source_columns': source_columns,\n 'target_columns': target_columns,\n 'new_target_types': new_target_types\n } %}\n\n {% set msg %}\n In {{ target_relation }}:\n Schema changed: {{ schema_changed }}\n Source columns not in target: {{ source_not_in_target }}\n Target columns not in source: {{ target_not_in_source }}\n New column types: {{ new_target_types }}\n {% endset %}\n\n {% do log(msg) %}\n\n {{ return(changes_dict) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.diff_columns", "macro.dbt.diff_column_data_types"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source_relation", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.5065246, "supported_languages": null}, "macro.dbt.sync_column_schemas": {"name": "sync_column_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.sync_column_schemas", "macro_sql": "{% macro sync_column_schemas(on_schema_change, target_relation, schema_changes_dict) %}\n {{ return(adapter.dispatch('sync_column_schemas', 'dbt')(on_schema_change, target_relation, schema_changes_dict)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__sync_column_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "on_schema_change", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}, {"name": "schema_changes_dict", "type": null, "description": ""}], "created_at": 1784670933.5069997, "supported_languages": null}, "macro.dbt.default__sync_column_schemas": {"name": "default__sync_column_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.default__sync_column_schemas", "macro_sql": "{% macro default__sync_column_schemas(on_schema_change, target_relation, schema_changes_dict) %}\n\n {%- set add_to_target_arr = schema_changes_dict['source_not_in_target'] -%}\n {%- set remove_from_target_arr = schema_changes_dict['target_not_in_source'] -%}\n {%- set new_target_types = schema_changes_dict['new_target_types'] -%}\n\n {%- if on_schema_change == 'append_new_columns'-%}\n {%- if add_to_target_arr | length > 0 -%}\n {%- do alter_relation_add_remove_columns(target_relation, add_to_target_arr, none) -%}\n {%- endif -%}\n\n {% elif on_schema_change == 'sync_all_columns' %}\n\n {% if add_to_target_arr | length > 0 or remove_from_target_arr | length > 0 %}\n {%- do alter_relation_add_remove_columns(target_relation, add_to_target_arr, remove_from_target_arr) -%}\n {% endif %}\n\n {% if new_target_types != [] %}\n {% for ntt in new_target_types %}\n {% set column_name = ntt['column_name'] %}\n {% set new_type = ntt['new_type'] %}\n {% do alter_column_type(target_relation, column_name, new_type) %}\n {% endfor %}\n {% endif %}\n\n {% endif %}\n\n {% set schema_change_message %}\n In {{ target_relation }}:\n Schema change approach: {{ on_schema_change }}\n Columns added: {{ add_to_target_arr }}\n Columns removed: {{ remove_from_target_arr }}\n Data types changed: {{ new_target_types }}\n {% endset %}\n\n {% do log(schema_change_message) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.alter_relation_add_remove_columns", "macro.dbt.alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "on_schema_change", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}, {"name": "schema_changes_dict", "type": null, "description": ""}], "created_at": 1784670933.5093443, "supported_languages": null}, "macro.dbt.process_schema_changes": {"name": "process_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.process_schema_changes", "macro_sql": "{% macro process_schema_changes(on_schema_change, source_relation, target_relation) %}\n {{ return(adapter.dispatch('process_schema_changes', 'dbt')(on_schema_change, source_relation, target_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__process_schema_changes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "on_schema_change", "type": null, "description": ""}, {"name": "source_relation", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.509819, "supported_languages": null}, "macro.dbt.default__process_schema_changes": {"name": "default__process_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.default__process_schema_changes", "macro_sql": "{% macro default__process_schema_changes(on_schema_change, source_relation, target_relation) %}\n\n {% if on_schema_change == 'ignore' %}\n\n {{ return({}) }}\n\n {% else %}\n\n {% set schema_changes_dict = check_for_schema_changes(source_relation, target_relation) %}\n\n {% if schema_changes_dict['schema_changed'] %}\n\n {% if on_schema_change == 'fail' %}\n\n {% set fail_msg %}\n The source and target schemas on this incremental model are out of sync!\n They can be reconciled in several ways:\n - set the `on_schema_change` config to either append_new_columns or sync_all_columns, depending on your situation.\n - Re-run the incremental model with `full_refresh: True` to update the target schema.\n - update the schema manually and re-run the process.\n\n Additional troubleshooting context:\n Source columns not in target: {{ schema_changes_dict['source_not_in_target'] }}\n Target columns not in source: {{ schema_changes_dict['target_not_in_source'] }}\n New column types: {{ schema_changes_dict['new_target_types'] }}\n {% endset %}\n\n {% do exceptions.raise_compiler_error(fail_msg) %}\n\n {# -- unless we ignore, run the sync operation per the config #}\n {% else %}\n\n {% do sync_column_schemas(on_schema_change, target_relation, schema_changes_dict) %}\n\n {% endif %}\n\n {% endif %}\n\n {{ return(schema_changes_dict['source_columns']) }}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.check_for_schema_changes", "macro.dbt.sync_column_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "on_schema_change", "type": null, "description": ""}, {"name": "source_relation", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.511478, "supported_languages": null}, "macro.dbt.get_merge_sql": {"name": "get_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_merge_sql", "macro_sql": "{% macro get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates=none) -%}\n -- back compat for old kwarg name\n {% set incremental_predicates = kwargs.get('predicates', incremental_predicates) %}\n {{ adapter.dispatch('get_merge_sql', 'dbt')(target, source, unique_key, dest_columns, incremental_predicates) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target", "type": null, "description": ""}, {"name": "source", "type": null, "description": ""}, {"name": "unique_key", "type": null, "description": ""}, {"name": "dest_columns", "type": null, "description": ""}, {"name": "incremental_predicates", "type": null, "description": ""}], "created_at": 1784670933.5136297, "supported_languages": null}, "macro.dbt.get_merge_unique_key_match": {"name": "get_merge_unique_key_match", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_merge_unique_key_match", "macro_sql": "{% macro get_merge_unique_key_match(source_unique_key, target_unique_key) %}\n {{ return(adapter.dispatch('get_merge_unique_key_match', 'dbt')(source_unique_key, target_unique_key)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_merge_unique_key_match"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source_unique_key", "type": null, "description": ""}, {"name": "target_unique_key", "type": null, "description": ""}], "created_at": 1784670933.5140643, "supported_languages": null}, "macro.dbt.default__get_merge_unique_key_match": {"name": "default__get_merge_unique_key_match", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_merge_unique_key_match", "macro_sql": "{% macro default__get_merge_unique_key_match(source_unique_key, target_unique_key) -%}\n {{ return(equals(source_unique_key, target_unique_key) | trim) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.equals"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source_unique_key", "type": null, "description": ""}, {"name": "target_unique_key", "type": null, "description": ""}], "created_at": 1784670933.5144231, "supported_languages": null}, "macro.dbt.default__get_merge_sql": {"name": "default__get_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_merge_sql", "macro_sql": "{% macro default__get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates=none) -%}\n {%- set predicates = [] if incremental_predicates is none else [] + incremental_predicates -%}\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n {%- set merge_update_columns = config.get('merge_update_columns') -%}\n {%- set merge_exclude_columns = config.get('merge_exclude_columns') -%}\n {%- set update_columns = get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {% if unique_key %}\n {% if unique_key is sequence and unique_key is not mapping and unique_key is not string %}\n {% for key in unique_key %}\n {% set this_key_match %}\n DBT_INTERNAL_SOURCE.{{ key }} = DBT_INTERNAL_DEST.{{ key }}\n {% endset %}\n {% do predicates.append(this_key_match) %}\n {% endfor %}\n {% else %}\n {% set source_unique_key = (\"DBT_INTERNAL_SOURCE.\" ~ unique_key) | trim %}\n {% set target_unique_key = (\"DBT_INTERNAL_DEST.\" ~ unique_key) | trim %}\n {% set unique_key_match = get_merge_unique_key_match(source_unique_key, target_unique_key) %}\n {% do predicates.append(unique_key_match) %}\n {% endif %}\n {% else %}\n {% do predicates.append('FALSE') %}\n {% endif %}\n\n {{ sql_header if sql_header is not none }}\n\n merge into {{ target }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on {{\"(\" ~ predicates | join(\") and (\") ~ \")\"}}\n\n {% if unique_key %}\n when matched then update set\n {% for column_name in update_columns -%}\n {{ column_name }} = DBT_INTERNAL_SOURCE.{{ column_name }}\n {%- if not loop.last %}, {%- endif %}\n {%- endfor %}\n {% endif %}\n\n when not matched then insert\n ({{ dest_cols_csv }})\n values\n ({{ dest_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv", "macro.dbt.get_merge_update_columns", "macro.dbt.get_merge_unique_key_match"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target", "type": null, "description": ""}, {"name": "source", "type": null, "description": ""}, {"name": "unique_key", "type": null, "description": ""}, {"name": "dest_columns", "type": null, "description": ""}, {"name": "incremental_predicates", "type": null, "description": ""}], "created_at": 1784670933.5179362, "supported_languages": null}, "macro.dbt.get_delete_insert_merge_sql": {"name": "get_delete_insert_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_delete_insert_merge_sql", "macro_sql": "{% macro get_delete_insert_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) -%}\n {{ adapter.dispatch('get_delete_insert_merge_sql', 'dbt')(target, source, unique_key, dest_columns, incremental_predicates) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target", "type": null, "description": ""}, {"name": "source", "type": null, "description": ""}, {"name": "unique_key", "type": null, "description": ""}, {"name": "dest_columns", "type": null, "description": ""}, {"name": "incremental_predicates", "type": null, "description": ""}], "created_at": 1784670933.518489, "supported_languages": null}, "macro.dbt.default__get_delete_insert_merge_sql": {"name": "default__get_delete_insert_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_delete_insert_merge_sql", "macro_sql": "{% macro default__get_delete_insert_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) -%}\n\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n\n {% if unique_key %}\n {% if unique_key is string %}\n {% set unique_key = [unique_key] %}\n {% endif %}\n\n {%- set unique_key_str = unique_key|join(', ') -%}\n\n delete from {{ target }} as DBT_INTERNAL_DEST\n where ({{ unique_key_str }}) in (\n select distinct {{ unique_key_str }}\n from {{ source }} as DBT_INTERNAL_SOURCE\n )\n {%- if incremental_predicates %}\n {% for predicate in incremental_predicates %}\n and {{ predicate }}\n {% endfor %}\n {%- endif -%};\n\n {% endif %}\n\n insert into {{ target }} ({{ dest_cols_csv }})\n (\n select {{ dest_cols_csv }}\n from {{ source }}\n )\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target", "type": null, "description": ""}, {"name": "source", "type": null, "description": ""}, {"name": "unique_key", "type": null, "description": ""}, {"name": "dest_columns", "type": null, "description": ""}, {"name": "incremental_predicates", "type": null, "description": ""}], "created_at": 1784670933.5199447, "supported_languages": null}, "macro.dbt.get_insert_overwrite_merge_sql": {"name": "get_insert_overwrite_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_insert_overwrite_merge_sql", "macro_sql": "{% macro get_insert_overwrite_merge_sql(target, source, dest_columns, predicates, include_sql_header=false) -%}\n {{ adapter.dispatch('get_insert_overwrite_merge_sql', 'dbt')(target, source, dest_columns, predicates, include_sql_header) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target", "type": null, "description": ""}, {"name": "source", "type": null, "description": ""}, {"name": "dest_columns", "type": null, "description": ""}, {"name": "predicates", "type": null, "description": ""}, {"name": "include_sql_header", "type": null, "description": ""}], "created_at": 1784670933.520492, "supported_languages": null}, "macro.dbt.default__get_insert_overwrite_merge_sql": {"name": "default__get_insert_overwrite_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_insert_overwrite_merge_sql", "macro_sql": "{% macro default__get_insert_overwrite_merge_sql(target, source, dest_columns, predicates, include_sql_header) -%}\n {#-- The only time include_sql_header is True: --#}\n {#-- BigQuery + insert_overwrite strategy + \"static\" partitions config --#}\n {#-- We should consider including the sql header at the materialization level instead --#}\n\n {%- set predicates = [] if predicates is none else [] + predicates -%}\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none and include_sql_header }}\n\n merge into {{ target }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on FALSE\n\n when not matched by source\n {% if predicates %} and {{ predicates | join(' and ') }} {% endif %}\n then delete\n\n when not matched then insert\n ({{ dest_cols_csv }})\n values\n ({{ dest_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target", "type": null, "description": ""}, {"name": "source", "type": null, "description": ""}, {"name": "dest_columns", "type": null, "description": ""}, {"name": "predicates", "type": null, "description": ""}, {"name": "include_sql_header", "type": null, "description": ""}], "created_at": 1784670933.521784, "supported_languages": null}, "macro.dbt.get_incremental_append_sql": {"name": "get_incremental_append_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_append_sql", "macro_sql": "{% macro get_incremental_append_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_append_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.523067, "supported_languages": null}, "macro.dbt.default__get_incremental_append_sql": {"name": "default__get_incremental_append_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_append_sql", "macro_sql": "{% macro default__get_incremental_append_sql(arg_dict) %}\n\n {% do return(get_insert_into_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"dest_columns\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_insert_into_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.5235434, "supported_languages": null}, "macro.dbt.get_incremental_delete_insert_sql": {"name": "get_incremental_delete_insert_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_delete_insert_sql", "macro_sql": "{% macro get_incremental_delete_insert_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_delete_insert_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_delete_insert_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.5239182, "supported_languages": null}, "macro.dbt.default__get_incremental_delete_insert_sql": {"name": "default__get_incremental_delete_insert_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_delete_insert_sql", "macro_sql": "{% macro default__get_incremental_delete_insert_sql(arg_dict) %}\n\n {% do return(get_delete_insert_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"unique_key\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.5245135, "supported_languages": null}, "macro.dbt.get_incremental_merge_sql": {"name": "get_incremental_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_merge_sql", "macro_sql": "{% macro get_incremental_merge_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_merge_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.5248835, "supported_languages": null}, "macro.dbt.default__get_incremental_merge_sql": {"name": "default__get_incremental_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_merge_sql", "macro_sql": "{% macro default__get_incremental_merge_sql(arg_dict) %}\n\n {% do return(get_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"unique_key\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.5254743, "supported_languages": null}, "macro.dbt.get_incremental_insert_overwrite_sql": {"name": "get_incremental_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_insert_overwrite_sql", "macro_sql": "{% macro get_incremental_insert_overwrite_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_insert_overwrite_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_insert_overwrite_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.525845, "supported_languages": null}, "macro.dbt.default__get_incremental_insert_overwrite_sql": {"name": "default__get_incremental_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_insert_overwrite_sql", "macro_sql": "{% macro default__get_incremental_insert_overwrite_sql(arg_dict) %}\n\n {% do return(get_insert_overwrite_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.526397, "supported_languages": null}, "macro.dbt.get_incremental_default_sql": {"name": "get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_default_sql", "macro_sql": "{% macro get_incremental_default_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_default_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_incremental_default_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.5267644, "supported_languages": null}, "macro.dbt.default__get_incremental_default_sql": {"name": "default__get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_default_sql", "macro_sql": "{% macro default__get_incremental_default_sql(arg_dict) %}\n\n {% do return(get_incremental_append_sql(arg_dict)) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.5270875, "supported_languages": null}, "macro.dbt.get_incremental_microbatch_sql": {"name": "get_incremental_microbatch_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_microbatch_sql", "macro_sql": "{% macro get_incremental_microbatch_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_microbatch_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_incremental_microbatch_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.5274587, "supported_languages": null}, "macro.dbt.default__get_incremental_microbatch_sql": {"name": "default__get_incremental_microbatch_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_microbatch_sql", "macro_sql": "{% macro default__get_incremental_microbatch_sql(arg_dict) %}\n\n {{ exceptions.raise_not_implemented('microbatch materialization strategy not implemented for adapter ' + adapter.type()) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "arg_dict", "type": null, "description": ""}], "created_at": 1784670933.5279064, "supported_languages": null}, "macro.dbt.get_insert_into_sql": {"name": "get_insert_into_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_insert_into_sql", "macro_sql": "{% macro get_insert_into_sql(target_relation, temp_relation, dest_columns) %}\n\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n\n insert into {{ target_relation }} ({{ dest_cols_csv }})\n (\n select {{ dest_cols_csv }}\n from {{ temp_relation }}\n )\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target_relation", "type": null, "description": ""}, {"name": "temp_relation", "type": null, "description": ""}, {"name": "dest_columns", "type": null, "description": ""}], "created_at": 1784670933.5284877, "supported_languages": null}, "macro.dbt.materialization_seed_default": {"name": "materialization_seed_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/seed.sql", "original_file_path": "macros/materializations/seeds/seed.sql", "unique_id": "macro.dbt.materialization_seed_default", "macro_sql": "{% materialization seed, default %}\n\n {%- set identifier = model['alias'] -%}\n {%- set full_refresh_mode = (should_full_refresh()) -%}\n\n {%- set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) -%}\n\n {%- set exists_as_table = (old_relation is not none and old_relation.is_table) -%}\n {%- set exists_as_view = (old_relation is not none and old_relation.is_view) -%}\n\n {%- set grant_config = config.get('grants') -%}\n {%- set agate_table = load_agate_table() -%}\n -- grab current tables grants config for comparison later on\n\n {%- do store_result('agate_table', response='OK', agate_table=agate_table) -%}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% set create_table_sql = \"\" %}\n {% if exists_as_view %}\n {{ exceptions.raise_compiler_error(\"Cannot seed to '{}', it is a view\".format(old_relation.render())) }}\n {% elif exists_as_table %}\n {% set create_table_sql = reset_csv_table(model, full_refresh_mode, old_relation, agate_table) %}\n {% else %}\n {% set create_table_sql = create_csv_table(model, agate_table) %}\n {% endif %}\n\n {% set code = 'CREATE' if full_refresh_mode else 'INSERT' %}\n {% set rows_affected = (agate_table.rows | length) %}\n {% set sql = \"\" %}\n {% if rows_affected > 0 %}\n {% set sql = load_csv_rows(model, agate_table) %}\n {% endif %}\n\n {% call noop_statement('main', code ~ ' ' ~ rows_affected, code, rows_affected) %}\n {{ get_csv_sql(create_table_sql, sql) }};\n {% endcall %}\n\n {% set target_relation = this.incorporate(type='table') %}\n\n {% set should_revoke = should_revoke(old_relation, full_refresh_mode) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if full_refresh_mode or not exists_as_table %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n -- `COMMIT` happens here\n {{ adapter.commit() }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh", "macro.dbt.run_hooks", "macro.dbt.reset_csv_table", "macro.dbt.create_csv_table", "macro.dbt.load_csv_rows", "macro.dbt.noop_statement", "macro.dbt.get_csv_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "supported_languages", "type": null, "description": ""}], "created_at": 1784670933.533798, "supported_languages": ["sql"]}, "macro.dbt.create_csv_table": {"name": "create_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.create_csv_table", "macro_sql": "{% macro create_csv_table(model, agate_table) -%}\n {{ adapter.dispatch('create_csv_table', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "agate_table", "type": null, "description": ""}], "created_at": 1784670933.5356836, "supported_languages": null}, "macro.dbt.default__create_csv_table": {"name": "default__create_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__create_csv_table", "macro_sql": "{% macro default__create_csv_table(model, agate_table) %}\n {%- set column_override = model['config'].get('column_types', {}) -%}\n {%- set quote_seed_column = model['config'].get('quote_columns', None) -%}\n\n {% set sql %}\n create table {{ this.render() }} (\n {%- for col_name in agate_table.column_names -%}\n {%- set inferred_type = adapter.convert_type(agate_table, loop.index0) -%}\n {%- set type = column_override.get(col_name, inferred_type) -%}\n {%- set column_name = (col_name | string) -%}\n {{ adapter.quote_seed_column(column_name, quote_seed_column) }} {{ type }} {%- if not loop.last -%}, {%- endif -%}\n {%- endfor -%}\n )\n {% endset %}\n\n {% call statement('_') -%}\n {{ sql }}\n {%- endcall %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "agate_table", "type": null, "description": ""}], "created_at": 1784670933.5375073, "supported_languages": null}, "macro.dbt.reset_csv_table": {"name": "reset_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.reset_csv_table", "macro_sql": "{% macro reset_csv_table(model, full_refresh, old_relation, agate_table) -%}\n {{ adapter.dispatch('reset_csv_table', 'dbt')(model, full_refresh, old_relation, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__reset_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "full_refresh", "type": null, "description": ""}, {"name": "old_relation", "type": null, "description": ""}, {"name": "agate_table", "type": null, "description": ""}], "created_at": 1784670933.5379767, "supported_languages": null}, "macro.dbt.default__reset_csv_table": {"name": "default__reset_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__reset_csv_table", "macro_sql": "{% macro default__reset_csv_table(model, full_refresh, old_relation, agate_table) %}\n {% set sql = \"\" %}\n {% if full_refresh %}\n {{ adapter.drop_relation(old_relation) }}\n {% set sql = create_csv_table(model, agate_table) %}\n {% else %}\n {{ adapter.truncate_relation(old_relation) }}\n {% set sql = \"truncate table \" ~ old_relation.render() %}\n {% endif %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "full_refresh", "type": null, "description": ""}, {"name": "old_relation", "type": null, "description": ""}, {"name": "agate_table", "type": null, "description": ""}], "created_at": 1784670933.5389824, "supported_languages": null}, "macro.dbt.get_csv_sql": {"name": "get_csv_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_csv_sql", "macro_sql": "{% macro get_csv_sql(create_or_truncate_sql, insert_sql) %}\n {{ adapter.dispatch('get_csv_sql', 'dbt')(create_or_truncate_sql, insert_sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_csv_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "create_or_truncate_sql", "type": null, "description": ""}, {"name": "insert_sql", "type": null, "description": ""}], "created_at": 1784670933.5393934, "supported_languages": null}, "macro.dbt.default__get_csv_sql": {"name": "default__get_csv_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_csv_sql", "macro_sql": "{% macro default__get_csv_sql(create_or_truncate_sql, insert_sql) %}\n {{ create_or_truncate_sql }};\n -- dbt seed --\n {{ insert_sql }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "create_or_truncate_sql", "type": null, "description": ""}, {"name": "insert_sql", "type": null, "description": ""}], "created_at": 1784670933.5396738, "supported_languages": null}, "macro.dbt.get_binding_char": {"name": "get_binding_char", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_binding_char", "macro_sql": "{% macro get_binding_char() -%}\n {{ adapter.dispatch('get_binding_char', 'dbt')() }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.5399635, "supported_languages": null}, "macro.dbt.default__get_binding_char": {"name": "default__get_binding_char", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_binding_char", "macro_sql": "{% macro default__get_binding_char() %}\n {{ return('%s') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.5402308, "supported_languages": null}, "macro.dbt.get_batch_size": {"name": "get_batch_size", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_batch_size", "macro_sql": "{% macro get_batch_size() -%}\n {{ return(adapter.dispatch('get_batch_size', 'dbt')()) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_batch_size"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.5405564, "supported_languages": null}, "macro.dbt.default__get_batch_size": {"name": "default__get_batch_size", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_batch_size", "macro_sql": "{% macro default__get_batch_size() %}\n {{ return(10000) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.5407958, "supported_languages": null}, "macro.dbt.get_seed_column_quoted_csv": {"name": "get_seed_column_quoted_csv", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_seed_column_quoted_csv", "macro_sql": "{% macro get_seed_column_quoted_csv(model, column_names) %}\n {%- set quote_seed_column = model['config'].get('quote_columns', None) -%}\n {% set quoted = [] %}\n {% for col in column_names -%}\n {%- do quoted.append(adapter.quote_seed_column(col, quote_seed_column)) -%}\n {%- endfor %}\n\n {%- set dest_cols_csv = quoted | join(', ') -%}\n {{ return(dest_cols_csv) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_names", "type": null, "description": ""}], "created_at": 1784670933.5417583, "supported_languages": null}, "macro.dbt.load_csv_rows": {"name": "load_csv_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.load_csv_rows", "macro_sql": "{% macro load_csv_rows(model, agate_table) -%}\n {{ adapter.dispatch('load_csv_rows', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__load_csv_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "agate_table", "type": null, "description": ""}], "created_at": 1784670933.5422783, "supported_languages": null}, "macro.dbt.default__load_csv_rows": {"name": "default__load_csv_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__load_csv_rows", "macro_sql": "{% macro default__load_csv_rows(model, agate_table) %}\n\n {% set batch_size = get_batch_size() %}\n\n {% set cols_sql = get_seed_column_quoted_csv(model, agate_table.column_names) %}\n {% set bindings = [] %}\n\n {% set statements = [] %}\n\n {% for chunk in agate_table.rows | batch(batch_size) %}\n {% set bindings = [] %}\n\n {% for row in chunk %}\n {% do bindings.extend(row) %}\n {% endfor %}\n\n {% set sql %}\n insert into {{ this.render() }} ({{ cols_sql }}) values\n {% for row in chunk -%}\n ({%- for column in agate_table.column_names -%}\n {{ get_binding_char() }}\n {%- if not loop.last%},{%- endif %}\n {%- endfor -%})\n {%- if not loop.last%},{%- endif %}\n {%- endfor %}\n {% endset %}\n\n {% do adapter.add_query(sql, bindings=bindings, abridge_sql_log=True) %}\n\n {% if loop.index0 == 0 %}\n {% do statements.append(sql) %}\n {% endif %}\n {% endfor %}\n\n {# Return SQL so we can render it out into the compiled files #}\n {{ return(statements[0]) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_batch_size", "macro.dbt.get_seed_column_quoted_csv", "macro.dbt.get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "agate_table", "type": null, "description": ""}], "created_at": 1784670933.5447056, "supported_languages": null}, "macro.dbt.create_columns": {"name": "create_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.create_columns", "macro_sql": "{% macro create_columns(relation, columns) %}\n {{ adapter.dispatch('create_columns', 'dbt')(relation, columns) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "columns", "type": null, "description": ""}], "created_at": 1784670933.5486312, "supported_languages": null}, "macro.dbt.default__create_columns": {"name": "default__create_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__create_columns", "macro_sql": "{% macro default__create_columns(relation, columns) %}\n {% for column in columns %}\n {% call statement() %}\n alter table {{ relation.render() }} add column {{ adapter.quote(column.name) }} {{ column.expanded_data_type }};\n {% endcall %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "columns", "type": null, "description": ""}], "created_at": 1784670933.5493279, "supported_languages": null}, "macro.dbt.post_snapshot": {"name": "post_snapshot", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.post_snapshot", "macro_sql": "{% macro post_snapshot(staging_relation) %}\n {{ adapter.dispatch('post_snapshot', 'dbt')(staging_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "staging_relation", "type": null, "description": ""}], "created_at": 1784670933.549669, "supported_languages": null}, "macro.dbt.default__post_snapshot": {"name": "default__post_snapshot", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__post_snapshot", "macro_sql": "{% macro default__post_snapshot(staging_relation) %}\n {# no-op #}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "staging_relation", "type": null, "description": ""}], "created_at": 1784670933.549862, "supported_languages": null}, "macro.dbt.get_true_sql": {"name": "get_true_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_true_sql", "macro_sql": "{% macro get_true_sql() %}\n {{ adapter.dispatch('get_true_sql', 'dbt')() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_true_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.5501819, "supported_languages": null}, "macro.dbt.default__get_true_sql": {"name": "default__get_true_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__get_true_sql", "macro_sql": "{% macro default__get_true_sql() %}\n {{ return('TRUE') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.550436, "supported_languages": null}, "macro.dbt.snapshot_staging_table": {"name": "snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.snapshot_staging_table", "macro_sql": "{% macro snapshot_staging_table(strategy, source_sql, target_relation) -%}\n {{ adapter.dispatch('snapshot_staging_table', 'dbt')(strategy, source_sql, target_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__snapshot_staging_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "strategy", "type": null, "description": ""}, {"name": "source_sql", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.5508447, "supported_languages": null}, "macro.dbt.get_snapshot_table_column_names": {"name": "get_snapshot_table_column_names", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_snapshot_table_column_names", "macro_sql": "{% macro get_snapshot_table_column_names() %}\n {{ return({'dbt_valid_to': 'dbt_valid_to', 'dbt_valid_from': 'dbt_valid_from', 'dbt_scd_id': 'dbt_scd_id', 'dbt_updated_at': 'dbt_updated_at', 'dbt_is_deleted': 'dbt_is_deleted'}) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.5514166, "supported_languages": null}, "macro.dbt.default__snapshot_staging_table": {"name": "default__snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__snapshot_staging_table", "macro_sql": "{% macro default__snapshot_staging_table(strategy, source_sql, target_relation) -%}\n {% set columns = config.get('snapshot_table_column_names') or get_snapshot_table_column_names() %}\n {% if strategy.hard_deletes == 'new_record' %}\n {% set new_scd_id = snapshot_hash_arguments([columns.dbt_scd_id, snapshot_get_time()]) %}\n {% endif %}\n with snapshot_query as (\n\n {{ source_sql }}\n\n ),\n\n snapshotted_data as (\n\n select *, {{ unique_key_fields(strategy.unique_key) }}\n from {{ target_relation }}\n where\n {% if config.get('dbt_valid_to_current') %}\n\t\t{% set source_unique_key = columns.dbt_valid_to | trim %}\n\t\t{% set target_unique_key = config.get('dbt_valid_to_current') | trim %}\n\n\t\t{# The exact equals semantics between NULL values depends on the current behavior flag set. Also, update records if the source field is null #}\n ( {{ equals(source_unique_key, target_unique_key) }} or {{ source_unique_key }} is null )\n {% else %}\n {{ columns.dbt_valid_to }} is null\n {% endif %}\n\n ),\n\n insertions_source_data as (\n\n select *, {{ unique_key_fields(strategy.unique_key) }},\n {{ strategy.updated_at }} as {{ columns.dbt_updated_at }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_from }},\n {{ get_dbt_valid_to_current(strategy, columns) }},\n {{ strategy.scd_id }} as {{ columns.dbt_scd_id }}\n\n from snapshot_query\n ),\n\n updates_source_data as (\n\n select *, {{ unique_key_fields(strategy.unique_key) }},\n {{ strategy.updated_at }} as {{ columns.dbt_updated_at }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_from }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_to }}\n\n from snapshot_query\n ),\n\n {%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}\n\n deletes_source_data as (\n\n select *, {{ unique_key_fields(strategy.unique_key) }}\n from snapshot_query\n ),\n {% endif %}\n\n insertions as (\n\n select\n 'insert' as dbt_change_type,\n source_data.*\n {%- if strategy.hard_deletes == 'new_record' -%}\n ,'False' as {{ columns.dbt_is_deleted }}\n {%- endif %}\n\n from insertions_source_data as source_data\n left outer join snapshotted_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where {{ unique_key_is_null(strategy.unique_key, \"snapshotted_data\") }}\n or ({{ unique_key_is_not_null(strategy.unique_key, \"snapshotted_data\") }} and (\n {{ strategy.row_changed }} {%- if strategy.hard_deletes == 'new_record' -%} or snapshotted_data.{{ columns.dbt_is_deleted }} = 'True' {% endif %}\n )\n\n )\n\n ),\n\n updates as (\n\n select\n 'update' as dbt_change_type,\n source_data.*,\n snapshotted_data.{{ columns.dbt_scd_id }}\n {%- if strategy.hard_deletes == 'new_record' -%}\n , snapshotted_data.{{ columns.dbt_is_deleted }}\n {%- endif %}\n\n from updates_source_data as source_data\n join snapshotted_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where (\n {{ strategy.row_changed }} {%- if strategy.hard_deletes == 'new_record' -%} or snapshotted_data.{{ columns.dbt_is_deleted }} = 'True' {% endif %}\n )\n )\n\n {%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}\n ,\n deletes as (\n\n select\n 'delete' as dbt_change_type,\n source_data.*,\n {{ snapshot_get_time() }} as {{ columns.dbt_valid_from }},\n {{ snapshot_get_time() }} as {{ columns.dbt_updated_at }},\n {{ snapshot_get_time() }} as {{ columns.dbt_valid_to }},\n snapshotted_data.{{ columns.dbt_scd_id }}\n {%- if strategy.hard_deletes == 'new_record' -%}\n , snapshotted_data.{{ columns.dbt_is_deleted }}\n {%- endif %}\n from snapshotted_data\n left join deletes_source_data as source_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where {{ unique_key_is_null(strategy.unique_key, \"source_data\") }}\n\n {%- if strategy.hard_deletes == 'new_record' %}\n and not (\n --avoid updating the record's valid_to if the latest entry is marked as deleted\n snapshotted_data.{{ columns.dbt_is_deleted }} = 'True'\n and\n {% if config.get('dbt_valid_to_current') -%}\n snapshotted_data.{{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }}\n {%- else -%}\n snapshotted_data.{{ columns.dbt_valid_to }} is null\n {%- endif %}\n )\n {%- endif %}\n )\n {%- endif %}\n\n {%- if strategy.hard_deletes == 'new_record' %}\n {% set snapshotted_cols = get_list_of_column_names(get_columns_in_relation(target_relation)) %}\n {% set source_col_names = get_columns_in_query(source_sql) %}\n ,\n deletion_records as (\n\n select\n 'insert' as dbt_change_type,\n {%- for col_name in source_col_names -%}\n {%- if col_name in snapshotted_cols -%}\n snapshotted_data.{{ adapter.quote(col_name) }},\n {%- else -%}\n source_data.{{ adapter.quote(col_name) }},\n {%- endif -%}\n {% endfor -%}\n {%- if strategy.unique_key | is_list -%}\n {%- for key in strategy.unique_key -%}\n snapshotted_data.{{ key }} as dbt_unique_key_{{ loop.index }},\n {% endfor -%}\n {%- else -%}\n snapshotted_data.dbt_unique_key as dbt_unique_key,\n {% endif -%}\n {{ snapshot_get_time() }} as {{ columns.dbt_valid_from }},\n {{ snapshot_get_time() }} as {{ columns.dbt_updated_at }},\n snapshotted_data.{{ columns.dbt_valid_to }} as {{ columns.dbt_valid_to }},\n {{ new_scd_id }} as {{ columns.dbt_scd_id }},\n 'True' as {{ columns.dbt_is_deleted }}\n from snapshotted_data\n left join deletes_source_data as source_data\n on {{ unique_key_join_on(strategy.unique_key, \"snapshotted_data\", \"source_data\") }}\n where {{ unique_key_is_null(strategy.unique_key, \"source_data\") }}\n and not (\n --avoid inserting a new record if the latest one is marked as deleted\n snapshotted_data.{{ columns.dbt_is_deleted }} = 'True'\n and\n {% if config.get('dbt_valid_to_current') -%}\n snapshotted_data.{{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }}\n {%- else -%}\n snapshotted_data.{{ columns.dbt_valid_to }} is null\n {%- endif %}\n )\n\n )\n {%- endif %}\n\n select * from insertions\n union all\n select * from updates\n {%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}\n union all\n select * from deletes\n {%- endif %}\n {%- if strategy.hard_deletes == 'new_record' %}\n union all\n select * from deletion_records\n {%- endif %}\n\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.snapshot_hash_arguments", "macro.dbt.snapshot_get_time", "macro.dbt.unique_key_fields", "macro.dbt.equals", "macro.dbt.get_dbt_valid_to_current", "macro.dbt.unique_key_join_on", "macro.dbt.unique_key_is_null", "macro.dbt.unique_key_is_not_null", "macro.dbt.get_list_of_column_names", "macro.dbt.get_columns_in_relation", "macro.dbt.get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "strategy", "type": null, "description": ""}, {"name": "source_sql", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.5602984, "supported_languages": null}, "macro.dbt.build_snapshot_table": {"name": "build_snapshot_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.build_snapshot_table", "macro_sql": "{% macro build_snapshot_table(strategy, sql) -%}\n {{ adapter.dispatch('build_snapshot_table', 'dbt')(strategy, sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__build_snapshot_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "strategy", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.560735, "supported_languages": null}, "macro.dbt.default__build_snapshot_table": {"name": "default__build_snapshot_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__build_snapshot_table", "macro_sql": "{% macro default__build_snapshot_table(strategy, sql) %}\n {% set columns = config.get('snapshot_table_column_names') or get_snapshot_table_column_names() %}\n\n select *,\n {{ strategy.scd_id }} as {{ columns.dbt_scd_id }},\n {{ strategy.updated_at }} as {{ columns.dbt_updated_at }},\n {{ strategy.updated_at }} as {{ columns.dbt_valid_from }},\n {{ get_dbt_valid_to_current(strategy, columns) }}\n {%- if strategy.hard_deletes == 'new_record' -%}\n , 'False' as {{ columns.dbt_is_deleted }}\n {% endif -%}\n from (\n {{ sql }}\n ) sbq\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.get_dbt_valid_to_current"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "strategy", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.5617752, "supported_languages": null}, "macro.dbt.build_snapshot_staging_table": {"name": "build_snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.build_snapshot_staging_table", "macro_sql": "{% macro build_snapshot_staging_table(strategy, sql, target_relation) %}\n {% set temp_relation = make_temp_relation(target_relation) %}\n\n {% set select = snapshot_staging_table(strategy, sql, target_relation) %}\n\n {% call statement('build_snapshot_staging_relation') %}\n {{ create_table_as(True, temp_relation, select) }}\n {% endcall %}\n\n {% do return(temp_relation) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_temp_relation", "macro.dbt.snapshot_staging_table", "macro.dbt.statement", "macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "strategy", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}], "created_at": 1784670933.5626304, "supported_languages": null}, "macro.dbt.get_updated_at_column_data_type": {"name": "get_updated_at_column_data_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_updated_at_column_data_type", "macro_sql": "{% macro get_updated_at_column_data_type(snapshot_sql) %}\n {% set snapshot_sql_column_schema = get_column_schema_from_query(snapshot_sql) %}\n {% set dbt_updated_at_data_type = null %}\n {% set ns = namespace() -%} {#-- handle for-loop scoping with a namespace --#}\n {% set ns.dbt_updated_at_data_type = null -%}\n {% for column in snapshot_sql_column_schema %}\n {% if ((column.column == 'dbt_updated_at') or (column.column == 'DBT_UPDATED_AT')) %}\n {% set ns.dbt_updated_at_data_type = column.dtype %}\n {% endif %}\n {% endfor %}\n {{ return(ns.dbt_updated_at_data_type or none) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_column_schema_from_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "snapshot_sql", "type": null, "description": ""}], "created_at": 1784670933.5638208, "supported_languages": null}, "macro.dbt.check_time_data_types": {"name": "check_time_data_types", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.check_time_data_types", "macro_sql": "{% macro check_time_data_types(sql) %}\n {% set dbt_updated_at_data_type = get_updated_at_column_data_type(sql) %}\n {% set snapshot_get_time_data_type = get_snapshot_get_time_data_type() %}\n {% if snapshot_get_time_data_type is not none and dbt_updated_at_data_type is not none and snapshot_get_time_data_type != dbt_updated_at_data_type %}\n {% if exceptions.warn_snapshot_timestamp_data_types %}\n {{ exceptions.warn_snapshot_timestamp_data_types(snapshot_get_time_data_type, dbt_updated_at_data_type) }}\n {% endif %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_updated_at_column_data_type", "macro.dbt.get_snapshot_get_time_data_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.564688, "supported_languages": null}, "macro.dbt.get_dbt_valid_to_current": {"name": "get_dbt_valid_to_current", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_dbt_valid_to_current", "macro_sql": "{% macro get_dbt_valid_to_current(strategy, columns) %}\n {% set dbt_valid_to_current = config.get('dbt_valid_to_current') or \"null\" %}\n coalesce(nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}), {{dbt_valid_to_current}})\n as {{ columns.dbt_valid_to }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "strategy", "type": null, "description": ""}, {"name": "columns", "type": null, "description": ""}], "created_at": 1784670933.5652628, "supported_languages": null}, "macro.dbt.unique_key_fields": {"name": "unique_key_fields", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.unique_key_fields", "macro_sql": "{% macro unique_key_fields(unique_key) %}\n {% if unique_key | is_list %}\n {% for key in unique_key %}\n {{ key }} as dbt_unique_key_{{ loop.index }}\n {%- if not loop.last %} , {%- endif %}\n {% endfor %}\n {% else %}\n {{ unique_key }} as dbt_unique_key\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "unique_key", "type": null, "description": ""}], "created_at": 1784670933.5659392, "supported_languages": null}, "macro.dbt.unique_key_join_on": {"name": "unique_key_join_on", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.unique_key_join_on", "macro_sql": "{% macro unique_key_join_on(unique_key, identifier, from_identifier) %}\n {% if unique_key | is_list %}\n {% for key in unique_key %}\n\t {% set source_unique_key = (identifier ~ \".dbt_unique_key_\" ~ loop.index) | trim %}\n\t {% set target_unique_key = (from_identifier ~ \".dbt_unique_key_\" ~ loop.index) | trim %}\n\t {{ equals(source_unique_key, target_unique_key) }}\n {%- if not loop.last %} and {%- endif %}\n {% endfor %}\n {% else %}\n {{ identifier }}.dbt_unique_key = {{ from_identifier }}.dbt_unique_key\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.equals"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "unique_key", "type": null, "description": ""}, {"name": "identifier", "type": null, "description": ""}, {"name": "from_identifier", "type": null, "description": ""}], "created_at": 1784670933.567077, "supported_languages": null}, "macro.dbt.unique_key_is_null": {"name": "unique_key_is_null", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.unique_key_is_null", "macro_sql": "{% macro unique_key_is_null(unique_key, identifier) %}\n {% if unique_key | is_list %}\n {{ identifier }}.dbt_unique_key_1 is null\n {% else %}\n {{ identifier }}.dbt_unique_key is null\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "unique_key", "type": null, "description": ""}, {"name": "identifier", "type": null, "description": ""}], "created_at": 1784670933.5675094, "supported_languages": null}, "macro.dbt.unique_key_is_not_null": {"name": "unique_key_is_not_null", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.unique_key_is_not_null", "macro_sql": "{% macro unique_key_is_not_null(unique_key, identifier) %}\n {% if unique_key | is_list %}\n {{ identifier }}.dbt_unique_key_1 is not null\n {% else %}\n {{ identifier }}.dbt_unique_key is not null\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "unique_key", "type": null, "description": ""}, {"name": "identifier", "type": null, "description": ""}], "created_at": 1784670933.5679226, "supported_languages": null}, "macro.dbt.materialization_snapshot_default": {"name": "materialization_snapshot_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot.sql", "original_file_path": "macros/materializations/snapshots/snapshot.sql", "unique_id": "macro.dbt.materialization_snapshot_default", "macro_sql": "{% materialization snapshot, default %}\n\n {%- set target_table = model.get('alias', model.get('name')) -%}\n\n {%- set strategy_name = config.get('strategy') -%}\n {%- set unique_key = config.get('unique_key') %}\n -- grab current tables grants config for comparision later on\n {%- set grant_config = config.get('grants') -%}\n\n {% set target_relation_exists, target_relation = get_or_create_relation(\n database=model.database,\n schema=model.schema,\n identifier=target_table,\n type='table') -%}\n\n {%- if not target_relation.is_table -%}\n {% do exceptions.relation_wrong_type(target_relation, 'table') %}\n {%- endif -%}\n\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set strategy_macro = strategy_dispatch(strategy_name) %}\n {# The model['config'] parameter below is no longer used, but passing anyway for compatibility #}\n {# It was a dictionary of config, instead of the config object from the context #}\n {% set strategy = strategy_macro(model, \"snapshotted_data\", \"source_data\", model['config'], target_relation_exists) %}\n\n {% if not target_relation_exists %}\n\n {% set build_sql = build_snapshot_table(strategy, model['compiled_code']) %}\n {% set build_or_select_sql = build_sql %}\n {% set final_sql = create_table_as(False, target_relation, build_sql) %}\n\n {% else %}\n\n {% set columns = config.get(\"snapshot_table_column_names\") or get_snapshot_table_column_names() %}\n\n {{ adapter.assert_valid_snapshot_target_given_strategy(target_relation, columns, strategy) }}\n\n {% set build_or_select_sql = snapshot_staging_table(strategy, sql, target_relation) %}\n {% set staging_table = build_snapshot_staging_table(strategy, sql, target_relation) %}\n\n -- this may no-op if the database does not require column expansion\n {% do adapter.expand_target_column_types(from_relation=staging_table,\n to_relation=target_relation) %}\n\n {% set remove_columns = ['dbt_change_type', 'DBT_CHANGE_TYPE', 'dbt_unique_key', 'DBT_UNIQUE_KEY'] %}\n {% if unique_key | is_list %}\n {% for key in strategy.unique_key %}\n {{ remove_columns.append('dbt_unique_key_' + loop.index|string) }}\n {{ remove_columns.append('DBT_UNIQUE_KEY_' + loop.index|string) }}\n {% endfor %}\n {% endif %}\n\n {% set missing_columns = adapter.get_missing_columns(staging_table, target_relation)\n | rejectattr('name', 'in', remove_columns)\n | list %}\n\n {% do create_columns(target_relation, missing_columns) %}\n\n {% set source_columns = adapter.get_columns_in_relation(staging_table)\n | rejectattr('name', 'in', remove_columns)\n | list %}\n\n {% set quoted_source_columns = [] %}\n {% for column in source_columns %}\n {% do quoted_source_columns.append(adapter.quote(column.name)) %}\n {% endfor %}\n\n {% set final_sql = snapshot_merge_sql(\n target = target_relation,\n source = staging_table,\n insert_cols = quoted_source_columns\n )\n %}\n\n {% endif %}\n\n\n {{ check_time_data_types(build_or_select_sql) }}\n\n {% call statement('main') %}\n {{ final_sql }}\n {% endcall %}\n\n {% set should_revoke = should_revoke(target_relation_exists, full_refresh_mode=False) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if not target_relation_exists %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n {% if staging_table is defined %}\n {% do post_snapshot(staging_table) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.get_or_create_relation", "macro.dbt.run_hooks", "macro.dbt.strategy_dispatch", "macro.dbt.build_snapshot_table", "macro.dbt.create_table_as", "macro.dbt.get_snapshot_table_column_names", "macro.dbt.snapshot_staging_table", "macro.dbt.build_snapshot_staging_table", "macro.dbt.create_columns", "macro.dbt.snapshot_merge_sql", "macro.dbt.check_time_data_types", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes", "macro.dbt.post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "supported_languages", "type": null, "description": ""}], "created_at": 1784670933.576281, "supported_languages": ["sql"]}, "macro.dbt.snapshot_merge_sql": {"name": "snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "unique_id": "macro.dbt.snapshot_merge_sql", "macro_sql": "{% macro snapshot_merge_sql(target, source, insert_cols) -%}\n {{ adapter.dispatch('snapshot_merge_sql', 'dbt')(target, source, insert_cols) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target", "type": null, "description": ""}, {"name": "source", "type": null, "description": ""}, {"name": "insert_cols", "type": null, "description": ""}], "created_at": 1784670933.5772064, "supported_languages": null}, "macro.dbt.default__snapshot_merge_sql": {"name": "default__snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "unique_id": "macro.dbt.default__snapshot_merge_sql", "macro_sql": "{% macro default__snapshot_merge_sql(target, source, insert_cols) -%}\n {%- set insert_cols_csv = insert_cols | join(', ') -%}\n\n {%- set columns = config.get(\"snapshot_table_column_names\") or get_snapshot_table_column_names() -%}\n\n merge into {{ target.render() }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on DBT_INTERNAL_SOURCE.{{ columns.dbt_scd_id }} = DBT_INTERNAL_DEST.{{ columns.dbt_scd_id }}\n\n when matched\n {% if config.get(\"dbt_valid_to_current\") %}\n\t{% set source_unique_key = (\"DBT_INTERNAL_DEST.\" ~ columns.dbt_valid_to) | trim %}\n\t{% set target_unique_key = config.get('dbt_valid_to_current') | trim %}\n\tand ({{ equals(source_unique_key, target_unique_key) }} or {{ source_unique_key }} is null)\n\n {% else %}\n and DBT_INTERNAL_DEST.{{ columns.dbt_valid_to }} is null\n {% endif %}\n and DBT_INTERNAL_SOURCE.dbt_change_type in ('update', 'delete')\n then update\n set {{ columns.dbt_valid_to }} = DBT_INTERNAL_SOURCE.{{ columns.dbt_valid_to }}\n\n when not matched\n and DBT_INTERNAL_SOURCE.dbt_change_type = 'insert'\n then insert ({{ insert_cols_csv }})\n values ({{ insert_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.equals"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "target", "type": null, "description": ""}, {"name": "source", "type": null, "description": ""}, {"name": "insert_cols", "type": null, "description": ""}], "created_at": 1784670933.5788326, "supported_languages": null}, "macro.dbt.strategy_dispatch": {"name": "strategy_dispatch", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.strategy_dispatch", "macro_sql": "{% macro strategy_dispatch(name) -%}\n{% set original_name = name %}\n {% if '.' in name %}\n {% set package_name, name = name.split(\".\", 1) %}\n {% else %}\n {% set package_name = none %}\n {% endif %}\n\n {% if package_name is none %}\n {% set package_context = context %}\n {% elif package_name in context %}\n {% set package_context = context[package_name] %}\n {% else %}\n {% set error_msg %}\n Could not find package '{{package_name}}', called with '{{original_name}}'\n {% endset %}\n {{ exceptions.raise_compiler_error(error_msg | trim) }}\n {% endif %}\n\n {%- set search_name = 'snapshot_' ~ name ~ '_strategy' -%}\n\n {% if search_name not in package_context %}\n {% set error_msg %}\n The specified strategy macro '{{name}}' was not found in package '{{ package_name }}'\n {% endset %}\n {{ exceptions.raise_compiler_error(error_msg | trim) }}\n {% endif %}\n {{ return(package_context[search_name]) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "name", "type": null, "description": ""}], "created_at": 1784670933.582775, "supported_languages": null}, "macro.dbt.snapshot_hash_arguments": {"name": "snapshot_hash_arguments", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_hash_arguments", "macro_sql": "{% macro snapshot_hash_arguments(args) -%}\n {{ adapter.dispatch('snapshot_hash_arguments', 'dbt')(args) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "args", "type": null, "description": ""}], "created_at": 1784670933.583145, "supported_languages": null}, "macro.dbt.default__snapshot_hash_arguments": {"name": "default__snapshot_hash_arguments", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.default__snapshot_hash_arguments", "macro_sql": "{% macro default__snapshot_hash_arguments(args) -%}\n md5({%- for arg in args -%}\n coalesce(cast({{ arg }} as varchar ), '')\n {% if not loop.last %} || '|' || {% endif %}\n {%- endfor -%})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "args", "type": null, "description": ""}], "created_at": 1784670933.5835931, "supported_languages": null}, "macro.dbt.snapshot_timestamp_strategy": {"name": "snapshot_timestamp_strategy", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_timestamp_strategy", "macro_sql": "{% macro snapshot_timestamp_strategy(node, snapshotted_rel, current_rel, model_config, target_exists) %}\n {# The model_config parameter is no longer used, but is passed in anyway for compatibility. #}\n {% set primary_key = config.get('unique_key') %}\n {% set updated_at = config.get('updated_at') %}\n {% set hard_deletes = adapter.get_hard_deletes_behavior(config) %}\n {% set invalidate_hard_deletes = hard_deletes == 'invalidate' %}\n {% set columns = config.get(\"snapshot_table_column_names\") or get_snapshot_table_column_names() %}\n\n {#/*\n The snapshot relation might not have an {{ updated_at }} value if the\n snapshot strategy is changed from `check` to `timestamp`. We\n should use a dbt-created column for the comparison in the snapshot\n table instead of assuming that the user-supplied {{ updated_at }}\n will be present in the historical data.\n\n See https://github.com/dbt-labs/dbt-core/issues/2350\n */ #}\n {% set row_changed_expr -%}\n ({{ snapshotted_rel }}.{{ columns.dbt_valid_from }} < {{ current_rel }}.{{ updated_at }})\n {%- endset %}\n\n {% set scd_args = api.Relation.scd_args(primary_key, updated_at) %}\n {% set scd_id_expr = snapshot_hash_arguments(scd_args) %}\n\n {% do return({\n \"unique_key\": primary_key,\n \"updated_at\": updated_at,\n \"row_changed\": row_changed_expr,\n \"scd_id\": scd_id_expr,\n \"invalidate_hard_deletes\": invalidate_hard_deletes,\n \"hard_deletes\": hard_deletes\n }) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_snapshot_table_column_names", "macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "node", "type": null, "description": ""}, {"name": "snapshotted_rel", "type": null, "description": ""}, {"name": "current_rel", "type": null, "description": ""}, {"name": "model_config", "type": null, "description": ""}, {"name": "target_exists", "type": null, "description": ""}], "created_at": 1784670933.5856028, "supported_languages": null}, "macro.dbt.snapshot_string_as_time": {"name": "snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_string_as_time", "macro_sql": "{% macro snapshot_string_as_time(timestamp) -%}\n {{ adapter.dispatch('snapshot_string_as_time', 'dbt')(timestamp) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_string_as_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "timestamp", "type": null, "description": ""}], "created_at": 1784670933.5859492, "supported_languages": null}, "macro.dbt.default__snapshot_string_as_time": {"name": "default__snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.default__snapshot_string_as_time", "macro_sql": "{% macro default__snapshot_string_as_time(timestamp) %}\n {% do exceptions.raise_not_implemented(\n 'snapshot_string_as_time macro not implemented for adapter '+adapter.type()\n ) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "timestamp", "type": null, "description": ""}], "created_at": 1784670933.5863192, "supported_languages": null}, "macro.dbt.snapshot_check_all_get_existing_columns": {"name": "snapshot_check_all_get_existing_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_check_all_get_existing_columns", "macro_sql": "{% macro snapshot_check_all_get_existing_columns(node, target_exists, check_cols_config) -%}\n {%- if not target_exists -%}\n {#-- no table yet -> return whatever the query does --#}\n {{ return((false, query_columns)) }}\n {%- endif -%}\n\n {#-- handle any schema changes --#}\n {%- set target_relation = adapter.get_relation(database=node.database, schema=node.schema, identifier=node.alias) -%}\n\n {% if check_cols_config == 'all' %}\n {%- set query_columns = get_columns_in_query(node['compiled_code']) -%}\n\n {% elif check_cols_config is iterable and (check_cols_config | length) > 0 %}\n {#-- query for proper casing/quoting, to support comparison below --#}\n {%- set select_check_cols_from_target -%}\n {#-- N.B. The whitespace below is necessary to avoid edge case issue with comments --#}\n {#-- See: https://github.com/dbt-labs/dbt-core/issues/6781 --#}\n select {{ check_cols_config | join(', ') }} from (\n {{ node['compiled_code'] }}\n ) subq\n {%- endset -%}\n {% set query_columns = get_columns_in_query(select_check_cols_from_target) %}\n\n {% else %}\n {% do exceptions.raise_compiler_error(\"Invalid value for 'check_cols': \" ~ check_cols_config) %}\n {% endif %}\n\n {%- set existing_cols = adapter.get_columns_in_relation(target_relation) | map(attribute = 'name') | list -%}\n {%- set ns = namespace() -%} {#-- handle for-loop scoping with a namespace --#}\n {%- set ns.column_added = false -%}\n\n {%- set intersection = [] -%}\n {%- for col in query_columns -%}\n {%- if col in existing_cols -%}\n {%- do intersection.append(adapter.quote(col)) -%}\n {%- else -%}\n {% set ns.column_added = true %}\n {%- endif -%}\n {%- endfor -%}\n {{ return((ns.column_added, intersection)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "node", "type": null, "description": ""}, {"name": "target_exists", "type": null, "description": ""}, {"name": "check_cols_config", "type": null, "description": ""}], "created_at": 1784670933.589065, "supported_languages": null}, "macro.dbt.snapshot_check_strategy": {"name": "snapshot_check_strategy", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_check_strategy", "macro_sql": "{% macro snapshot_check_strategy(node, snapshotted_rel, current_rel, model_config, target_exists) %}\n {# The model_config parameter is no longer used, but is passed in anyway for compatibility. #}\n {% set check_cols_config = config.get('check_cols') %}\n {% set primary_key = config.get('unique_key') %}\n {% set hard_deletes = adapter.get_hard_deletes_behavior(config) %}\n {% set invalidate_hard_deletes = hard_deletes == 'invalidate' %}\n {% set updated_at = config.get('updated_at') or snapshot_get_time() %}\n\n {% set column_added = false %}\n\n {% set column_added, check_cols = snapshot_check_all_get_existing_columns(node, target_exists, check_cols_config) %}\n\n {%- set row_changed_expr -%}\n (\n {%- if column_added -%}\n {{ get_true_sql() }}\n {%- else -%}\n {%- for col in check_cols -%}\n {{ snapshotted_rel }}.{{ col }} != {{ current_rel }}.{{ col }}\n or\n (\n (({{ snapshotted_rel }}.{{ col }} is null) and not ({{ current_rel }}.{{ col }} is null))\n or\n ((not {{ snapshotted_rel }}.{{ col }} is null) and ({{ current_rel }}.{{ col }} is null))\n )\n {%- if not loop.last %} or {% endif -%}\n {%- endfor -%}\n {%- endif -%}\n )\n {%- endset %}\n\n {% set scd_args = api.Relation.scd_args(primary_key, updated_at) %}\n {% set scd_id_expr = snapshot_hash_arguments(scd_args) %}\n\n {% do return({\n \"unique_key\": primary_key,\n \"updated_at\": updated_at,\n \"row_changed\": row_changed_expr,\n \"scd_id\": scd_id_expr,\n \"invalidate_hard_deletes\": invalidate_hard_deletes,\n \"hard_deletes\": hard_deletes\n }) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_get_time", "macro.dbt.snapshot_check_all_get_existing_columns", "macro.dbt.get_true_sql", "macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "node", "type": null, "description": ""}, {"name": "snapshotted_rel", "type": null, "description": ""}, {"name": "current_rel", "type": null, "description": ""}, {"name": "model_config", "type": null, "description": ""}, {"name": "target_exists", "type": null, "description": ""}], "created_at": 1784670933.5920022, "supported_languages": null}, "macro.dbt.materialization_unit_default": {"name": "materialization_unit_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/unit.sql", "original_file_path": "macros/materializations/tests/unit.sql", "unique_id": "macro.dbt.materialization_unit_default", "macro_sql": "{%- materialization unit, default -%}\n\n {% set relations = [] %}\n {% set sql_header = config.get('sql_header') if flags.REQUIRE_SQL_HEADER_IN_TEST_CONFIGS else none %}\n\n {% set expected_rows = config.get('expected_rows') %}\n {% set expected_sql = config.get('expected_sql') %}\n {% set tested_expected_column_names = expected_rows[0].keys() if (expected_rows | length ) > 0 else get_columns_in_query(sql) %}\n\n {%- set target_relation = this.incorporate(type='table') -%}\n {%- set temp_relation = make_temp_relation(target_relation)-%}\n {% do run_query(get_create_table_as_sql(True, temp_relation, get_empty_subquery_sql(sql))) %}\n {%- set columns_in_relation = adapter.get_columns_in_relation(temp_relation) -%}\n {%- set column_name_to_data_types = {} -%}\n {%- set column_name_to_quoted = {} -%}\n {%- for column in columns_in_relation -%}\n {%- do column_name_to_data_types.update({column.name|lower: column.data_type}) -%}\n {%- do column_name_to_quoted.update({column.name|lower: column.quoted}) -%}\n {%- endfor -%}\n\n {%- set expected_column_names_quoted = [] -%}\n {%- for column_name in tested_expected_column_names -%}\n {%- do expected_column_names_quoted.append(column_name_to_quoted[column_name|lower]) -%}\n {%- endfor -%}\n\n {% if not expected_sql %}\n {% set expected_sql = get_expected_sql(expected_rows, column_name_to_data_types, column_name_to_quoted) %}\n {% endif %}\n {% set unit_test_sql = get_unit_test_sql(sql, expected_sql, expected_column_names_quoted) %}\n\n {% call statement('main', fetch_result=True) -%}\n\n {% if sql_header %}{{ sql_header }}{% endif %}\n {{ unit_test_sql }}\n\n {%- endcall %}\n\n {% do adapter.drop_relation(temp_relation) %}\n\n {{ return({'relations': relations}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.get_columns_in_query", "macro.dbt.make_temp_relation", "macro.dbt.run_query", "macro.dbt.get_create_table_as_sql", "macro.dbt.get_empty_subquery_sql", "macro.dbt.get_expected_sql", "macro.dbt.get_unit_test_sql", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "supported_languages", "type": null, "description": ""}], "created_at": 1784670933.5960975, "supported_languages": ["sql"]}, "macro.dbt.get_test_sql": {"name": "get_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.get_test_sql", "macro_sql": "{% macro get_test_sql(main_sql, fail_calc, warn_if, error_if, limit) -%}\n {{ adapter.dispatch('get_test_sql', 'dbt')(main_sql, fail_calc, warn_if, error_if, limit) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "main_sql", "type": null, "description": ""}, {"name": "fail_calc", "type": null, "description": ""}, {"name": "warn_if", "type": null, "description": ""}, {"name": "error_if", "type": null, "description": ""}, {"name": "limit", "type": null, "description": ""}], "created_at": 1784670933.5971663, "supported_languages": null}, "macro.dbt.default__get_test_sql": {"name": "default__get_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.default__get_test_sql", "macro_sql": "{% macro default__get_test_sql(main_sql, fail_calc, warn_if, error_if, limit) -%}\n select\n {{ fail_calc }} as failures,\n {{ fail_calc }} {{ warn_if }} as should_warn,\n {{ fail_calc }} {{ error_if }} as should_error\n from (\n {{ main_sql }}\n {{ \"limit \" ~ limit if limit != none }}\n ) dbt_internal_test\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "main_sql", "type": null, "description": ""}, {"name": "fail_calc", "type": null, "description": ""}, {"name": "warn_if", "type": null, "description": ""}, {"name": "error_if", "type": null, "description": ""}, {"name": "limit", "type": null, "description": ""}], "created_at": 1784670933.5977778, "supported_languages": null}, "macro.dbt.get_unit_test_sql": {"name": "get_unit_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.get_unit_test_sql", "macro_sql": "{% macro get_unit_test_sql(main_sql, expected_fixture_sql, expected_column_names) -%}\n {{ adapter.dispatch('get_unit_test_sql', 'dbt')(main_sql, expected_fixture_sql, expected_column_names) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_unit_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "main_sql", "type": null, "description": ""}, {"name": "expected_fixture_sql", "type": null, "description": ""}, {"name": "expected_column_names", "type": null, "description": ""}], "created_at": 1784670933.5982087, "supported_languages": null}, "macro.dbt.default__get_unit_test_sql": {"name": "default__get_unit_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.default__get_unit_test_sql", "macro_sql": "{% macro default__get_unit_test_sql(main_sql, expected_fixture_sql, expected_column_names) -%}\n-- Build actual result given inputs\nwith dbt_internal_unit_test_actual as (\n select\n {% for expected_column_name in expected_column_names %}{{expected_column_name}}{% if not loop.last -%},{% endif %}{%- endfor -%}, {{ dbt.string_literal(\"actual\") }} as {{ adapter.quote(\"actual_or_expected\") }}\n from (\n {{ main_sql }}\n ) _dbt_internal_unit_test_actual\n),\n-- Build expected result\ndbt_internal_unit_test_expected as (\n select\n {% for expected_column_name in expected_column_names %}{{expected_column_name}}{% if not loop.last -%}, {% endif %}{%- endfor -%}, {{ dbt.string_literal(\"expected\") }} as {{ adapter.quote(\"actual_or_expected\") }}\n from (\n {{ expected_fixture_sql }}\n ) _dbt_internal_unit_test_expected\n)\n-- Union actual and expected results\nselect * from dbt_internal_unit_test_actual\nunion all\nselect * from dbt_internal_unit_test_expected\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.string_literal"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "main_sql", "type": null, "description": ""}, {"name": "expected_fixture_sql", "type": null, "description": ""}, {"name": "expected_column_names", "type": null, "description": ""}], "created_at": 1784670933.5994122, "supported_languages": null}, "macro.dbt.get_where_subquery": {"name": "get_where_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "unique_id": "macro.dbt.get_where_subquery", "macro_sql": "{% macro get_where_subquery(relation) -%}\n {% do return(adapter.dispatch('get_where_subquery', 'dbt')(relation)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_where_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6000369, "supported_languages": null}, "macro.dbt.default__get_where_subquery": {"name": "default__get_where_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "unique_id": "macro.dbt.default__get_where_subquery", "macro_sql": "{% macro default__get_where_subquery(relation) -%}\n {% set where = config.get('where', '') %}\n {% if where %}\n {%- set filtered -%}\n (select * from {{ relation }} where {{ where }}) dbt_subquery\n {%- endset -%}\n {% do return(filtered) %}\n {%- else -%}\n {% do return(relation) %}\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6008146, "supported_languages": null}, "macro.dbt.materialization_test_default": {"name": "materialization_test_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/test.sql", "original_file_path": "macros/materializations/tests/test.sql", "unique_id": "macro.dbt.materialization_test_default", "macro_sql": "{%- materialization test, default -%}\n\n {% set relations = [] %}\n {% set limit = config.get('limit') %}\n {% set sql_header = config.get('sql_header') if flags.REQUIRE_SQL_HEADER_IN_TEST_CONFIGS else none %}\n\n {% set sql_with_limit %}\n {{ get_limit_subquery_sql(sql, limit) }}\n {% endset %}\n\n {% if should_store_failures() %}\n\n {% set identifier = model['alias'] %}\n {% set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) %}\n\n {% set store_failures_as = config.get('store_failures_as') %}\n -- if `--store-failures` is invoked via command line and `store_failures_as` is not set,\n -- config.get('store_failures_as', 'table') returns None, not 'table'\n {% if store_failures_as == none %}{% set store_failures_as = 'table' %}{% endif %}\n {% if store_failures_as not in ['table', 'view'] %}\n {{ exceptions.raise_compiler_error(\n \"'\" ~ store_failures_as ~ \"' is not a valid value for `store_failures_as`. \"\n \"Accepted values are: ['ephemeral', 'table', 'view']\"\n ) }}\n {% endif %}\n\n {% set target_relation = api.Relation.create(\n identifier=identifier, schema=schema, database=database, type=store_failures_as) -%} %}\n\n {% if old_relation %}\n {% do adapter.drop_relation(old_relation) %}\n {% endif %}\n\n {% call statement(auto_begin=True) %}\n {% if sql_header %}{{ sql_header }}{% endif %}\n {{ get_create_sql(target_relation, sql_with_limit) }}\n {% endcall %}\n\n {% do relations.append(target_relation) %}\n\n {# Since the test failures have already been saved to the database, reuse that result rather than querying again #}\n {% set main_sql %}\n select *\n from {{ target_relation }}\n {% endset %}\n\n {{ adapter.commit() }}\n\n {% else %}\n\n {% set main_sql = sql_with_limit %}\n\n {% endif %}\n\n {% set fail_calc = config.get('fail_calc') %}\n {% set warn_if = config.get('warn_if') %}\n {% set error_if = config.get('error_if') %}\n\n {% call statement('main', fetch_result=True) -%}\n\n {% if sql_header %}{{ sql_header }}{% endif %}\n {# The limit has already been included above, and we do not want to duplicate it again. We also want to be safe for macro overrides treating `limit` as a required parameter. #}\n {{ get_test_sql(main_sql, fail_calc, warn_if, error_if, limit=none)}}\n\n {%- endcall %}\n\n {{ return({'relations': relations}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.get_limit_subquery_sql", "macro.dbt.should_store_failures", "macro.dbt.statement", "macro.dbt.get_create_sql", "macro.dbt.get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "supported_languages", "type": null, "description": ""}], "created_at": 1784670933.605815, "supported_languages": ["sql"]}, "macro.dbt.get_create_backup_sql": {"name": "get_create_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_backup.sql", "original_file_path": "macros/relations/create_backup.sql", "unique_id": "macro.dbt.get_create_backup_sql", "macro_sql": "{%- macro get_create_backup_sql(relation) -%}\n {{- log('Applying CREATE BACKUP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_backup_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_backup_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6064966, "supported_languages": null}, "macro.dbt.default__get_create_backup_sql": {"name": "default__get_create_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_backup.sql", "original_file_path": "macros/relations/create_backup.sql", "unique_id": "macro.dbt.default__get_create_backup_sql", "macro_sql": "{%- macro default__get_create_backup_sql(relation) -%}\n\n -- get the standard backup name\n {% set backup_relation = make_backup_relation(relation, relation.type) %}\n\n -- drop any pre-existing backup\n {{ get_drop_sql(backup_relation) }};\n\n {{ get_rename_sql(relation, backup_relation.identifier) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_backup_relation", "macro.dbt.get_drop_sql", "macro.dbt.get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6070333, "supported_languages": null}, "macro.dbt.get_rename_sql": {"name": "get_rename_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.get_rename_sql", "macro_sql": "{%- macro get_rename_sql(relation, new_name) -%}\n {{- log('Applying RENAME to: ' ~ relation) -}}\n {{- adapter.dispatch('get_rename_sql', 'dbt')(relation, new_name) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "new_name", "type": null, "description": ""}], "created_at": 1784670933.6079369, "supported_languages": null}, "macro.dbt.default__get_rename_sql": {"name": "default__get_rename_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.default__get_rename_sql", "macro_sql": "{%- macro default__get_rename_sql(relation, new_name) -%}\n\n {%- if relation.is_view -%}\n {{ get_rename_view_sql(relation, new_name) }}\n\n {%- elif relation.is_table -%}\n {{ get_rename_table_sql(relation, new_name) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ get_rename_materialized_view_sql(relation, new_name) }}\n\n {%- else -%}\n {{- exceptions.raise_compiler_error(\"`get_rename_sql` has not been implemented for: \" ~ relation.type ) -}}\n\n {%- endif -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.get_rename_view_sql", "macro.dbt.get_rename_table_sql", "macro.dbt.get_rename_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "new_name", "type": null, "description": ""}], "created_at": 1784670933.6088548, "supported_languages": null}, "macro.dbt.rename_relation": {"name": "rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.rename_relation", "macro_sql": "{% macro rename_relation(from_relation, to_relation) -%}\n {{ return(adapter.dispatch('rename_relation', 'dbt')(from_relation, to_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__rename_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "from_relation", "type": null, "description": ""}, {"name": "to_relation", "type": null, "description": ""}], "created_at": 1784670933.6092975, "supported_languages": null}, "macro.dbt.default__rename_relation": {"name": "default__rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.default__rename_relation", "macro_sql": "{% macro default__rename_relation(from_relation, to_relation) -%}\n {% set target_name = adapter.quote_as_configured(to_relation.identifier, 'identifier') %}\n {% call statement('rename_relation') -%}\n alter table {{ from_relation.render() }} rename to {{ target_name }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "from_relation", "type": null, "description": ""}, {"name": "to_relation", "type": null, "description": ""}], "created_at": 1784670933.609882, "supported_languages": null}, "macro.dbt.get_drop_backup_sql": {"name": "get_drop_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop_backup.sql", "original_file_path": "macros/relations/drop_backup.sql", "unique_id": "macro.dbt.get_drop_backup_sql", "macro_sql": "{%- macro get_drop_backup_sql(relation) -%}\n {{- log('Applying DROP BACKUP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_drop_backup_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_drop_backup_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.610505, "supported_languages": null}, "macro.dbt.default__get_drop_backup_sql": {"name": "default__get_drop_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop_backup.sql", "original_file_path": "macros/relations/drop_backup.sql", "unique_id": "macro.dbt.default__get_drop_backup_sql", "macro_sql": "{%- macro default__get_drop_backup_sql(relation) -%}\n\n -- get the standard backup name\n {% set backup_relation = make_backup_relation(relation, relation.type) %}\n\n {{ get_drop_sql(backup_relation) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_backup_relation", "macro.dbt.get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6109114, "supported_languages": null}, "macro.dbt.drop_schema_named": {"name": "drop_schema_named", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/schema.sql", "original_file_path": "macros/relations/schema.sql", "unique_id": "macro.dbt.drop_schema_named", "macro_sql": "{% macro drop_schema_named(schema_name) %}\n {{ return(adapter.dispatch('drop_schema_named', 'dbt') (schema_name)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__drop_schema_named"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_name", "type": null, "description": ""}], "created_at": 1784670933.611445, "supported_languages": null}, "macro.dbt.default__drop_schema_named": {"name": "default__drop_schema_named", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/schema.sql", "original_file_path": "macros/relations/schema.sql", "unique_id": "macro.dbt.default__drop_schema_named", "macro_sql": "{% macro default__drop_schema_named(schema_name) %}\n {% set schema_relation = api.Relation.create(schema=schema_name) %}\n {{ adapter.drop_schema(schema_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_name", "type": null, "description": ""}], "created_at": 1784670933.6118805, "supported_languages": null}, "macro.dbt.get_replace_sql": {"name": "get_replace_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/replace.sql", "original_file_path": "macros/relations/replace.sql", "unique_id": "macro.dbt.get_replace_sql", "macro_sql": "{% macro get_replace_sql(existing_relation, target_relation, sql) %}\n {{- log('Applying REPLACE to: ' ~ existing_relation) -}}\n {{- adapter.dispatch('get_replace_sql', 'dbt')(existing_relation, target_relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_replace_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "existing_relation", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.612922, "supported_languages": null}, "macro.dbt.default__get_replace_sql": {"name": "default__get_replace_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/replace.sql", "original_file_path": "macros/relations/replace.sql", "unique_id": "macro.dbt.default__get_replace_sql", "macro_sql": "{% macro default__get_replace_sql(existing_relation, target_relation, sql) %}\n\n {# /* use a create or replace statement if possible */ #}\n\n {% set is_replaceable = existing_relation.type == target_relation.type and existing_relation.can_be_replaced %}\n\n {% if is_replaceable and existing_relation.is_view %}\n {{ get_replace_view_sql(target_relation, sql) }}\n\n {% elif is_replaceable and existing_relation.is_table %}\n {{ get_replace_table_sql(target_relation, sql) }}\n\n {% elif is_replaceable and existing_relation.is_materialized_view %}\n {{ get_replace_materialized_view_sql(target_relation, sql) }}\n\n {# /* a create or replace statement is not possible, so try to stage and/or backup to be safe */ #}\n\n {# /* create target_relation as an intermediate relation, then swap it out with the existing one using a backup */ #}\n {%- elif target_relation.can_be_renamed and existing_relation.can_be_renamed -%}\n {{ get_create_intermediate_sql(target_relation, sql) }};\n {{ get_create_backup_sql(existing_relation) }};\n {{ get_rename_intermediate_sql(target_relation) }};\n {{ get_drop_backup_sql(existing_relation) }}\n\n {# /* create target_relation as an intermediate relation, then swap it out with the existing one without using a backup */ #}\n {%- elif target_relation.can_be_renamed -%}\n {{ get_create_intermediate_sql(target_relation, sql) }};\n {{ get_drop_sql(existing_relation) }};\n {{ get_rename_intermediate_sql(target_relation) }}\n\n {# /* create target_relation in place by first backing up the existing relation */ #}\n {%- elif existing_relation.can_be_renamed -%}\n {{ get_create_backup_sql(existing_relation) }};\n {{ get_create_sql(target_relation, sql) }};\n {{ get_drop_backup_sql(existing_relation) }}\n\n {# /* no renaming is allowed, so just drop and create */ #}\n {%- else -%}\n {{ get_drop_sql(existing_relation) }};\n {{ get_create_sql(target_relation, sql) }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_replace_view_sql", "macro.dbt.get_replace_table_sql", "macro.dbt.get_replace_materialized_view_sql", "macro.dbt.get_create_intermediate_sql", "macro.dbt.get_create_backup_sql", "macro.dbt.get_rename_intermediate_sql", "macro.dbt.get_drop_backup_sql", "macro.dbt.get_drop_sql", "macro.dbt.get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "existing_relation", "type": null, "description": ""}, {"name": "target_relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.615409, "supported_languages": null}, "macro.dbt.get_rename_intermediate_sql": {"name": "get_rename_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename_intermediate.sql", "original_file_path": "macros/relations/rename_intermediate.sql", "unique_id": "macro.dbt.get_rename_intermediate_sql", "macro_sql": "{%- macro get_rename_intermediate_sql(relation) -%}\n {{- log('Applying RENAME INTERMEDIATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_rename_intermediate_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_rename_intermediate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6161528, "supported_languages": null}, "macro.dbt.default__get_rename_intermediate_sql": {"name": "default__get_rename_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename_intermediate.sql", "original_file_path": "macros/relations/rename_intermediate.sql", "unique_id": "macro.dbt.default__get_rename_intermediate_sql", "macro_sql": "{%- macro default__get_rename_intermediate_sql(relation) -%}\n\n -- get the standard intermediate name\n {% set intermediate_relation = make_intermediate_relation(relation) %}\n\n {{ get_rename_sql(intermediate_relation, relation.identifier) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_intermediate_relation", "macro.dbt.get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6166086, "supported_languages": null}, "macro.dbt.get_create_sql": {"name": "get_create_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create.sql", "original_file_path": "macros/relations/create.sql", "unique_id": "macro.dbt.get_create_sql", "macro_sql": "{%- macro get_create_sql(relation, sql) -%}\n {{- log('Applying CREATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_sql', 'dbt')(relation, sql) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6173656, "supported_languages": null}, "macro.dbt.default__get_create_sql": {"name": "default__get_create_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create.sql", "original_file_path": "macros/relations/create.sql", "unique_id": "macro.dbt.default__get_create_sql", "macro_sql": "{%- macro default__get_create_sql(relation, sql) -%}\n\n {%- if relation.is_view -%}\n {{ get_create_view_as_sql(relation, sql) }}\n\n {%- elif relation.is_table -%}\n {{ get_create_table_as_sql(False, relation, sql) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ get_create_materialized_view_as_sql(relation, sql) }}\n\n {%- else -%}\n {{- exceptions.raise_compiler_error(\"`get_create_sql` has not been implemented for: \" ~ relation.type ) -}}\n\n {%- endif -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.get_create_view_as_sql", "macro.dbt.get_create_table_as_sql", "macro.dbt.get_create_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6182568, "supported_languages": null}, "macro.dbt.get_create_intermediate_sql": {"name": "get_create_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_intermediate.sql", "original_file_path": "macros/relations/create_intermediate.sql", "unique_id": "macro.dbt.get_create_intermediate_sql", "macro_sql": "{%- macro get_create_intermediate_sql(relation, sql) -%}\n {{- log('Applying CREATE INTERMEDIATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_intermediate_sql', 'dbt')(relation, sql) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_intermediate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6189048, "supported_languages": null}, "macro.dbt.default__get_create_intermediate_sql": {"name": "default__get_create_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_intermediate.sql", "original_file_path": "macros/relations/create_intermediate.sql", "unique_id": "macro.dbt.default__get_create_intermediate_sql", "macro_sql": "{%- macro default__get_create_intermediate_sql(relation, sql) -%}\n\n -- get the standard intermediate name\n {% set intermediate_relation = make_intermediate_relation(relation) %}\n\n -- drop any pre-existing intermediate\n {{ get_drop_sql(intermediate_relation) }};\n\n {{ get_create_sql(intermediate_relation, sql) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_intermediate_relation", "macro.dbt.get_drop_sql", "macro.dbt.get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.619429, "supported_languages": null}, "macro.dbt.get_drop_sql": {"name": "get_drop_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.get_drop_sql", "macro_sql": "{%- macro get_drop_sql(relation) -%}\n {{- log('Applying DROP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_drop_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6202898, "supported_languages": null}, "macro.dbt.default__get_drop_sql": {"name": "default__get_drop_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.default__get_drop_sql", "macro_sql": "{%- macro default__get_drop_sql(relation) -%}\n\n {%- if relation.is_view -%}\n {{ drop_view(relation) }}\n\n {%- elif relation.is_table -%}\n {{ drop_table(relation) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ drop_materialized_view(relation) }}\n\n {%- else -%}\n drop {{ relation.type }} if exists {{ relation.render() }} cascade\n\n {%- endif -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.drop_view", "macro.dbt.drop_table", "macro.dbt.drop_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.62104, "supported_languages": null}, "macro.dbt.drop_relation": {"name": "drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.drop_relation", "macro_sql": "{% macro drop_relation(relation) -%}\n {{ return(adapter.dispatch('drop_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__drop_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6214285, "supported_languages": null}, "macro.dbt.default__drop_relation": {"name": "default__drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.default__drop_relation", "macro_sql": "{% macro default__drop_relation(relation) -%}\n {% call statement('drop_relation', auto_begin=False) -%}\n {{ get_drop_sql(relation) }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.621824, "supported_languages": null}, "macro.dbt.drop_relation_if_exists": {"name": "drop_relation_if_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.drop_relation_if_exists", "macro_sql": "{% macro drop_relation_if_exists(relation) %}\n {% if relation is not none %}\n {{ adapter.drop_relation(relation) }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6222405, "supported_languages": null}, "macro.dbt.get_rename_table_sql": {"name": "get_rename_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt.get_rename_table_sql", "macro_sql": "{% macro get_rename_table_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_table_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_rename_table_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "new_name", "type": null, "description": ""}], "created_at": 1784670933.6227515, "supported_languages": null}, "macro.dbt.default__get_rename_table_sql": {"name": "default__get_rename_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt.default__get_rename_table_sql", "macro_sql": "{% macro default__get_rename_table_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_table_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "new_name", "type": null, "description": ""}], "created_at": 1784670933.6230772, "supported_languages": null}, "macro.dbt.get_replace_table_sql": {"name": "get_replace_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt.get_replace_table_sql", "macro_sql": "{% macro get_replace_table_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_table_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_replace_table_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6235921, "supported_languages": null}, "macro.dbt.default__get_replace_table_sql": {"name": "default__get_replace_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt.default__get_replace_table_sql", "macro_sql": "{% macro default__get_replace_table_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_table_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6239967, "supported_languages": null}, "macro.dbt.get_create_table_as_sql": {"name": "get_create_table_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.get_create_table_as_sql", "macro_sql": "{% macro get_create_table_as_sql(temporary, relation, sql) -%}\n {{ adapter.dispatch('get_create_table_as_sql', 'dbt')(temporary, relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_create_table_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "temporary", "type": null, "description": ""}, {"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.625162, "supported_languages": null}, "macro.dbt.default__get_create_table_as_sql": {"name": "default__get_create_table_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_create_table_as_sql", "macro_sql": "{% macro default__get_create_table_as_sql(temporary, relation, sql) -%}\n {{ return(create_table_as(temporary, relation, sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "temporary", "type": null, "description": ""}, {"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.625535, "supported_languages": null}, "macro.dbt.create_table_as": {"name": "create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.create_table_as", "macro_sql": "{% macro create_table_as(temporary, relation, compiled_code, language='sql') -%}\n {# backward compatibility for create_table_as that does not support language #}\n {% if language == \"sql\" %}\n {{ adapter.dispatch('create_table_as', 'dbt')(temporary, relation, compiled_code)}}\n {% else %}\n {{ adapter.dispatch('create_table_as', 'dbt')(temporary, relation, compiled_code, language) }}\n {% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "temporary", "type": null, "description": ""}, {"name": "relation", "type": null, "description": ""}, {"name": "compiled_code", "type": null, "description": ""}, {"name": "language", "type": null, "description": ""}], "created_at": 1784670933.626391, "supported_languages": null}, "macro.dbt.default__create_table_as": {"name": "default__create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__create_table_as", "macro_sql": "{% macro default__create_table_as(temporary, relation, sql) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n\n create {% if temporary: -%}temporary{%- endif %} table\n {{ relation.include(database=(not temporary), schema=(not temporary)) }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced and (not temporary) %}\n {{ get_assert_columns_equivalent(sql) }}\n {{ get_table_columns_and_constraints() }}\n {%- set sql = get_select_subquery(sql) %}\n {% endif %}\n as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_table_columns_and_constraints", "macro.dbt.get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "temporary", "type": null, "description": ""}, {"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6277385, "supported_languages": null}, "macro.dbt.default__get_column_names": {"name": "default__get_column_names", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_column_names", "macro_sql": "{% macro default__get_column_names() %}\n {#- loop through user_provided_columns to get column names -#}\n {%- set user_provided_columns = model['columns'] -%}\n {%- for i in user_provided_columns %}\n {%- set col = user_provided_columns[i] -%}\n {%- set col_name = adapter.quote(col['name']) if col.get('quote') else col['name'] -%}\n {{ col_name }}{{ \", \" if not loop.last }}\n {%- endfor -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.6286626, "supported_languages": null}, "macro.dbt.get_select_subquery": {"name": "get_select_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.get_select_subquery", "macro_sql": "{% macro get_select_subquery(sql) %}\n {{ return(adapter.dispatch('get_select_subquery', 'dbt')(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6290283, "supported_languages": null}, "macro.dbt.default__get_select_subquery": {"name": "default__get_select_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_select_subquery", "macro_sql": "{% macro default__get_select_subquery(sql) %}\n select {{ adapter.dispatch('get_column_names', 'dbt')() }}\n from (\n {{ sql }}\n ) as model_subq\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_column_names"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6294057, "supported_languages": null}, "macro.dbt.drop_table": {"name": "drop_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt.drop_table", "macro_sql": "{% macro drop_table(relation) -%}\n {{- adapter.dispatch('drop_table', 'dbt')(relation) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6298788, "supported_languages": null}, "macro.dbt.default__drop_table": {"name": "default__drop_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt.default__drop_table", "macro_sql": "{% macro default__drop_table(relation) -%}\n drop table if exists {{ relation.render() }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6301527, "supported_languages": null}, "macro.dbt.get_table_columns_and_constraints": {"name": "get_table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.get_table_columns_and_constraints", "macro_sql": "{%- macro get_table_columns_and_constraints() -%}\n {{ adapter.dispatch('get_table_columns_and_constraints', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__get_table_columns_and_constraints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.6315618, "supported_languages": null}, "macro.dbt.default__get_table_columns_and_constraints": {"name": "default__get_table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__get_table_columns_and_constraints", "macro_sql": "{% macro default__get_table_columns_and_constraints() -%}\n {{ return(table_columns_and_constraints()) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.table_columns_and_constraints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.6318145, "supported_languages": null}, "macro.dbt.table_columns_and_constraints": {"name": "table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.table_columns_and_constraints", "macro_sql": "{% macro table_columns_and_constraints() %}\n {# loop through user_provided_columns to create DDL with data types and constraints #}\n {%- set raw_column_constraints = adapter.render_raw_columns_constraints(raw_columns=model['columns']) -%}\n {%- set raw_model_constraints = adapter.render_raw_model_constraints(raw_constraints=model['constraints']) -%}\n (\n {% for c in raw_column_constraints -%}\n {{ c }}{{ \",\" if not loop.last or raw_model_constraints }}\n {% endfor %}\n {% for c in raw_model_constraints -%}\n {{ c }}{{ \",\" if not loop.last }}\n {% endfor -%}\n )\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.632872, "supported_languages": null}, "macro.dbt.get_assert_columns_equivalent": {"name": "get_assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.get_assert_columns_equivalent", "macro_sql": "\n\n{%- macro get_assert_columns_equivalent(sql) -%}\n {{ adapter.dispatch('get_assert_columns_equivalent', 'dbt')(sql) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6333408, "supported_languages": null}, "macro.dbt.default__get_assert_columns_equivalent": {"name": "default__get_assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__get_assert_columns_equivalent", "macro_sql": "{% macro default__get_assert_columns_equivalent(sql) -%}\n {{ return(assert_columns_equivalent(sql)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6336277, "supported_languages": null}, "macro.dbt.assert_columns_equivalent": {"name": "assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.assert_columns_equivalent", "macro_sql": "{% macro assert_columns_equivalent(sql) %}\n\n {#-- First ensure the user has defined 'columns' in yaml specification --#}\n {%- set user_defined_columns = model['columns'] -%}\n {%- if not user_defined_columns -%}\n {{ exceptions.raise_contract_error([], []) }}\n {%- endif -%}\n\n {#-- Obtain the column schema provided by sql file. #}\n {%- set sql_file_provided_columns = get_column_schema_from_query(sql, config.get('sql_header', none)) -%}\n {#--Obtain the column schema provided by the schema file by generating an 'empty schema' query from the model's columns. #}\n {%- set schema_file_provided_columns = get_column_schema_from_query(get_empty_schema_sql(user_defined_columns)) -%}\n\n {#-- create dictionaries with name and formatted data type and strings for exception #}\n {%- set sql_columns = format_columns(sql_file_provided_columns) -%}\n {%- set yaml_columns = format_columns(schema_file_provided_columns) -%}\n\n {%- if sql_columns|length != yaml_columns|length -%}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n\n {%- for sql_col in sql_columns -%}\n {%- set yaml_col = [] -%}\n {%- for this_col in yaml_columns -%}\n {%- if this_col['name'] == sql_col['name'] -%}\n {%- do yaml_col.append(this_col) -%}\n {%- break -%}\n {%- endif -%}\n {%- endfor -%}\n {%- if not yaml_col -%}\n {#-- Column with name not found in yaml #}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n {%- if sql_col['formatted'] != yaml_col[0]['formatted'] -%}\n {#-- Column data types don't match #}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n {%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_column_schema_from_query", "macro.dbt.get_empty_schema_sql", "macro.dbt.format_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6361403, "supported_languages": null}, "macro.dbt.format_columns": {"name": "format_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.format_columns", "macro_sql": "{% macro format_columns(columns) %}\n {% set formatted_columns = [] %}\n {% for column in columns %}\n {%- set formatted_column = adapter.dispatch('format_column', 'dbt')(column) -%}\n {%- do formatted_columns.append(formatted_column) -%}\n {% endfor %}\n {{ return(formatted_columns) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__format_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "columns", "type": null, "description": ""}], "created_at": 1784670933.6368904, "supported_languages": null}, "macro.dbt.default__format_column": {"name": "default__format_column", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__format_column", "macro_sql": "{% macro default__format_column(column) -%}\n {% set data_type = column.dtype %}\n {% set formatted = column.column.lower() ~ \" \" ~ data_type %}\n {{ return({'name': column.name, 'data_type': data_type, 'formatted': formatted}) }}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "column", "type": null, "description": ""}], "created_at": 1784670933.6375787, "supported_languages": null}, "macro.dbt.get_rename_view_sql": {"name": "get_rename_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt.get_rename_view_sql", "macro_sql": "{% macro get_rename_view_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_view_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_rename_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "new_name", "type": null, "description": ""}], "created_at": 1784670933.638133, "supported_languages": null}, "macro.dbt.default__get_rename_view_sql": {"name": "default__get_rename_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt.default__get_rename_view_sql", "macro_sql": "{% macro default__get_rename_view_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "new_name", "type": null, "description": ""}], "created_at": 1784670933.638438, "supported_languages": null}, "macro.dbt.get_replace_view_sql": {"name": "get_replace_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.get_replace_view_sql", "macro_sql": "{% macro get_replace_view_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_view_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_replace_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6394024, "supported_languages": null}, "macro.dbt.default__get_replace_view_sql": {"name": "default__get_replace_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.default__get_replace_view_sql", "macro_sql": "{% macro default__get_replace_view_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6396983, "supported_languages": null}, "macro.dbt.create_or_replace_view": {"name": "create_or_replace_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.create_or_replace_view", "macro_sql": "{% macro create_or_replace_view() %}\n {%- set identifier = model['alias'] -%}\n\n {%- set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) -%}\n {%- set exists_as_view = (old_relation is not none and old_relation.is_view) -%}\n\n {%- set target_relation = api.Relation.create(\n identifier=identifier, schema=schema, database=database,\n type='view') -%}\n {% set grant_config = config.get('grants') %}\n\n {{ run_hooks(pre_hooks) }}\n\n -- If there's a table with the same name and we weren't told to full refresh,\n -- that's an error. If we were told to full refresh, drop it. This behavior differs\n -- for Snowflake and BigQuery, so multiple dispatch is used.\n {%- if old_relation is not none and old_relation.is_table -%}\n {{ handle_existing_table(should_full_refresh(), old_relation) }}\n {%- endif -%}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_view_as_sql(target_relation, sql) }}\n {%- endcall %}\n\n {% set should_revoke = should_revoke(exists_as_view, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {{ run_hooks(post_hooks) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.handle_existing_table", "macro.dbt.should_full_refresh", "macro.dbt.statement", "macro.dbt.get_create_view_as_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.6418784, "supported_languages": null}, "macro.dbt.handle_existing_table": {"name": "handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.handle_existing_table", "macro_sql": "{% macro handle_existing_table(full_refresh, old_relation) %}\n {{ adapter.dispatch('handle_existing_table', 'dbt')(full_refresh, old_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__handle_existing_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "full_refresh", "type": null, "description": ""}, {"name": "old_relation", "type": null, "description": ""}], "created_at": 1784670933.6422915, "supported_languages": null}, "macro.dbt.default__handle_existing_table": {"name": "default__handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.default__handle_existing_table", "macro_sql": "{% macro default__handle_existing_table(full_refresh, old_relation) %}\n {{ log(\"Dropping relation \" ~ old_relation.render() ~ \" because it is of type \" ~ old_relation.type) }}\n {{ adapter.drop_relation(old_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "full_refresh", "type": null, "description": ""}, {"name": "old_relation", "type": null, "description": ""}], "created_at": 1784670933.64276, "supported_languages": null}, "macro.dbt.get_create_view_as_sql": {"name": "get_create_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.get_create_view_as_sql", "macro_sql": "{% macro get_create_view_as_sql(relation, sql) -%}\n {{ adapter.dispatch('get_create_view_as_sql', 'dbt')(relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_create_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6434915, "supported_languages": null}, "macro.dbt.default__get_create_view_as_sql": {"name": "default__get_create_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.default__get_create_view_as_sql", "macro_sql": "{% macro default__get_create_view_as_sql(relation, sql) -%}\n {{ return(create_view_as(relation, sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6438212, "supported_languages": null}, "macro.dbt.create_view_as": {"name": "create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.create_view_as", "macro_sql": "{% macro create_view_as(relation, sql) -%}\n {{ adapter.dispatch('create_view_as', 'dbt')(relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6442153, "supported_languages": null}, "macro.dbt.default__create_view_as": {"name": "default__create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.default__create_view_as", "macro_sql": "{% macro default__create_view_as(relation, sql) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n create view {{ relation.render() }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {%- endif %}\n as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6452174, "supported_languages": null}, "macro.dbt.drop_view": {"name": "drop_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt.drop_view", "macro_sql": "{% macro drop_view(relation) -%}\n {{- adapter.dispatch('drop_view', 'dbt')(relation) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6457012, "supported_languages": null}, "macro.dbt.default__drop_view": {"name": "default__drop_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt.default__drop_view", "macro_sql": "{% macro default__drop_view(relation) -%}\n drop view if exists {{ relation.render() }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6459486, "supported_languages": null}, "macro.dbt.get_rename_materialized_view_sql": {"name": "get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt.get_rename_materialized_view_sql", "macro_sql": "{% macro get_rename_materialized_view_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_materialized_view_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_rename_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "new_name", "type": null, "description": ""}], "created_at": 1784670933.6464903, "supported_languages": null}, "macro.dbt.default__get_rename_materialized_view_sql": {"name": "default__get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt.default__get_rename_materialized_view_sql", "macro_sql": "{% macro default__get_rename_materialized_view_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_materialized_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "new_name", "type": null, "description": ""}], "created_at": 1784670933.6467893, "supported_languages": null}, "macro.dbt.get_replace_materialized_view_sql": {"name": "get_replace_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/replace.sql", "original_file_path": "macros/relations/materialized_view/replace.sql", "unique_id": "macro.dbt.get_replace_materialized_view_sql", "macro_sql": "{% macro get_replace_materialized_view_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_materialized_view_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_replace_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6473114, "supported_languages": null}, "macro.dbt.default__get_replace_materialized_view_sql": {"name": "default__get_replace_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/replace.sql", "original_file_path": "macros/relations/materialized_view/replace.sql", "unique_id": "macro.dbt.default__get_replace_materialized_view_sql", "macro_sql": "{% macro default__get_replace_materialized_view_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_materialized_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.647618, "supported_languages": null}, "macro.dbt.refresh_materialized_view": {"name": "refresh_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt.refresh_materialized_view", "macro_sql": "{% macro refresh_materialized_view(relation) %}\n {{- log('Applying REFRESH to: ' ~ relation) -}}\n {{- adapter.dispatch('refresh_materialized_view', 'dbt')(relation) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__refresh_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6482167, "supported_languages": null}, "macro.dbt.default__refresh_materialized_view": {"name": "default__refresh_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt.default__refresh_materialized_view", "macro_sql": "{% macro default__refresh_materialized_view(relation) %}\n {{ exceptions.raise_compiler_error(\"`refresh_materialized_view` has not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.648493, "supported_languages": null}, "macro.dbt.get_create_materialized_view_as_sql": {"name": "get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt.get_create_materialized_view_as_sql", "macro_sql": "{% macro get_create_materialized_view_as_sql(relation, sql) -%}\n {{- adapter.dispatch('get_create_materialized_view_as_sql', 'dbt')(relation, sql) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_create_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.648996, "supported_languages": null}, "macro.dbt.default__get_create_materialized_view_as_sql": {"name": "default__get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt.default__get_create_materialized_view_as_sql", "macro_sql": "{% macro default__get_create_materialized_view_as_sql(relation, sql) -%}\n {{ exceptions.raise_compiler_error(\n \"`get_create_materialized_view_as_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6493266, "supported_languages": null}, "macro.dbt.get_alter_materialized_view_as_sql": {"name": "get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.get_alter_materialized_view_as_sql", "macro_sql": "{% macro get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n {{- log('Applying ALTER to: ' ~ relation) -}}\n {{- adapter.dispatch('get_alter_materialized_view_as_sql', 'dbt')(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n ) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "configuration_changes", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}, {"name": "existing_relation", "type": null, "description": ""}, {"name": "backup_relation", "type": null, "description": ""}, {"name": "intermediate_relation", "type": null, "description": ""}], "created_at": 1784670933.6503334, "supported_languages": null}, "macro.dbt.default__get_alter_materialized_view_as_sql": {"name": "default__get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.default__get_alter_materialized_view_as_sql", "macro_sql": "{% macro default__get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n {{ exceptions.raise_compiler_error(\"Materialized views have not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "configuration_changes", "type": null, "description": ""}, {"name": "sql", "type": null, "description": ""}, {"name": "existing_relation", "type": null, "description": ""}, {"name": "backup_relation", "type": null, "description": ""}, {"name": "intermediate_relation", "type": null, "description": ""}], "created_at": 1784670933.6507168, "supported_languages": null}, "macro.dbt.get_materialized_view_configuration_changes": {"name": "get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.get_materialized_view_configuration_changes", "macro_sql": "{% macro get_materialized_view_configuration_changes(existing_relation, new_config) %}\n /* {#\n It's recommended that configuration changes be formatted as follows:\n {\"\": [{\"action\": \"\", \"context\": ...}]}\n\n For example:\n {\n \"indexes\": [\n {\"action\": \"drop\", \"context\": \"index_abc\"},\n {\"action\": \"create\", \"context\": {\"columns\": [\"column_1\", \"column_2\"], \"type\": \"hash\", \"unique\": True}},\n ],\n }\n\n Either way, `get_materialized_view_configuration_changes` needs to align with `get_alter_materialized_view_as_sql`.\n #} */\n {{- log('Determining configuration changes on: ' ~ existing_relation) -}}\n {%- do return(adapter.dispatch('get_materialized_view_configuration_changes', 'dbt')(existing_relation, new_config)) -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_materialized_view_configuration_changes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "existing_relation", "type": null, "description": ""}, {"name": "new_config", "type": null, "description": ""}], "created_at": 1784670933.6512852, "supported_languages": null}, "macro.dbt.default__get_materialized_view_configuration_changes": {"name": "default__get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.default__get_materialized_view_configuration_changes", "macro_sql": "{% macro default__get_materialized_view_configuration_changes(existing_relation, new_config) %}\n {{ exceptions.raise_compiler_error(\"Materialized views have not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "existing_relation", "type": null, "description": ""}, {"name": "new_config", "type": null, "description": ""}], "created_at": 1784670933.6516845, "supported_languages": null}, "macro.dbt.drop_materialized_view": {"name": "drop_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt.drop_materialized_view", "macro_sql": "{% macro drop_materialized_view(relation) -%}\n {{- adapter.dispatch('drop_materialized_view', 'dbt')(relation) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.6522493, "supported_languages": null}, "macro.dbt.default__drop_materialized_view": {"name": "default__drop_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt.default__drop_materialized_view", "macro_sql": "{% macro default__drop_materialized_view(relation) -%}\n drop materialized view if exists {{ relation.render() }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.652515, "supported_languages": null}, "macro.dbt.statement": {"name": "statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.statement", "macro_sql": "\n{%- macro statement(name=None, fetch_result=False, auto_begin=True, language='sql') -%}\n {%- if execute: -%}\n {%- set compiled_code = caller() -%}\n\n {%- if name == 'main' -%}\n {{ log('Writing runtime {} for node \"{}\"'.format(language, model['unique_id'])) }}\n {{ write(compiled_code) }}\n {%- endif -%}\n {%- if language == 'sql'-%}\n {%- set res, table = adapter.execute(compiled_code, auto_begin=auto_begin, fetch=fetch_result) -%}\n {%- elif language == 'python' -%}\n {%- set res = submit_python_job(model, compiled_code) -%}\n {#-- TODO: What should table be for python models? --#}\n {%- set table = None -%}\n {%- else -%}\n {% do exceptions.raise_compiler_error(\"statement macro didn't get supported language\") %}\n {%- endif -%}\n\n {%- if name is not none -%}\n {{ store_result(name, response=res, agate_table=table) }}\n {%- endif -%}\n\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "name", "type": null, "description": ""}, {"name": "fetch_result", "type": null, "description": ""}, {"name": "auto_begin", "type": null, "description": ""}, {"name": "language", "type": null, "description": ""}], "created_at": 1784670933.654993, "supported_languages": null}, "macro.dbt.noop_statement": {"name": "noop_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.noop_statement", "macro_sql": "{% macro noop_statement(name=None, message=None, code=None, rows_affected=None, res=None) -%}\n {%- set sql = caller() -%}\n\n {%- if name == 'main' -%}\n {{ log('Writing runtime SQL for node \"{}\"'.format(model['unique_id'])) }}\n {{ write(sql) }}\n {%- endif -%}\n\n {%- if name is not none -%}\n {{ store_raw_result(name, message=message, code=code, rows_affected=rows_affected, agate_table=res) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "name", "type": null, "description": ""}, {"name": "message", "type": null, "description": ""}, {"name": "code", "type": null, "description": ""}, {"name": "rows_affected", "type": null, "description": ""}, {"name": "res", "type": null, "description": ""}], "created_at": 1784670933.6561375, "supported_languages": null}, "macro.dbt.run_query": {"name": "run_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.run_query", "macro_sql": "{% macro run_query(sql) %}\n {% call statement(\"run_query_statement\", fetch_result=true, auto_begin=false) %}\n {{ sql }}\n {% endcall %}\n\n {% do return(load_result(\"run_query_statement\").table) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "sql", "type": null, "description": ""}], "created_at": 1784670933.6567092, "supported_languages": null}, "macro.dbt.convert_datetime": {"name": "convert_datetime", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.convert_datetime", "macro_sql": "{% macro convert_datetime(date_str, date_fmt) %}\n\n {% set error_msg -%}\n The provided partition date '{{ date_str }}' does not match the expected format '{{ date_fmt }}'\n {%- endset %}\n\n {% set res = try_or_compiler_error(error_msg, modules.datetime.datetime.strptime, date_str.strip(), date_fmt) %}\n {{ return(res) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "date_str", "type": null, "description": ""}, {"name": "date_fmt", "type": null, "description": ""}], "created_at": 1784670933.658114, "supported_languages": null}, "macro.dbt.dates_in_range": {"name": "dates_in_range", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.dates_in_range", "macro_sql": "{% macro dates_in_range(start_date_str, end_date_str=none, in_fmt=\"%Y%m%d\", out_fmt=\"%Y%m%d\") %}\n {% set end_date_str = start_date_str if end_date_str is none else end_date_str %}\n\n {% set start_date = convert_datetime(start_date_str, in_fmt) %}\n {% set end_date = convert_datetime(end_date_str, in_fmt) %}\n\n {% set day_count = (end_date - start_date).days %}\n {% if day_count < 0 %}\n {% set msg -%}\n Partition start date is after the end date ({{ start_date }}, {{ end_date }})\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg, model) }}\n {% endif %}\n\n {% set date_list = [] %}\n {% for i in range(0, day_count + 1) %}\n {% set the_date = (modules.datetime.timedelta(days=i) + start_date) %}\n {% if not out_fmt %}\n {% set _ = date_list.append(the_date) %}\n {% else %}\n {% set _ = date_list.append(the_date.strftime(out_fmt)) %}\n {% endif %}\n {% endfor %}\n\n {{ return(date_list) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.convert_datetime"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "start_date_str", "type": null, "description": ""}, {"name": "end_date_str", "type": null, "description": ""}, {"name": "in_fmt", "type": null, "description": ""}, {"name": "out_fmt", "type": null, "description": ""}], "created_at": 1784670933.6604283, "supported_languages": null}, "macro.dbt.partition_range": {"name": "partition_range", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.partition_range", "macro_sql": "{% macro partition_range(raw_partition_date, date_fmt='%Y%m%d') %}\n {% set partition_range = (raw_partition_date | string).split(\",\") %}\n\n {% if (partition_range | length) == 1 %}\n {% set start_date = partition_range[0] %}\n {% set end_date = none %}\n {% elif (partition_range | length) == 2 %}\n {% set start_date = partition_range[0] %}\n {% set end_date = partition_range[1] %}\n {% else %}\n {{ exceptions.raise_compiler_error(\"Invalid partition time. Expected format: {Start Date}[,{End Date}]. Got: \" ~ raw_partition_date) }}\n {% endif %}\n\n {{ return(dates_in_range(start_date, end_date, in_fmt=date_fmt)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dates_in_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "raw_partition_date", "type": null, "description": ""}, {"name": "date_fmt", "type": null, "description": ""}], "created_at": 1784670933.6620948, "supported_languages": null}, "macro.dbt.py_current_timestring": {"name": "py_current_timestring", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.py_current_timestring", "macro_sql": "{% macro py_current_timestring() %}\n {% set dt = modules.datetime.datetime.now() %}\n {% do return(dt.strftime(\"%Y%m%d%H%M%S%f\")) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.6625612, "supported_languages": null}, "macro.dbt.get_fixture_sql": {"name": "get_fixture_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.get_fixture_sql", "macro_sql": "{% macro get_fixture_sql(rows, column_name_to_data_types) %}\n-- Fixture for {{ model.name }}\n{% set default_row = {} %}\n\n{%- if not column_name_to_data_types -%}\n{#-- Use defer_relation IFF it is available in the manifest and 'this' is missing from the database --#}\n{%- set this_or_defer_relation = defer_relation if (defer_relation and not load_relation(this)) else this -%}\n{%- set columns_in_relation = adapter.get_columns_in_relation(this_or_defer_relation) -%}\n\n{%- set column_name_to_data_types = {} -%}\n{%- set column_name_to_quoted = {} -%}\n{%- for column in columns_in_relation -%}\n\n{#-- This needs to be a case-insensitive comparison --#}\n{%- do column_name_to_data_types.update({column.name|lower: column.data_type}) -%}\n{%- do column_name_to_quoted.update({column.name|lower: column.quoted}) -%}\n{%- endfor -%}\n{%- endif -%}\n\n{%- if not column_name_to_data_types -%}\n {{ exceptions.raise_compiler_error(\"Not able to get columns for unit test '\" ~ model.name ~ \"' from relation \" ~ this ~ \" because the relation doesn't exist\") }}\n{%- endif -%}\n\n{%- for column_name, column_type in column_name_to_data_types.items() -%}\n {%- do default_row.update({column_name: (safe_cast(\"null\", column_type) | trim )}) -%}\n{%- endfor -%}\n\n{{ validate_fixture_rows(rows, row_number) }}\n\n{%- for row in rows -%}\n{%- set formatted_row = format_row(row, column_name_to_data_types) -%}\n{%- set default_row_copy = default_row.copy() -%}\n{%- do default_row_copy.update(formatted_row) -%}\nselect\n{%- for column_name, column_value in default_row_copy.items() %} {{ column_value }} as {{ column_name_to_quoted[column_name] }}{% if not loop.last -%}, {%- endif %}\n{%- endfor %}\n{%- if not loop.last %}\nunion all\n{% endif %}\n{%- endfor -%}\n\n{%- if (rows | length) == 0 -%}\n select\n {%- for column_name, column_value in default_row.items() %} {{ column_value }} as {{ column_name_to_quoted[column_name] }}{% if not loop.last -%},{%- endif %}\n {%- endfor %}\n limit 0\n{%- endif -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_relation", "macro.dbt.safe_cast", "macro.dbt.validate_fixture_rows", "macro.dbt.format_row"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "rows", "type": null, "description": ""}, {"name": "column_name_to_data_types", "type": null, "description": ""}], "created_at": 1784670933.6675665, "supported_languages": null}, "macro.dbt.get_expected_sql": {"name": "get_expected_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.get_expected_sql", "macro_sql": "{% macro get_expected_sql(rows, column_name_to_data_types, column_name_to_quoted) %}\n\n{%- if (rows | length) == 0 -%}\n select * from dbt_internal_unit_test_actual\n limit 0\n{%- else -%}\n{%- for row in rows -%}\n{%- set formatted_row = format_row(row, column_name_to_data_types) -%}\nselect\n{%- for column_name, column_value in formatted_row.items() %} {{ column_value }} as {{ column_name_to_quoted[column_name] }}{% if not loop.last -%}, {%- endif %}\n{%- endfor %}\n{%- if not loop.last %}\nunion all\n{% endif %}\n{%- endfor -%}\n{%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.format_row"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "rows", "type": null, "description": ""}, {"name": "column_name_to_data_types", "type": null, "description": ""}, {"name": "column_name_to_quoted", "type": null, "description": ""}], "created_at": 1784670933.6687279, "supported_languages": null}, "macro.dbt.format_row": {"name": "format_row", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.format_row", "macro_sql": "\n\n{%- macro format_row(row, column_name_to_data_types) -%}\n {#-- generate case-insensitive formatted row --#}\n {% set formatted_row = {} %}\n {%- for column_name, column_value in row.items() -%}\n {% set column_name = column_name|lower %}\n\n {%- if column_name not in column_name_to_data_types %}\n {#-- if user-provided row contains column name that relation does not contain, raise an error --#}\n {% set fixture_name = \"expected output\" if model.resource_type == 'unit_test' else (\"'\" ~ model.name ~ \"'\") %}\n {{ exceptions.raise_compiler_error(\n \"Invalid column name: '\" ~ column_name ~ \"' in unit test fixture for \" ~ fixture_name ~ \".\"\n \"\\nAccepted columns for \" ~ fixture_name ~ \" are: \" ~ (column_name_to_data_types.keys()|list)\n ) }}\n {%- endif -%}\n\n {%- set column_type = column_name_to_data_types[column_name] %}\n\n {#-- For string fixture values, strip varchar length to prevent silent truncation (GH-11974) --#}\n {%- if column_value is string and 'varying' in column_type -%}\n {%- set column_type = column_type.split('(')[0] -%}\n {%- endif -%}\n\n {#-- sanitize column_value: wrap yaml strings in quotes, apply cast --#}\n {%- set column_value_clean = column_value -%}\n {%- if column_value is string -%}\n {%- set column_value_clean = dbt.string_literal(dbt.escape_single_quotes(column_value)) -%}\n {%- elif column_value is none -%}\n {%- set column_value_clean = 'null' -%}\n {%- endif -%}\n\n {%- set row_update = {column_name: safe_cast(column_value_clean, column_type) } -%}\n {%- do formatted_row.update(row_update) -%}\n {%- endfor -%}\n {{ return(formatted_row) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.string_literal", "macro.dbt.escape_single_quotes", "macro.dbt.safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "row", "type": null, "description": ""}, {"name": "column_name_to_data_types", "type": null, "description": ""}], "created_at": 1784670933.671245, "supported_languages": null}, "macro.dbt.validate_fixture_rows": {"name": "validate_fixture_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.validate_fixture_rows", "macro_sql": "{%- macro validate_fixture_rows(rows, row_number) -%}\n {{ return(adapter.dispatch('validate_fixture_rows', 'dbt')(rows, row_number)) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__validate_fixture_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "rows", "type": null, "description": ""}, {"name": "row_number", "type": null, "description": ""}], "created_at": 1784670933.6716704, "supported_languages": null}, "macro.dbt.default__validate_fixture_rows": {"name": "default__validate_fixture_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.default__validate_fixture_rows", "macro_sql": "{%- macro default__validate_fixture_rows(rows, row_number) -%}\n {# This is an abstract method for adapter overrides as needed #}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "rows", "type": null, "description": ""}, {"name": "row_number", "type": null, "description": ""}], "created_at": 1784670933.6718726, "supported_languages": null}, "macro.dbt.resolve_model_name": {"name": "resolve_model_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.resolve_model_name", "macro_sql": "{% macro resolve_model_name(input_model_name) %}\n {{ return(adapter.dispatch('resolve_model_name', 'dbt')(input_model_name)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "input_model_name", "type": null, "description": ""}], "created_at": 1784670933.673432, "supported_languages": null}, "macro.dbt.default__resolve_model_name": {"name": "default__resolve_model_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.default__resolve_model_name", "macro_sql": "\n\n{%- macro default__resolve_model_name(input_model_name) -%}\n {{ input_model_name | string | replace('\"', '\\\"') }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "input_model_name", "type": null, "description": ""}], "created_at": 1784670933.673751, "supported_languages": null}, "macro.dbt.build_ref_function": {"name": "build_ref_function", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_ref_function", "macro_sql": "{% macro build_ref_function(model) %}\n\n {%- set ref_dict = {} -%}\n {%- for _ref in model.refs -%}\n {% set _ref_args = [_ref.get('package'), _ref['name']] if _ref.get('package') else [_ref['name'],] %}\n {%- set resolved = ref(*_ref_args, v=_ref.get('version')) -%}\n\n {#\n We want to get the string of the returned relation by calling .render() in order to skip sample/empty\n mode rendering logic. However, people override the default ref macro, and often return a string instead\n of a relation (like the ref macro does by default). Thus, to make sure we dont blow things up, we have\n to ensure the resolved relation has a .render() method.\n #}\n {%- if resolved.render is defined and resolved.render is callable -%}\n {%- set resolved = resolved.render() -%}\n {%- endif -%}\n\n {%- if _ref.get('version') -%}\n {% do _ref_args.extend([\"v\" ~ _ref['version']]) %}\n {%- endif -%}\n {%- do ref_dict.update({_ref_args | join('.'): resolve_model_name(resolved)}) -%}\n {%- endfor -%}\n\ndef ref(*args, **kwargs):\n refs = {{ ref_dict | tojson }}\n key = '.'.join(args)\n version = kwargs.get(\"v\") or kwargs.get(\"version\")\n if version:\n key += f\".v{version}\"\n dbt_load_df_function = kwargs.get(\"dbt_load_df_function\")\n return dbt_load_df_function(refs[key])\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}], "created_at": 1784670933.675657, "supported_languages": null}, "macro.dbt.build_source_function": {"name": "build_source_function", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_source_function", "macro_sql": "{% macro build_source_function(model) %}\n\n {%- set source_dict = {} -%}\n {%- for _source in model.sources -%}\n {%- set resolved = source(*_source) -%}\n {%- do source_dict.update({_source | join('.'): resolve_model_name(resolved)}) -%}\n {%- endfor -%}\n\ndef source(*args, dbt_load_df_function):\n sources = {{ source_dict | tojson }}\n key = '.'.join(args)\n return dbt_load_df_function(sources[key])\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}], "created_at": 1784670933.6764681, "supported_languages": null}, "macro.dbt.build_config_dict": {"name": "build_config_dict", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_config_dict", "macro_sql": "{% macro build_config_dict(model) %}\n {%- set config_dict = {} -%}\n {% set config_dbt_used = zip(model.config.config_keys_used, model.config.config_keys_defaults) | list %}\n {%- for key, default in config_dbt_used -%}\n {# weird type testing with enum, would be much easier to write this logic in Python! #}\n {%- if key == \"language\" -%}\n {%- set value = \"python\" -%}\n {%- endif -%}\n {%- set value = model.config.get(key, default) -%}\n {%- do config_dict.update({key: value}) -%}\n {%- endfor -%}\n {# Handle dbt.config.meta_get() calls - use separate dict to avoid overwriting native configs #}\n {%- set meta_dict = {} -%}\n {%- if model.config.meta_keys_used -%}\n {% set meta_dbt_used = zip(model.config.meta_keys_used, model.config.meta_keys_defaults) | list %}\n {%- for key, default in meta_dbt_used -%}\n {%- if model.config.meta and key in model.config.meta -%}\n {%- set value = model.config.meta[key] -%}\n {%- else -%}\n {%- set value = default -%}\n {%- endif -%}\n {%- do meta_dict.update({key: value}) -%}\n {%- endfor -%}\n {%- endif -%}\nconfig_dict = {{ config_dict }}\nmeta_dict = {{ meta_dict }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}], "created_at": 1784670933.6788166, "supported_languages": null}, "macro.dbt.py_script_postfix": {"name": "py_script_postfix", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.py_script_postfix", "macro_sql": "{% macro py_script_postfix(model) %}\n# This part is user provided model code\n# you will need to copy the next section to run the code\n# COMMAND ----------\n# this part is dbt logic for get ref work, do not modify\n\n{{ build_ref_function(model ) }}\n{{ build_source_function(model ) }}\n{{ build_config_dict(model) }}\n\nclass config:\n def __init__(self, *args, **kwargs):\n pass\n\n @staticmethod\n def get(key, default=None):\n return config_dict.get(key, default)\n\n @staticmethod\n def meta_get(key, default=None):\n return meta_dict.get(key, default)\n\nclass this:\n \"\"\"dbt.this() or dbt.this.identifier\"\"\"\n database = \"{{ this.database }}\"\n schema = \"{{ this.schema }}\"\n identifier = \"{{ this.identifier }}\"\n {% set this_relation_name = resolve_model_name(this) %}\n def __repr__(self):\n return '{{ this_relation_name }}'\n\n\nclass dbtObj:\n def __init__(self, load_df_function) -> None:\n self.source = lambda *args: source(*args, dbt_load_df_function=load_df_function)\n self.ref = lambda *args, **kwargs: ref(*args, **kwargs, dbt_load_df_function=load_df_function)\n self.config = config\n self.this = this()\n self.is_incremental = {{ is_incremental() }}\n\n# COMMAND ----------\n{{py_script_comment()}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.build_ref_function", "macro.dbt.build_source_function", "macro.dbt.build_config_dict", "macro.dbt.resolve_model_name", "macro.dbt.is_incremental", "macro.dbt.py_script_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}], "created_at": 1784670933.679764, "supported_languages": null}, "macro.dbt.py_script_comment": {"name": "py_script_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.py_script_comment", "macro_sql": "{%macro py_script_comment()%}\n{%endmacro%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.6799285, "supported_languages": null}, "macro.dbt.default__test_relationships": {"name": "default__test_relationships", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/relationships.sql", "original_file_path": "macros/generic_test_sql/relationships.sql", "unique_id": "macro.dbt.default__test_relationships", "macro_sql": "{% macro default__test_relationships(model, column_name, to, field) %}\n\nwith child as (\n select {{ column_name }} as from_field\n from {{ model }}\n where {{ column_name }} is not null\n),\n\nparent as (\n select {{ field }} as to_field\n from {{ to }}\n)\n\nselect\n from_field\n\nfrom child\nleft join parent\n on child.from_field = parent.to_field\n\nwhere parent.to_field is null\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "to", "type": null, "description": ""}, {"name": "field", "type": null, "description": ""}], "created_at": 1784670933.6805253, "supported_languages": null}, "macro.dbt.default__test_not_null": {"name": "default__test_not_null", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/not_null.sql", "original_file_path": "macros/generic_test_sql/not_null.sql", "unique_id": "macro.dbt.default__test_not_null", "macro_sql": "{% macro default__test_not_null(model, column_name) %}\n\n{% set column_list = '*' if should_store_failures() else column_name %}\n\nselect {{ column_list }}\nfrom {{ model }}\nwhere {{ column_name }} is null\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}], "created_at": 1784670933.6811187, "supported_languages": null}, "macro.dbt.default__test_accepted_values": {"name": "default__test_accepted_values", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/accepted_values.sql", "original_file_path": "macros/generic_test_sql/accepted_values.sql", "unique_id": "macro.dbt.default__test_accepted_values", "macro_sql": "{% macro default__test_accepted_values(model, column_name, values, quote=True) %}\n\nwith all_values as (\n\n select\n {{ column_name }} as value_field,\n count(*) as n_records\n\n from {{ model }}\n group by {{ column_name }}\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n {% for value in values -%}\n {% if quote -%}\n '{{ value }}'\n {%- else -%}\n {{ value }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {%- endfor %}\n)\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "values", "type": null, "description": ""}, {"name": "quote", "type": null, "description": ""}], "created_at": 1784670933.6821344, "supported_languages": null}, "macro.dbt.default__test_unique": {"name": "default__test_unique", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/unique.sql", "original_file_path": "macros/generic_test_sql/unique.sql", "unique_id": "macro.dbt.default__test_unique", "macro_sql": "{% macro default__test_unique(model, column_name) %}\n\nselect\n {{ column_name }} as unique_field,\n count(*) as n_records\n\nfrom {{ model }}\nwhere {{ column_name }} is not null\ngroup by {{ column_name }}\nhaving count(*) > 1\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}], "created_at": 1784670933.682608, "supported_languages": null}, "macro.dbt.test_unique": {"name": "test_unique", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_unique", "macro_sql": "{% test unique(model, column_name) %}\n {% set macro = adapter.dispatch('test_unique', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_unique"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.6834528, "supported_languages": null}, "macro.dbt.test_not_null": {"name": "test_not_null", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_not_null", "macro_sql": "{% test not_null(model, column_name) %}\n {% set macro = adapter.dispatch('test_not_null', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.6839406, "supported_languages": null}, "macro.dbt.test_accepted_values": {"name": "test_accepted_values", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_accepted_values", "macro_sql": "{% test accepted_values(model, column_name, values, quote=True) %}\n {% set macro = adapter.dispatch('test_accepted_values', 'dbt') %}\n {{ macro(model, column_name, values, quote) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.6845548, "supported_languages": null}, "macro.dbt.test_relationships": {"name": "test_relationships", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_relationships", "macro_sql": "{% test relationships(model, column_name, to, field) %}\n {% set macro = adapter.dispatch('test_relationships', 'dbt') %}\n {{ macro(model, column_name, to, field) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_relationships"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.6851401, "supported_languages": null}, "macro.stripe.select_metadata_columns": {"name": "select_metadata_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/select_metadata_columns.sql", "original_file_path": "macros/select_metadata_columns.sql", "unique_id": "macro.stripe.select_metadata_columns", "macro_sql": "{% macro select_metadata_columns(relation_alias, var_name, prefix=None) -%}\n\n{{ adapter.dispatch('select_metadata_columns', 'stripe')(relation_alias, var_name, prefix) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.stripe.default__select_metadata_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation_alias", "type": null, "description": ""}, {"name": "var_name", "type": null, "description": ""}, {"name": "prefix", "type": null, "description": ""}], "created_at": 1784670933.6858346, "supported_languages": null}, "macro.stripe.default__select_metadata_columns": {"name": "default__select_metadata_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/select_metadata_columns.sql", "original_file_path": "macros/select_metadata_columns.sql", "unique_id": "macro.stripe.default__select_metadata_columns", "macro_sql": "{% macro default__select_metadata_columns(relation_alias, var_name, prefix=None) %}\n {%- set properties = var(var_name, []) -%}\n {%- set prefix = prefix if prefix is not none else relation_alias -%}\n\n {%- for property in properties -%}\n {%- if property is mapping -%}\n {%- set col = property.alias if property.alias else property.name -%}\n {%- else -%}\n {%- set col = property -%}\n {%- endif -%}\n\n{{ relation_alias }}.{{ adapter.quote(col) }} as {{ prefix }}_{{ col }},\n {%- endfor -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation_alias", "type": null, "description": ""}, {"name": "var_name", "type": null, "description": ""}, {"name": "prefix", "type": null, "description": ""}], "created_at": 1784670933.6870205, "supported_languages": null}, "macro.stripe.date_timezone": {"name": "date_timezone", "resource_type": "macro", "package_name": "stripe", "path": "macros/date_timezone.sql", "original_file_path": "macros/date_timezone.sql", "unique_id": "macro.stripe.date_timezone", "macro_sql": "{% macro date_timezone(column) -%}\n\n{{ adapter.dispatch('date_timezone', 'stripe')(column) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.stripe.postgres__date_timezone"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "column", "type": null, "description": ""}], "created_at": 1784670933.688128, "supported_languages": null}, "macro.stripe.bigquery__date_timezone": {"name": "bigquery__date_timezone", "resource_type": "macro", "package_name": "stripe", "path": "macros/date_timezone.sql", "original_file_path": "macros/date_timezone.sql", "unique_id": "macro.stripe.bigquery__date_timezone", "macro_sql": "{% macro bigquery__date_timezone(column) -%}\n\ndate(\n {{ column }}\n {% if var('stripe_timezone', none) %} , \"{{ var('stripe_timezone') }}\" {% endif %}\n )\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "column", "type": null, "description": ""}], "created_at": 1784670933.6886003, "supported_languages": null}, "macro.stripe.postgres__date_timezone": {"name": "postgres__date_timezone", "resource_type": "macro", "package_name": "stripe", "path": "macros/date_timezone.sql", "original_file_path": "macros/date_timezone.sql", "unique_id": "macro.stripe.postgres__date_timezone", "macro_sql": "{% macro postgres__date_timezone(column) -%}\n\n{% set converted_date %}\n\n{% if var('stripe_timezone', none) %}\n {{ column }} at time zone '{{ var('stripe_timezone') }}'\n{% else %}\n {{ column }}\n{% endif %}\n\n{% endset %}\n\n{{ dbt.date_trunc('day',converted_date) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "column", "type": null, "description": ""}], "created_at": 1784670933.689349, "supported_languages": null}, "macro.stripe.redshift__date_timezone": {"name": "redshift__date_timezone", "resource_type": "macro", "package_name": "stripe", "path": "macros/date_timezone.sql", "original_file_path": "macros/date_timezone.sql", "unique_id": "macro.stripe.redshift__date_timezone", "macro_sql": "{% macro redshift__date_timezone(column) -%}\n\n{% set converted_date %}\n\n{% if var('stripe_timezone', none) %}\n convert_timezone('{{ var(\"stripe_timezone\") }}', {{ column }})\n{% else %}\n {{ column }}\n{% endif %}\n\n{% endset %}\n\n{{ dbt.date_trunc('day',converted_date) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "column", "type": null, "description": ""}], "created_at": 1784670933.6902, "supported_languages": null}, "macro.stripe.default__date_timezone": {"name": "default__date_timezone", "resource_type": "macro", "package_name": "stripe", "path": "macros/date_timezone.sql", "original_file_path": "macros/date_timezone.sql", "unique_id": "macro.stripe.default__date_timezone", "macro_sql": "{% macro default__date_timezone(column) -%}\n\n{% set converted_date %}\n\n{% if var('stripe_timezone', none) %}\n convert_timezone('{{ var(\"stripe_timezone\") }}', {{ column }})\n{% else %}\n {{ column }}\n{% endif %}\n\n{% endset %}\n\n{{ dbt.date_trunc('day',converted_date) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "column", "type": null, "description": ""}], "created_at": 1784670933.690901, "supported_languages": null}, "macro.stripe.spark__date_timezone": {"name": "spark__date_timezone", "resource_type": "macro", "package_name": "stripe", "path": "macros/date_timezone.sql", "original_file_path": "macros/date_timezone.sql", "unique_id": "macro.stripe.spark__date_timezone", "macro_sql": "{% macro spark__date_timezone(column) -%}\n\n{% set converted_date %}\n\n{% if var('stripe_timezone', none) %}\n from_utc_timestamp({{ column }}, '{{ var(\"stripe_timezone\") }}')\n{% else %}\n {{ column }}\n{% endif %}\n\n{% endset %}\n\n{{ dbt.date_trunc('day',converted_date) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "column", "type": null, "description": ""}], "created_at": 1784670933.6916177, "supported_languages": null}, "macro.stripe.get_customer_columns": {"name": "get_customer_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_customer_columns.sql", "original_file_path": "macros/staging/get_customer_columns.sql", "unique_id": "macro.stripe.get_customer_columns", "macro_sql": "{% macro get_customer_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"account_balance\", \"datatype\": dbt.type_int()},\n {\"name\": \"address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_line_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_line_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_postal_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"balance\", \"datatype\": dbt.type_int()},\n {\"name\": \"bank_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"default_card_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"delinquent\", \"datatype\": \"boolean\"},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"email\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_prefix\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_settings_default_payment_method\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_settings_footer\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_line_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_line_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_postal_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_carrier\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_tracking_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_exempt\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_info_tax_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_info_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_info_verification_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_info_verification_verified_name\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.6990054, "supported_languages": null}, "macro.stripe.get_credit_note_line_item_columns": {"name": "get_credit_note_line_item_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_credit_note_line_item_columns.sql", "original_file_path": "macros/staging/get_credit_note_line_item_columns.sql", "unique_id": "macro.stripe.get_credit_note_line_item_columns", "macro_sql": "{% macro get_credit_note_line_item_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"credit_note_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"discount_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"quantity\", \"datatype\": dbt.type_int()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"unit_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"unit_amount_decimal\", \"datatype\": dbt.type_int()},\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.701308, "supported_languages": null}, "macro.stripe.get_fee_columns": {"name": "get_fee_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_fee_columns.sql", "original_file_path": "macros/staging/get_fee_columns.sql", "unique_id": "macro.stripe.get_fee_columns", "macro_sql": "{% macro get_fee_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"application\", \"datatype\": dbt.type_string()},\n {\"name\": \"balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"connected_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"index\", \"datatype\": dbt.type_int()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.703247, "supported_languages": null}, "macro.stripe.get_payment_method_columns": {"name": "get_payment_method_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_payment_method_columns.sql", "original_file_path": "macros/staging/get_payment_method_columns.sql", "unique_id": "macro.stripe.get_payment_method_columns", "macro_sql": "{% macro get_payment_method_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"billing_detail_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_line_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_line_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_postal_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_email\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7063284, "supported_languages": null}, "macro.stripe.get_card_columns": {"name": "get_card_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_card_columns.sql", "original_file_path": "macros/staging/get_card_columns.sql", "unique_id": "macro.stripe.get_card_columns", "macro_sql": "{% macro get_card_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_line_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_line_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_zip\", \"datatype\": dbt.type_string()},\n {\"name\": \"brand\", \"datatype\": dbt.type_string()},\n {\"name\": \"country\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"funding\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string(), \"alias\": \"card_metadata\"},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"recipient\", \"datatype\": dbt.type_string()},\n {\"name\": \"wallet_type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('card_pass_through_columns')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7100167, "supported_languages": null}, "macro.stripe.get_price_plan_columns": {"name": "get_price_plan_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_price_plan_columns.sql", "original_file_path": "macros/staging/get_price_plan_columns.sql", "unique_id": "macro.stripe.get_price_plan_columns", "macro_sql": "{% macro get_price_plan_columns() %}\n\n{% if var('stripe__using_price', stripe.does_table_exist('price')=='exists') %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"active\", \"datatype\": \"boolean\",\"alias\": \"is_active\"},\n {\"name\": \"billing_scheme\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"nickname\", \"datatype\": dbt.type_string()},\n {\"name\": \"product_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"recurring_aggregate_usage\", \"datatype\": dbt.type_string()},\n {\"name\": \"recurring_interval\", \"datatype\": dbt.type_string()},\n {\"name\": \"recurring_interval_count\", \"datatype\": dbt.type_int()},\n {\"name\": \"recurring_usage_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"unit_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"unit_amount_decimal\", \"datatype\": dbt.type_string()}\n] %}\n\n{% else %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"active\", \"datatype\": \"boolean\",\"alias\": \"is_active\"},\n {\"name\": \"aggregate_usage\", \"datatype\": dbt.type_string(),\"alias\": \"recurring_aggregate_usage\"},\n {\"name\": \"amount\", \"datatype\": dbt.type_int(),\"alias\": \"unit_amount\"},\n {\"name\": \"billing_scheme\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"interval_count\", \"datatype\": dbt.type_int(),\"alias\": \"recurring_interval_count\"},\n {\"name\": \"is_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"nickname\", \"datatype\": dbt.type_string()},\n {\"name\": \"product_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"trial_period_days\", \"datatype\": dbt.type_int()},\n {\"name\": \"usage_type\", \"datatype\": dbt.type_string(),\"alias\": \"recurring_usage_type\"}\n] %}\n\n{% if target.type in ('bigquery', 'spark', 'databricks') %}\n {{ columns.append( {\"name\": 'interval', \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"recurring_interval\" } ) }}\n\n{% else %}\n {{ columns.append( {\"name\": \"interval\", \"datatype\": dbt.type_string(), \"alias\": \"recurring_interval\"} ) }}\n\n{% endif %}\n\n\n{% endif %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.stripe.does_table_exist", "macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7181318, "supported_languages": null}, "macro.stripe.get_product_columns": {"name": "get_product_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_product_columns.sql", "original_file_path": "macros/staging/get_product_columns.sql", "unique_id": "macro.stripe.get_product_columns", "macro_sql": "{% macro get_product_columns() %}\n\n{% set columns = [\n {\"name\": \"fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"active\", \"datatype\": \"boolean\",\"alias\": \"is_active\"},\n {\"name\": \"attributes\", \"datatype\": dbt.type_string()},\n {\"name\": \"caption\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"deactivate_on\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"images\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shippable\", \"datatype\": \"boolean\"},\n {\"name\": \"statement_descriptor\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"unit_label\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"url\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7216146, "supported_languages": null}, "macro.stripe.get_charge_columns": {"name": "get_charge_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_charge_columns.sql", "original_file_path": "macros/staging/get_charge_columns.sql", "unique_id": "macro.stripe.get_charge_columns", "macro_sql": "{% macro get_charge_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"amount_refunded\", \"datatype\": dbt.type_int()},\n {\"name\": \"application\", \"datatype\": dbt.type_string()},\n {\"name\": \"application_fee_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"bank_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"calculated_statement_descriptor\", \"datatype\": dbt.type_string()},\n {\"name\": \"captured\", \"datatype\": \"boolean\"},\n {\"name\": \"card_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"connected_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_message\", \"datatype\": dbt.type_string()},\n {\"name\": \"fraud_details_stripe_report\", \"datatype\": dbt.type_string()},\n {\"name\": \"fraud_details_user_report\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"on_behalf_of\", \"datatype\": dbt.type_string()},\n {\"name\": \"outcome_network_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"outcome_reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"outcome_risk_level\", \"datatype\": dbt.type_string()},\n {\"name\": \"outcome_risk_score\", \"datatype\": dbt.type_int()},\n {\"name\": \"outcome_seller_message\", \"datatype\": dbt.type_string()},\n {\"name\": \"outcome_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"paid\", \"datatype\": \"boolean\"},\n {\"name\": \"payment_intent_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_method_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"receipt_email\", \"datatype\": dbt.type_string()},\n {\"name\": \"receipt_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"receipt_url\", \"datatype\": dbt.type_string()},\n {\"name\": \"refunded\", \"datatype\": \"boolean\"},\n {\"name\": \"shipping_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_line_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_line_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_postal_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_carrier\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_tracking_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_transfer\", \"datatype\": dbt.type_string()},\n {\"name\": \"statement_descriptor\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"transfer_data_destination\", \"datatype\": dbt.type_string()},\n {\"name\": \"transfer_group\", \"datatype\": dbt.type_string()},\n {\"name\": \"transfer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_line1\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_line2\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_postal_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_email\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_detail_phone\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.732921, "supported_languages": null}, "macro.stripe.get_subscription_discount_columns": {"name": "get_subscription_discount_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_subscription_discount_columns.sql", "original_file_path": "macros/staging/get_subscription_discount_columns.sql", "unique_id": "macro.stripe.get_subscription_discount_columns", "macro_sql": "{% macro get_subscription_discount_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"checkout_session\", \"datatype\": dbt.type_string()},\n {\"name\": \"coupon_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_item_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"subscription_id\", \"datatype\": dbt.type_string()}\n] %}\n\n{% if target.type == 'snowflake' and not var('fivetran_using_source_casing', false) %}\n {{ columns.append({\"name\": \"END\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"end_at\"}) }},\n {{ columns.append({\"name\": \"START\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"start_at\"}) }}\n{% else %}\n {{ columns.append({\"name\": \"end\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"end_at\"}) }},\n {{ columns.append({\"name\": \"start\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"start_at\"}) }}\n{% endif %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7365873, "supported_languages": null}, "macro.stripe.convert_values": {"name": "convert_values", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/convert_values.sql", "original_file_path": "macros/staging/convert_values.sql", "unique_id": "macro.stripe.convert_values", "macro_sql": "{% macro convert_values(field_name, divide_by=100.0, divide_var=var('stripe__convert_values',false), alias=None) %}\n\n{{ adapter.dispatch('convert_values', 'stripe')(field_name, divide_by, divide_var, alias ) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.stripe.default__convert_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_name", "type": null, "description": ""}, {"name": "divide_by", "type": null, "description": ""}, {"name": "divide_var", "type": null, "description": ""}, {"name": "alias", "type": null, "description": ""}], "created_at": 1784670933.7374861, "supported_languages": null}, "macro.stripe.default__convert_values": {"name": "default__convert_values", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/convert_values.sql", "original_file_path": "macros/staging/convert_values.sql", "unique_id": "macro.stripe.default__convert_values", "macro_sql": "{% macro default__convert_values(field_name, divide_by=100.0, divide_var=var('stripe__convert_values',false), alias=None) %}\n\n {% if divide_var %}\n {{ field_name }} / {{ divide_by }} as {{ alias if alias else field_name }}\n {% else %}\n {{ field_name }} as {{ alias if alias else field_name }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_name", "type": null, "description": ""}, {"name": "divide_by", "type": null, "description": ""}, {"name": "divide_var", "type": null, "description": ""}, {"name": "alias", "type": null, "description": ""}], "created_at": 1784670933.7383242, "supported_languages": null}, "macro.stripe.get_payment_intent_columns": {"name": "get_payment_intent_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_payment_intent_columns.sql", "original_file_path": "macros/staging/get_payment_intent_columns.sql", "unique_id": "macro.stripe.get_payment_intent_columns", "macro_sql": "{% macro get_payment_intent_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"amount_capturable\", \"datatype\": dbt.type_int()},\n {\"name\": \"amount_received\", \"datatype\": dbt.type_int()},\n {\"name\": \"application\", \"datatype\": dbt.type_string()},\n {\"name\": \"application_fee_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"canceled_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"cancellation_reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"capture_method\", \"datatype\": dbt.type_string()},\n {\"name\": \"confirmation_method\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_charge_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_decline_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_doc_url\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_message\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_param\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_source_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_payment_error_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"on_behalf_of\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_method_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"receipt_email\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"statement_descriptor\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"transfer_data_destination\", \"datatype\": dbt.type_string()},\n {\"name\": \"transfer_group\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7444577, "supported_languages": null}, "macro.stripe.does_table_exist": {"name": "does_table_exist", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/does_table_exist.sql", "original_file_path": "macros/staging/does_table_exist.sql", "unique_id": "macro.stripe.does_table_exist", "macro_sql": "{%- macro does_table_exist(table_name) -%}\n{{ adapter.dispatch('does_table_exist', 'stripe')(table_name) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.stripe.default__does_table_exist"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "table_name", "type": null, "description": ""}], "created_at": 1784670933.7450337, "supported_languages": null}, "macro.stripe.default__does_table_exist": {"name": "default__does_table_exist", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/does_table_exist.sql", "original_file_path": "macros/staging/does_table_exist.sql", "unique_id": "macro.stripe.default__does_table_exist", "macro_sql": "\n\n{%- macro default__does_table_exist(table_name) -%}\n {%- if execute -%}\n {%- set source_relation = adapter.get_relation(\n database=var('stripe_database', target.database),\n schema=var('stripe_schema', 'stripe'),\n identifier=var('stripe_' ~ table_name ~ '_identifier', table_name)\n ) -%}\n {{ return('exists' if source_relation is not none) }}\n {%- endif -%}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "table_name", "type": null, "description": ""}], "created_at": 1784670933.7459095, "supported_languages": null}, "macro.stripe.get_dispute_columns": {"name": "get_dispute_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_dispute_columns.sql", "original_file_path": "macros/staging/get_dispute_columns.sql", "unique_id": "macro.stripe.get_dispute_columns", "macro_sql": "{% macro get_dispute_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"balance_transaction\", \"datatype\": dbt.type_string()},\n {\"name\": \"charge_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"connected_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_access_activity_log\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_billing_address\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_cancellation_policy\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_cancellation_policy_disclosure\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_cancellation_rebuttal\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_customer_communication\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_customer_email_address\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_customer_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_customer_purchase_ip\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_customer_signature\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_details_due_by\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"evidence_details_has_evidence\", \"datatype\": \"boolean\"},\n {\"name\": \"evidence_details_past_due\", \"datatype\": \"boolean\"},\n {\"name\": \"evidence_details_submission_count\", \"datatype\": dbt.type_int()},\n {\"name\": \"evidence_duplicate_charge_documentation\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_duplicate_charge_explanation\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_duplicate_charge_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_product_description\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_receipt\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_refund_policy\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_refund_policy_disclosure\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_refund_refusal_explanation\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_service_date\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_service_documentation\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_shipping_address\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_shipping_carrier\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_shipping_date\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_shipping_documentation\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_shipping_tracking_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_uncategorized_file\", \"datatype\": dbt.type_string()},\n {\"name\": \"evidence_uncategorized_text\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_charge_refundable\", \"datatype\": \"boolean\"},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7538316, "supported_languages": null}, "macro.stripe.get_credit_note_columns": {"name": "get_credit_note_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_credit_note_columns.sql", "original_file_path": "macros/staging/get_credit_note_columns.sql", "unique_id": "macro.stripe.get_credit_note_columns", "macro_sql": "{% macro get_credit_note_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"discount_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"subtotal\", \"datatype\": dbt.type_int()},\n {\"name\": \"total\", \"datatype\": dbt.type_int()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"memo\", \"datatype\": dbt.type_string()},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"number\", \"datatype\": dbt.type_string()},\n {\"name\": \"pdf\", \"datatype\": dbt.type_string()},\n {\"name\": \"reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"voided_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"customer_balance_transaction\", \"datatype\": dbt.type_int()},\n {\"name\": \"invoice_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"refund_id\", \"datatype\": dbt.type_string()},\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7576907, "supported_languages": null}, "macro.stripe.get_invoice_line_item_columns": {"name": "get_invoice_line_item_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_invoice_line_item_columns.sql", "original_file_path": "macros/staging/get_invoice_line_item_columns.sql", "unique_id": "macro.stripe.get_invoice_line_item_columns", "macro_sql": "{% macro get_invoice_line_item_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"discountable\", \"datatype\": \"boolean\"},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_item_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"period_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"period_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"plan_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"price_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"proration\", \"datatype\": \"boolean\"},\n {\"name\": \"quantity\", \"datatype\": dbt.type_int()},\n {\"name\": \"subscription_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"subscription_item_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"unique_id\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.761452, "supported_languages": null}, "macro.stripe.get_balance_transaction_columns": {"name": "get_balance_transaction_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_balance_transaction_columns.sql", "original_file_path": "macros/staging/get_balance_transaction_columns.sql", "unique_id": "macro.stripe.get_balance_transaction_columns", "macro_sql": "{% macro get_balance_transaction_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"available_on\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"connected_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"exchange_rate\", \"datatype\": dbt.type_float()},\n {\"name\": \"fee\", \"datatype\": dbt.type_int()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"net\", \"datatype\": dbt.type_int()},\n {\"name\": \"payout_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"reporting_category\", \"datatype\": dbt.type_string()},\n {\"name\": \"source\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7645822, "supported_languages": null}, "macro.stripe.get_discount_columns": {"name": "get_discount_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_discount_columns.sql", "original_file_path": "macros/staging/get_discount_columns.sql", "unique_id": "macro.stripe.get_discount_columns", "macro_sql": "{% macro get_discount_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_string() },\n {\"name\": \"type\", \"datatype\": dbt.type_string() },\n {\"name\": \"type_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp() },\n {\"name\": \"amount\", \"datatype\": dbt.type_int() },\n {\"name\": \"checkout_session_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"checkout_session_line_item_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"coupon_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"credit_note_line_item_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"invoice_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"invoice_item_id\", \"datatype\": dbt.type_string() },\n {\"name\": \"promotion_code\", \"datatype\": dbt.type_string() },\n {\"name\": \"subscription_id\", \"datatype\": dbt.type_string() }\n] %}\n\n{% if target.type == 'snowflake' and not var('fivetran_using_source_casing', false) %}\n {{ columns.append({\"name\": \"END\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"end_at\"}) }},\n {{ columns.append({\"name\": \"START\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"start_at\"}) }}\n{% else %}\n {{ columns.append({\"name\": \"end\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"end_at\"}) }},\n {{ columns.append({\"name\": \"start\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"start_at\"}) }}\n{% endif %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string", "macro.dbt.type_timestamp", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7691963, "supported_languages": null}, "macro.stripe.livemode_predicate": {"name": "livemode_predicate", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/livemode_predicate.sql", "original_file_path": "macros/staging/livemode_predicate.sql", "unique_id": "macro.stripe.livemode_predicate", "macro_sql": "{% macro livemode_predicate() %}\n\n where cast(livemode as {{ dbt.type_boolean() }} ) = {{ var('stripe__using_livemode', true) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_boolean"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7696698, "supported_languages": null}, "macro.stripe.get_transfer_columns": {"name": "get_transfer_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_transfer_columns.sql", "original_file_path": "macros/staging/get_transfer_columns.sql", "unique_id": "macro.stripe.get_transfer_columns", "macro_sql": "{% macro get_transfer_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"amount_reversed\", \"datatype\": dbt.type_int()},\n {\"name\": \"balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination_payment\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination_payment_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"reversed\", \"datatype\": \"boolean\"},\n {\"name\": \"source_transaction\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"transfer_group\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7731261, "supported_languages": null}, "macro.stripe.get_payment_method_card_columns": {"name": "get_payment_method_card_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_payment_method_card_columns.sql", "original_file_path": "macros/staging/get_payment_method_card_columns.sql", "unique_id": "macro.stripe.get_payment_method_card_columns", "macro_sql": "{% macro get_payment_method_card_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"brand\", \"datatype\": dbt.type_string()},\n {\"name\": \"charge_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"funding\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_method_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"wallet_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"three_d_secure_authentication_flow\", \"datatype\": dbt.type_string()},\n {\"name\": \"three_d_secure_result\", \"datatype\": dbt.type_string()},\n {\"name\": \"three_d_secure_result_reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"three_d_secure_version\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.775418, "supported_languages": null}, "macro.stripe.get_coupon_columns": {"name": "get_coupon_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_coupon_columns.sql", "original_file_path": "macros/staging/get_coupon_columns.sql", "unique_id": "macro.stripe.get_coupon_columns", "macro_sql": "{% macro get_coupon_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount_off\", \"datatype\": dbt.type_int()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"duration\", \"datatype\": dbt.type_string()},\n {\"name\": \"duration_in_months\", \"datatype\": dbt.type_int()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"max_redemptions\", \"datatype\": dbt.type_int()},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"percent_off\", \"datatype\": dbt.type_float()},\n {\"name\": \"redeem_by\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"times_redeemed\", \"datatype\": dbt.type_int()},\n {\"name\": \"valid\", \"datatype\": \"boolean\"}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7783642, "supported_languages": null}, "macro.stripe.get_subscription_columns": {"name": "get_subscription_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_subscription_columns.sql", "original_file_path": "macros/staging/get_subscription_columns.sql", "unique_id": "macro.stripe.get_subscription_columns", "macro_sql": "{% macro get_subscription_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"_fivetran_active\", \"datatype\": \"boolean\"},\n {\"name\": \"application_fee_percent\", \"datatype\": dbt.type_float()},\n {\"name\": \"billing\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_cycle_anchor\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"billing_threshold_amount_gte\", \"datatype\": dbt.type_int()},\n {\"name\": \"billing_threshold_reset_billing_cycle_anchor\", \"datatype\": \"boolean\"},\n {\"name\": \"cancel_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"cancel_at_period_end\", \"datatype\": \"boolean\"},\n {\"name\": \"canceled_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"current_period_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"current_period_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"days_until_due\", \"datatype\": dbt.type_int()},\n {\"name\": \"default_source_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"ended_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"latest_invoice_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"default_payment_method_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"pending_setup_intent_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"quantity\", \"datatype\": dbt.type_int()},\n {\"name\": \"start_date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_percent\", \"datatype\": dbt.type_float()},\n {\"name\": \"trial_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"trial_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"pause_collection_behavior\", \"datatype\": dbt.type_string()},\n {\"name\": \"pause_collection_resumes_at\", \"datatype\": dbt.type_timestamp()},\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_float", "macro.dbt.type_string", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7840059, "supported_languages": null}, "macro.stripe.get_subscription_item_columns": {"name": "get_subscription_item_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_subscription_item_columns.sql", "original_file_path": "macros/staging/get_subscription_item_columns.sql", "unique_id": "macro.stripe.get_subscription_item_columns", "macro_sql": "{% macro get_subscription_item_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"current_period_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"current_period_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"plan_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"quantity\", \"datatype\": dbt.type_int()},\n {\"name\": \"subscription_id\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.78599, "supported_languages": null}, "macro.stripe.get_payout_balance_transaction_columns": {"name": "get_payout_balance_transaction_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_payout_balance_transaction_columns.sql", "original_file_path": "macros/staging/get_payout_balance_transaction_columns.sql", "unique_id": "macro.stripe.get_payout_balance_transaction_columns", "macro_sql": "{% macro get_payout_balance_transaction_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"payout_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"balance_transaction_id\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7869394, "supported_languages": null}, "macro.stripe.get_account_columns": {"name": "get_account_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_account_columns.sql", "original_file_path": "macros/staging/get_account_columns.sql", "unique_id": "macro.stripe.get_account_columns", "macro_sql": "{% macro get_account_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"business_profile_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"business_profile_mcc\", \"datatype\": dbt.type_string()},\n {\"name\": \"business_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"charges_enabled\", \"datatype\": \"boolean\"},\n {\"name\": \"company_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_address_line_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_address_line_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_address_postal_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_address_state\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"company_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"country\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"default_currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"details_submitted\", \"datatype\": \"boolean\"},\n {\"name\": \"email\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"payouts_enabled\", \"datatype\": \"boolean\"},\n {\"name\": \"type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7912638, "supported_languages": null}, "macro.stripe.get_refund_columns": {"name": "get_refund_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_refund_columns.sql", "original_file_path": "macros/staging/get_refund_columns.sql", "unique_id": "macro.stripe.get_refund_columns", "macro_sql": "{% macro get_refund_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"charge_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_intent_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"receipt_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.7942855, "supported_languages": null}, "macro.stripe.get_invoice_columns": {"name": "get_invoice_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_invoice_columns.sql", "original_file_path": "macros/staging/get_invoice_columns.sql", "unique_id": "macro.stripe.get_invoice_columns", "macro_sql": "{% macro get_invoice_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount_due\", \"datatype\": dbt.type_int()},\n {\"name\": \"amount_paid\", \"datatype\": dbt.type_int()},\n {\"name\": \"amount_remaining\", \"datatype\": dbt.type_int()},\n {\"name\": \"application_fee_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"post_payment_credit_notes_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"pre_payment_credit_notes_amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"attempt_count\", \"datatype\": dbt.type_int()},\n {\"name\": \"attempted\", \"datatype\": \"boolean\"},\n {\"name\": \"auto_advance\", \"datatype\": \"boolean\"},\n {\"name\": \"billing\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"charge_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"default_source_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"due_date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"ending_balance\", \"datatype\": dbt.type_int()},\n {\"name\": \"finalized_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"footer\", \"datatype\": dbt.type_string()},\n {\"name\": \"hosted_invoice_url\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"invoice_pdf\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"next_payment_attempt\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"number\", \"datatype\": dbt.type_string()},\n {\"name\": \"paid\", \"datatype\": \"boolean\"},\n {\"name\": \"default_payment_method_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_intent_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"subscription_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"period_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"period_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"receipt_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"starting_balance\", \"datatype\": dbt.type_int()},\n {\"name\": \"statement_descriptor\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"status_transitions_finalized_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status_transitions_marked_uncollectible_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status_transitions_paid_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status_transitions_voided_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"subscription_proration_date\", \"datatype\": dbt.type_int()},\n {\"name\": \"subtotal\", \"datatype\": dbt.type_int()},\n {\"name\": \"tax\", \"datatype\": dbt.type_int()},\n {\"name\": \"tax_percent\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"threshold_reason_amount_gte\", \"datatype\": dbt.type_int()},\n {\"name\": \"total\", \"datatype\": dbt.type_int()},\n {\"name\": \"webhooks_delivered_at\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string", "macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.8034697, "supported_languages": null}, "macro.stripe.get_payout_columns": {"name": "get_payout_columns", "resource_type": "macro", "package_name": "stripe", "path": "macros/staging/get_payout_columns.sql", "original_file_path": "macros/staging/get_payout_columns.sql", "unique_id": "macro.stripe.get_payout_columns", "macro_sql": "{% macro get_payout_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"amount\", \"datatype\": dbt.type_int()},\n {\"name\": \"arrival_date\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"automatic\", \"datatype\": \"boolean\"},\n {\"name\": \"balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"connected_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"description\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination_bank_account_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"destination_card_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_balance_transaction_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"failure_message\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"livemode\", \"datatype\": \"boolean\"},\n {\"name\": \"metadata\", \"datatype\": dbt.type_string()},\n {\"name\": \"method\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"statement_descriptor\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_int", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.8076298, "supported_languages": null}, "macro.dbt_utils._is_relation": {"name": "_is_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/_is_relation.sql", "original_file_path": "macros/jinja_helpers/_is_relation.sql", "unique_id": "macro.dbt_utils._is_relation", "macro_sql": "{% macro _is_relation(obj, macro) %}\n {%- if not (obj is mapping and obj.get('metadata', {}).get('type', '').endswith('Relation')) -%}\n {%- do exceptions.raise_compiler_error(\"Macro \" ~ macro ~ \" expected a Relation but received the value: \" ~ obj) -%}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "obj", "type": null, "description": ""}, {"name": "macro", "type": null, "description": ""}], "created_at": 1784670933.8085642, "supported_languages": null}, "macro.dbt_utils.pretty_time": {"name": "pretty_time", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "unique_id": "macro.dbt_utils.pretty_time", "macro_sql": "{% macro pretty_time(format='%H:%M:%S') %}\n {{ return(adapter.dispatch('pretty_time', 'dbt_utils')(format)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "format", "type": null, "description": ""}], "created_at": 1784670933.8091402, "supported_languages": null}, "macro.dbt_utils.default__pretty_time": {"name": "default__pretty_time", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "unique_id": "macro.dbt_utils.default__pretty_time", "macro_sql": "{% macro default__pretty_time(format='%H:%M:%S') %}\n {{ return(modules.datetime.datetime.now().strftime(format)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "format", "type": null, "description": ""}], "created_at": 1784670933.8095303, "supported_languages": null}, "macro.dbt_utils.slugify": {"name": "slugify", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/slugify.sql", "original_file_path": "macros/jinja_helpers/slugify.sql", "unique_id": "macro.dbt_utils.slugify", "macro_sql": "{% macro slugify(string) %}\n\n{% if not string %}\n{{ return('') }}\n{% endif %}\n\n{#- Lower case the string -#}\n{% set string = string | lower %}\n{#- Replace spaces and dashes with underscores -#}\n{% set string = modules.re.sub('[ -]+', '_', string) %}\n{#- Only take letters, numbers, and underscores -#}\n{% set string = modules.re.sub('[^a-z0-9_]+', '', string) %}\n{#- Prepends \"_\" if string begins with a number -#}\n{% set string = modules.re.sub('^[0-9]', '_' + string[0], string) %}\n\n{{ return(string) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}], "created_at": 1784670933.8109682, "supported_languages": null}, "macro.dbt_utils.log_info": {"name": "log_info", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "unique_id": "macro.dbt_utils.log_info", "macro_sql": "{% macro log_info(message) %}\n {{ return(adapter.dispatch('log_info', 'dbt_utils')(message)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__log_info"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "message", "type": null, "description": ""}], "created_at": 1784670933.8114858, "supported_languages": null}, "macro.dbt_utils.default__log_info": {"name": "default__log_info", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "unique_id": "macro.dbt_utils.default__log_info", "macro_sql": "{% macro default__log_info(message) %}\n {{ log(dbt_utils.pretty_log_format(message), info=True) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "message", "type": null, "description": ""}], "created_at": 1784670933.8118272, "supported_languages": null}, "macro.dbt_utils._is_ephemeral": {"name": "_is_ephemeral", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/_is_ephemeral.sql", "original_file_path": "macros/jinja_helpers/_is_ephemeral.sql", "unique_id": "macro.dbt_utils._is_ephemeral", "macro_sql": "{% macro _is_ephemeral(obj, macro) %}\n {%- if obj.is_cte -%}\n {% set ephemeral_prefix = api.Relation.add_ephemeral_prefix('') %}\n {% if obj.name.startswith(ephemeral_prefix) %}\n {% set model_name = obj.name[(ephemeral_prefix|length):] %}\n {% else %}\n {% set model_name = obj.name %}\n {%- endif -%}\n {% set error_message %}\nThe `{{ macro }}` macro cannot be used with ephemeral models, as it relies on the information schema.\n\n`{{ model_name }}` is an ephemeral model. Consider making it a view or table instead.\n {% endset %}\n {%- do exceptions.raise_compiler_error(error_message) -%}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "obj", "type": null, "description": ""}, {"name": "macro", "type": null, "description": ""}], "created_at": 1784670933.8132348, "supported_languages": null}, "macro.dbt_utils.pretty_log_format": {"name": "pretty_log_format", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "unique_id": "macro.dbt_utils.pretty_log_format", "macro_sql": "{% macro pretty_log_format(message) %}\n {{ return(adapter.dispatch('pretty_log_format', 'dbt_utils')(message)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "message", "type": null, "description": ""}], "created_at": 1784670933.8137512, "supported_languages": null}, "macro.dbt_utils.default__pretty_log_format": {"name": "default__pretty_log_format", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "unique_id": "macro.dbt_utils.default__pretty_log_format", "macro_sql": "{% macro default__pretty_log_format(message) %}\n {{ return( dbt_utils.pretty_time() ~ ' + ' ~ message) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "message", "type": null, "description": ""}], "created_at": 1784670933.8141117, "supported_languages": null}, "macro.dbt_utils.group_by": {"name": "group_by", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "unique_id": "macro.dbt_utils.group_by", "macro_sql": "{%- macro group_by(n) -%}\n {{ return(adapter.dispatch('group_by', 'dbt_utils')(n)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__group_by"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "n", "type": null, "description": ""}], "created_at": 1784670933.8146381, "supported_languages": null}, "macro.dbt_utils.default__group_by": {"name": "default__group_by", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "unique_id": "macro.dbt_utils.default__group_by", "macro_sql": "\n\n{%- macro default__group_by(n) -%}\n\n group by {% for i in range(1, n + 1) -%}\n {{ i }}{{ ',' if not loop.last }} \n {%- endfor -%}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "n", "type": null, "description": ""}], "created_at": 1784670933.8151538, "supported_languages": null}, "macro.dbt_utils.get_tables_by_pattern_sql": {"name": "get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.get_tables_by_pattern_sql", "macro_sql": "{% macro get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_tables_by_pattern_sql', 'dbt_utils')\n (schema_pattern, table_pattern, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_pattern", "type": null, "description": ""}, {"name": "table_pattern", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.8166568, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_pattern_sql": {"name": "default__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.default__get_tables_by_pattern_sql", "macro_sql": "{% macro default__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n select distinct\n table_schema as {{ adapter.quote('table_schema') }},\n table_name as {{ adapter.quote('table_name') }},\n {{ dbt_utils.get_table_types_sql() }}\n from {{ database }}.information_schema.tables\n where table_schema ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_pattern", "type": null, "description": ""}, {"name": "table_pattern", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.8175054, "supported_languages": null}, "macro.dbt_utils.redshift__get_tables_by_pattern_sql": {"name": "redshift__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.redshift__get_tables_by_pattern_sql", "macro_sql": "{% macro redshift__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {% set sql %}\n select distinct\n table_schema as {{ adapter.quote('table_schema') }},\n table_name as {{ adapter.quote('table_name') }},\n {{ dbt_utils.get_table_types_sql() }}\n from \"{{ database }}\".\"information_schema\".\"tables\"\n where table_schema ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n union all\n select distinct\n schemaname as {{ adapter.quote('table_schema') }},\n tablename as {{ adapter.quote('table_name') }},\n 'external' as {{ adapter.quote('table_type') }}\n from svv_external_tables\n where redshift_database_name = '{{ database }}'\n and schemaname ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n {% endset %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_pattern", "type": null, "description": ""}, {"name": "table_pattern", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.8188384, "supported_languages": null}, "macro.dbt_utils.bigquery__get_tables_by_pattern_sql": {"name": "bigquery__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.bigquery__get_tables_by_pattern_sql", "macro_sql": "{% macro bigquery__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {% if '%' in schema_pattern %}\n {% set schemata=dbt_utils._bigquery__get_matching_schemata(schema_pattern, database) %}\n {% else %}\n {% set schemata=[schema_pattern] %}\n {% endif %}\n\n {% set sql %}\n {% for schema in schemata %}\n select distinct\n table_schema,\n table_name,\n {{ dbt_utils.get_table_types_sql() }}\n\n from {{ adapter.quote(database) }}.{{ schema }}.INFORMATION_SCHEMA.TABLES\n where lower(table_name) like lower ('{{ table_pattern }}')\n and lower(table_name) not like lower ('{{ exclude }}')\n\n {% if not loop.last %} union all {% endif %}\n\n {% endfor %}\n {% endset %}\n\n {{ return(sql) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._bigquery__get_matching_schemata", "macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_pattern", "type": null, "description": ""}, {"name": "table_pattern", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.820268, "supported_languages": null}, "macro.dbt_utils._bigquery__get_matching_schemata": {"name": "_bigquery__get_matching_schemata", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils._bigquery__get_matching_schemata", "macro_sql": "{% macro _bigquery__get_matching_schemata(schema_pattern, database) %}\n {% if execute %}\n\n {% set sql %}\n select schema_name from {{ adapter.quote(database) }}.INFORMATION_SCHEMA.SCHEMATA\n where lower(schema_name) like lower('{{ schema_pattern }}')\n {% endset %}\n\n {% set results=run_query(sql) %}\n\n {% set schemata=results.columns['schema_name'].values() %}\n\n {{ return(schemata) }}\n\n {% else %}\n\n {{ return([]) }}\n\n {% endif %}\n\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_pattern", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.8212838, "supported_languages": null}, "macro.dbt_utils.get_tables_by_prefix_sql": {"name": "get_tables_by_prefix_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "unique_id": "macro.dbt_utils.get_tables_by_prefix_sql", "macro_sql": "{% macro get_tables_by_prefix_sql(schema, prefix, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_tables_by_prefix_sql', 'dbt_utils')(schema, prefix, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_tables_by_prefix_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema", "type": null, "description": ""}, {"name": "prefix", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.8220167, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_prefix_sql": {"name": "default__get_tables_by_prefix_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "unique_id": "macro.dbt_utils.default__get_tables_by_prefix_sql", "macro_sql": "{% macro default__get_tables_by_prefix_sql(schema, prefix, exclude='', database=target.database) %}\n\n {{ dbt_utils.get_tables_by_pattern_sql(\n schema_pattern = schema,\n table_pattern = prefix ~ '%',\n exclude = exclude,\n database = database\n ) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema", "type": null, "description": ""}, {"name": "prefix", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.8225927, "supported_languages": null}, "macro.dbt_utils.degrees_to_radians": {"name": "degrees_to_radians", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.degrees_to_radians", "macro_sql": "{% macro degrees_to_radians(degrees) -%}\n acos(-1) * {{degrees}} / 180\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "degrees", "type": null, "description": ""}], "created_at": 1784670933.823473, "supported_languages": null}, "macro.dbt_utils.haversine_distance": {"name": "haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.haversine_distance", "macro_sql": "{% macro haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n {{ return(adapter.dispatch('haversine_distance', 'dbt_utils')(lat1,lon1,lat2,lon2,unit)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__haversine_distance"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "lat1", "type": null, "description": ""}, {"name": "lon1", "type": null, "description": ""}, {"name": "lat2", "type": null, "description": ""}, {"name": "lon2", "type": null, "description": ""}, {"name": "unit", "type": null, "description": ""}], "created_at": 1784670933.824021, "supported_languages": null}, "macro.dbt_utils.default__haversine_distance": {"name": "default__haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.default__haversine_distance", "macro_sql": "{% macro default__haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n{%- if unit == 'mi' %}\n {% set conversion_rate = 1 %}\n{% elif unit == 'km' %}\n {% set conversion_rate = 1.60934 %}\n{% else %}\n {{ exceptions.raise_compiler_error(\"unit input must be one of 'mi' or 'km'. Got \" ~ unit) }}\n{% endif %}\n\n 2 * 3961 * asin(sqrt(power((sin(radians(({{ lat2 }} - {{ lat1 }}) / 2))), 2) +\n cos(radians({{lat1}})) * cos(radians({{lat2}})) *\n power((sin(radians(({{ lon2 }} - {{ lon1 }}) / 2))), 2))) * {{ conversion_rate }}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "lat1", "type": null, "description": ""}, {"name": "lon1", "type": null, "description": ""}, {"name": "lat2", "type": null, "description": ""}, {"name": "lon2", "type": null, "description": ""}, {"name": "unit", "type": null, "description": ""}], "created_at": 1784670933.8251607, "supported_languages": null}, "macro.dbt_utils.bigquery__haversine_distance": {"name": "bigquery__haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.bigquery__haversine_distance", "macro_sql": "{% macro bigquery__haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n{% set radians_lat1 = dbt_utils.degrees_to_radians(lat1) %}\n{% set radians_lat2 = dbt_utils.degrees_to_radians(lat2) %}\n{% set radians_lon1 = dbt_utils.degrees_to_radians(lon1) %}\n{% set radians_lon2 = dbt_utils.degrees_to_radians(lon2) %}\n{%- if unit == 'mi' %}\n {% set conversion_rate = 1 %}\n{% elif unit == 'km' %}\n {% set conversion_rate = 1.60934 %}\n{% else %}\n {{ exceptions.raise_compiler_error(\"unit input must be one of 'mi' or 'km'. Got \" ~ unit) }}\n{% endif %}\n 2 * 3961 * asin(sqrt(power(sin(({{ radians_lat2 }} - {{ radians_lat1 }}) / 2), 2) +\n cos({{ radians_lat1 }}) * cos({{ radians_lat2 }}) *\n power(sin(({{ radians_lon2 }} - {{ radians_lon1 }}) / 2), 2))) * {{ conversion_rate }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.degrees_to_radians"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "lat1", "type": null, "description": ""}, {"name": "lon1", "type": null, "description": ""}, {"name": "lat2", "type": null, "description": ""}, {"name": "lon2", "type": null, "description": ""}, {"name": "unit", "type": null, "description": ""}], "created_at": 1784670933.8267593, "supported_languages": null}, "macro.dbt_utils.width_bucket": {"name": "width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.width_bucket", "macro_sql": "{% macro width_bucket(expr, min_value, max_value, num_buckets) %}\n {{ return(adapter.dispatch('width_bucket', 'dbt_utils') (expr, min_value, max_value, num_buckets)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__width_bucket"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expr", "type": null, "description": ""}, {"name": "min_value", "type": null, "description": ""}, {"name": "max_value", "type": null, "description": ""}, {"name": "num_buckets", "type": null, "description": ""}], "created_at": 1784670933.8276186, "supported_languages": null}, "macro.dbt_utils.default__width_bucket": {"name": "default__width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.default__width_bucket", "macro_sql": "{% macro default__width_bucket(expr, min_value, max_value, num_buckets) -%}\n\n {% set bin_size -%}\n (( {{ max_value }} - {{ min_value }} ) / {{ num_buckets }} )\n {%- endset %}\n (\n -- to break ties when the amount is eaxtly at the bucket egde\n case\n when\n mod(\n {{ dbt.safe_cast(expr, dbt.type_numeric() ) }},\n {{ dbt.safe_cast(bin_size, dbt.type_numeric() ) }}\n ) = 0\n then 1\n else 0\n end\n ) +\n -- Anything over max_value goes the N+1 bucket\n least(\n ceil(\n ({{ expr }} - {{ min_value }})/{{ bin_size }}\n ),\n {{ num_buckets }} + 1\n )\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.safe_cast", "macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expr", "type": null, "description": ""}, {"name": "min_value", "type": null, "description": ""}, {"name": "max_value", "type": null, "description": ""}, {"name": "num_buckets", "type": null, "description": ""}], "created_at": 1784670933.8285315, "supported_languages": null}, "macro.dbt_utils.snowflake__width_bucket": {"name": "snowflake__width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.snowflake__width_bucket", "macro_sql": "{% macro snowflake__width_bucket(expr, min_value, max_value, num_buckets) %}\n width_bucket({{ expr }}, {{ min_value }}, {{ max_value }}, {{ num_buckets }} )\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "expr", "type": null, "description": ""}, {"name": "min_value", "type": null, "description": ""}, {"name": "max_value", "type": null, "description": ""}, {"name": "num_buckets", "type": null, "description": ""}], "created_at": 1784670933.8289237, "supported_languages": null}, "macro.dbt_utils.get_powers_of_two": {"name": "get_powers_of_two", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.get_powers_of_two", "macro_sql": "{% macro get_powers_of_two(upper_bound) %}\n {{ return(adapter.dispatch('get_powers_of_two', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "upper_bound", "type": null, "description": ""}], "created_at": 1784670933.829807, "supported_languages": null}, "macro.dbt_utils.default__get_powers_of_two": {"name": "default__get_powers_of_two", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.default__get_powers_of_two", "macro_sql": "{% macro default__get_powers_of_two(upper_bound) %}\n\n {% if upper_bound <= 0 %}\n {{ exceptions.raise_compiler_error(\"upper bound must be positive\") }}\n {% endif %}\n\n {% for _ in range(1, 100) %}\n {% if upper_bound <= 2 ** loop.index %}{{ return(loop.index) }}{% endif %}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "upper_bound", "type": null, "description": ""}], "created_at": 1784670933.8308158, "supported_languages": null}, "macro.dbt_utils.generate_series": {"name": "generate_series", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "upper_bound", "type": null, "description": ""}], "created_at": 1784670933.8312235, "supported_languages": null}, "macro.dbt_utils.default__generate_series": {"name": "default__generate_series", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.default__generate_series", "macro_sql": "{% macro default__generate_series(upper_bound) %}\n\n {% set n = dbt_utils.get_powers_of_two(upper_bound) %}\n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n {% for i in range(n) %}\n p{{i}}.generated_number * power(2, {{i}})\n {% if not loop.last %} + {% endif %}\n {% endfor %}\n + 1\n as generated_number\n\n from\n\n {% for i in range(n) %}\n p as p{{i}}\n {% if not loop.last %} cross join {% endif %}\n {% endfor %}\n\n )\n\n select *\n from unioned\n where generated_number <= {{upper_bound}}\n order by generated_number\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "upper_bound", "type": null, "description": ""}], "created_at": 1784670933.8322706, "supported_languages": null}, "macro.dbt_utils.nullcheck_table": {"name": "nullcheck_table", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "unique_id": "macro.dbt_utils.nullcheck_table", "macro_sql": "{% macro nullcheck_table(relation) %}\n {{ return(adapter.dispatch('nullcheck_table', 'dbt_utils')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.8328493, "supported_languages": null}, "macro.dbt_utils.default__nullcheck_table": {"name": "default__nullcheck_table", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "unique_id": "macro.dbt_utils.default__nullcheck_table", "macro_sql": "{% macro default__nullcheck_table(relation) %}\n\n {%- do dbt_utils._is_relation(relation, 'nullcheck_table') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'nullcheck_table') -%}\n {% set cols = adapter.get_columns_in_relation(relation) %}\n\n select {{ dbt_utils.nullcheck(cols) }}\n from {{relation}}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}], "created_at": 1784670933.8335547, "supported_languages": null}, "macro.dbt_utils.star": {"name": "star", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "unique_id": "macro.dbt_utils.star", "macro_sql": "{% macro star(from, relation_alias=False, except=[], prefix='', suffix='', quote_identifiers=True, unquote_aliases=False, rename={}) -%}\r\n {{ return(adapter.dispatch('star', 'dbt_utils')(from, relation_alias, except, prefix, suffix, quote_identifiers, unquote_aliases, rename)) }}\r\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__star"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "from", "type": null, "description": ""}, {"name": "relation_alias", "type": null, "description": ""}, {"name": "except", "type": null, "description": ""}, {"name": "prefix", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}, {"name": "quote_identifiers", "type": null, "description": ""}, {"name": "unquote_aliases", "type": null, "description": ""}, {"name": "rename", "type": null, "description": ""}], "created_at": 1784670933.8352053, "supported_languages": null}, "macro.dbt_utils.default__star": {"name": "default__star", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "unique_id": "macro.dbt_utils.default__star", "macro_sql": "{% macro default__star(from, relation_alias=False, except=[], prefix='', suffix='', quote_identifiers=True, unquote_aliases=False, rename={}) -%}\r\n {%- do dbt_utils._is_relation(from, 'star') -%}\r\n {%- do dbt_utils._is_ephemeral(from, 'star') -%}\r\n\r\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\r\n {%- if not execute -%}\r\n {% do return('*') %}\r\n {%- endif -%}\r\n\r\n {% set cols = dbt_utils.get_filtered_columns_in_relation(from, except) %}\r\n\r\n {%- set rename_lower = {} -%}\r\n {%- for key, val in rename.items() -%}\r\n {%- do rename_lower.update({key.lower(): val}) -%}\r\n {%- endfor -%}\r\n\r\n {%- if cols|length <= 0 -%}\r\n {% if flags.WHICH == 'compile' %}\r\n {% set response %}\r\n*\r\n/* No columns were returned. Maybe the relation doesn't exist yet\r\nor all columns were excluded. This star is only output during\r\ndbt compile, and exists to keep SQLFluff happy. */\r\n {% endset %}\r\n {% do return(response) %}\r\n {% else %}\r\n {% do return(\"/* no columns returned from star() macro */\") %}\r\n {% endif %}\r\n {%- else -%}\r\n {%- for col in cols %}\r\n {%- if relation_alias %}{{ relation_alias }}.{% else %}{%- endif -%}\r\n {%- if quote_identifiers -%}\r\n {{ adapter.quote(col)|trim }}\r\n {%- if col.lower() in rename_lower %} as {{ rename_lower[col.lower()] }}\r\n {%- elif unquote_aliases %} as {{ (prefix ~ col ~ suffix)|trim }}\r\n {%- elif prefix!='' or suffix!='' %} as {{ adapter.quote(prefix ~ col ~ suffix)|trim }}\r\n {%- endif -%}\r\n {%- else -%}\r\n {{ col|trim }}\r\n {%- if col.lower() in rename_lower %} as {{ rename_lower[col.lower()] }}\r\n {%- elif prefix!='' or suffix!='' %} as {{ (prefix ~ col ~ suffix)|trim }}\r\n {%- endif -%}\r\n {%- endif -%}\r\n {%- if not loop.last %},{{ '\\n ' }}{%- endif -%}\r\n {%- endfor -%}\r\n {% endif %}\r\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.get_filtered_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "from", "type": null, "description": ""}, {"name": "relation_alias", "type": null, "description": ""}, {"name": "except", "type": null, "description": ""}, {"name": "prefix", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}, {"name": "quote_identifiers", "type": null, "description": ""}, {"name": "unquote_aliases", "type": null, "description": ""}, {"name": "rename", "type": null, "description": ""}], "created_at": 1784670933.839179, "supported_languages": null}, "macro.dbt_utils.get_single_value": {"name": "get_single_value", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_single_value.sql", "original_file_path": "macros/sql/get_single_value.sql", "unique_id": "macro.dbt_utils.get_single_value", "macro_sql": "{% macro get_single_value(query, default=none) %}\n {{ return(adapter.dispatch('get_single_value', 'dbt_utils')(query, default)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_single_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "query", "type": null, "description": ""}, {"name": "default", "type": null, "description": ""}], "created_at": 1784670933.8400238, "supported_languages": null}, "macro.dbt_utils.default__get_single_value": {"name": "default__get_single_value", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_single_value.sql", "original_file_path": "macros/sql/get_single_value.sql", "unique_id": "macro.dbt_utils.default__get_single_value", "macro_sql": "{% macro default__get_single_value(query, default) %}\n\n{# This macro returns the (0, 0) record in a query, i.e. the first row of the first column #}\n\n {%- call statement('get_query_result', fetch_result=True, auto_begin=false) -%}\n\n {{ query }}\n\n {%- endcall -%}\n\n {%- if execute -%}\n\n {% set r = load_result('get_query_result').table.columns[0].values() %}\n {% if r | length == 0 %}\n {% do print('Query `' ~ query ~ '` returned no rows. Using the default value: ' ~ default) %}\n {% set sql_result = default %}\n {% else %}\n {% set sql_result = r[0] %}\n {% endif %}\n \n {%- else -%}\n \n {% set sql_result = default %}\n \n {%- endif -%}\n\n {% do return(sql_result) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "query", "type": null, "description": ""}, {"name": "default", "type": null, "description": ""}], "created_at": 1784670933.8415048, "supported_languages": null}, "macro.dbt_utils.deduplicate": {"name": "deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.deduplicate", "macro_sql": "{%- macro deduplicate(relation, partition_by, order_by) -%}\n {{ return(adapter.dispatch('deduplicate', 'dbt_utils')(relation, partition_by, order_by)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.postgres__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "partition_by", "type": null, "description": ""}, {"name": "order_by", "type": null, "description": ""}], "created_at": 1784670933.8426073, "supported_languages": null}, "macro.dbt_utils.default__deduplicate": {"name": "default__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.default__deduplicate", "macro_sql": "\n\n{%- macro default__deduplicate(relation, partition_by, order_by) -%}\n\n with row_numbered as (\n select\n _inner.*,\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) as rn\n from {{ relation }} as _inner\n )\n\n select\n distinct data.*\n from {{ relation }} as data\n {#\n -- Not all DBs will support natural joins but the ones that do include:\n -- Oracle, MySQL, SQLite, Redshift, Teradata, Materialize, Databricks\n -- Apache Spark, SingleStore, Vertica\n -- Those that do not appear to support natural joins include:\n -- SQLServer, Trino, Presto, Rockset, Athena\n #}\n natural join row_numbered\n where row_numbered.rn = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "partition_by", "type": null, "description": ""}, {"name": "order_by", "type": null, "description": ""}], "created_at": 1784670933.8430398, "supported_languages": null}, "macro.dbt_utils.redshift__deduplicate": {"name": "redshift__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.redshift__deduplicate", "macro_sql": "{% macro redshift__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }} as tt\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "partition_by", "type": null, "description": ""}, {"name": "order_by", "type": null, "description": ""}], "created_at": 1784670933.8434052, "supported_languages": null}, "macro.dbt_utils.postgres__deduplicate": {"name": "postgres__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.postgres__deduplicate", "macro_sql": "\n{%- macro postgres__deduplicate(relation, partition_by, order_by) -%}\n\n select\n distinct on ({{ partition_by }}) *\n from {{ relation }}\n order by {{ partition_by }}{{ ',' ~ order_by }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "partition_by", "type": null, "description": ""}, {"name": "order_by", "type": null, "description": ""}], "created_at": 1784670933.8437898, "supported_languages": null}, "macro.dbt_utils.snowflake__deduplicate": {"name": "snowflake__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.snowflake__deduplicate", "macro_sql": "\n{%- macro snowflake__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }}\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "partition_by", "type": null, "description": ""}, {"name": "order_by", "type": null, "description": ""}], "created_at": 1784670933.8441517, "supported_languages": null}, "macro.dbt_utils.databricks__deduplicate": {"name": "databricks__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.databricks__deduplicate", "macro_sql": "\n{%- macro databricks__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }}\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "partition_by", "type": null, "description": ""}, {"name": "order_by", "type": null, "description": ""}], "created_at": 1784670933.8444943, "supported_languages": null}, "macro.dbt_utils.bigquery__deduplicate": {"name": "bigquery__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.bigquery__deduplicate", "macro_sql": "\n{%- macro bigquery__deduplicate(relation, partition_by, order_by) -%}\n\n select unique.*\n from (\n select\n array_agg (\n original\n order by {{ order_by }}\n limit 1\n )[offset(0)] unique\n from {{ relation }} original\n group by {{ partition_by }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "partition_by", "type": null, "description": ""}, {"name": "order_by", "type": null, "description": ""}], "created_at": 1784670933.8448372, "supported_languages": null}, "macro.dbt_utils.safe_add": {"name": "safe_add", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "unique_id": "macro.dbt_utils.safe_add", "macro_sql": "{%- macro safe_add(field_list) -%}\n {{ return(adapter.dispatch('safe_add', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_list", "type": null, "description": ""}], "created_at": 1784670933.8454862, "supported_languages": null}, "macro.dbt_utils.default__safe_add": {"name": "default__safe_add", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "unique_id": "macro.dbt_utils.default__safe_add", "macro_sql": "\n\n{%- macro default__safe_add(field_list) -%}\n\n{%- if field_list is not iterable or field_list is string or field_list is mapping -%}\n\n{%- set error_message = '\nWarning: the `safe_add` macro now takes a single list argument instead of \\\nstring arguments. The {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.warn(error_message) -%}\n\n{%- endif -%}\n\n{% set fields = [] %}\n\n{%- for field in field_list -%}\n\n {% do fields.append(\"coalesce(\" ~ field ~ \", 0)\") %}\n\n{%- endfor -%}\n\n{{ fields|join(' +\\n ') }}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_list", "type": null, "description": ""}], "created_at": 1784670933.8465676, "supported_languages": null}, "macro.dbt_utils.union_relations": {"name": "union_relations", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "unique_id": "macro.dbt_utils.union_relations", "macro_sql": "{%- macro union_relations(relations, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n {{ return(adapter.dispatch('union_relations', 'dbt_utils')(relations, column_override, include, exclude, source_column_name, where)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relations", "type": null, "description": ""}, {"name": "column_override", "type": null, "description": ""}, {"name": "include", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "source_column_name", "type": null, "description": ""}, {"name": "where", "type": null, "description": ""}], "created_at": 1784670933.8485909, "supported_languages": null}, "macro.dbt_utils.default__union_relations": {"name": "default__union_relations", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "unique_id": "macro.dbt_utils.default__union_relations", "macro_sql": "\n\n{%- macro default__union_relations(relations, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n\n {%- if exclude and include -%}\n {{ exceptions.raise_compiler_error(\"Both an exclude and include list were provided to the `union` macro. Only one is allowed\") }}\n {%- endif -%}\n\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. -#}\n {%- if not execute %}\n {{ return('') }}\n {% endif -%}\n\n {%- set column_override = column_override if column_override is not none else {} -%}\n\n {%- set relation_columns = {} -%}\n {%- set column_superset = {} -%}\n {%- set all_excludes = [] -%}\n {%- set all_includes = [] -%}\n\n {%- if exclude -%}\n {%- for exc in exclude -%}\n {%- do all_excludes.append(exc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- if include -%}\n {%- for inc in include -%}\n {%- do all_includes.append(inc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- for relation in relations -%}\n\n {%- do relation_columns.update({relation: []}) -%}\n\n {%- do dbt_utils._is_relation(relation, 'union_relations') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'union_relations') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) -%}\n {%- for col in cols -%}\n\n {#- If an exclude list was provided and the column is in the list, do nothing -#}\n {%- if exclude and col.column | lower in all_excludes -%}\n\n {#- If an include list was provided and the column is not in the list, do nothing -#}\n {%- elif include and col.column | lower not in all_includes -%}\n\n {#- Otherwise add the column to the column superset -#}\n {%- else -%}\n\n {#- update the list of columns in this relation -#}\n {%- do relation_columns[relation].append(col.column) -%}\n\n {%- if col.column in column_superset -%}\n\n {%- set stored = column_superset[col.column] -%}\n {%- if col.is_string() and stored.is_string() and col.string_size() > stored.string_size() -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif %}\n\n {%- else -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif -%}\n\n {%- endif -%}\n\n {%- endfor -%}\n {%- endfor -%}\n\n {%- set ordered_column_names = column_superset.keys() -%}\n {%- set dbt_command = flags.WHICH -%}\n\n\n {% if dbt_command in ['run', 'build'] %}\n {% if (include | length > 0 or exclude | length > 0) and not column_superset.keys() %}\n {%- set relations_string -%}\n {%- for relation in relations -%}\n {{ relation.name }}\n {%- if not loop.last %}, {% endif -%}\n {%- endfor -%}\n {%- endset -%}\n\n {%- set error_message -%}\n There were no columns found to union for relations {{ relations_string }}\n {%- endset -%}\n\n {{ exceptions.raise_compiler_error(error_message) }}\n {%- endif -%}\n {%- endif -%}\n\n {%- for relation in relations %}\n\n (\n select\n\n {%- if source_column_name is not none %}\n cast({{ dbt.string_literal(relation.render()) }} as {{ dbt.type_string() }}) as {{ source_column_name }},\n {%- endif %}\n\n /* No columns from any of the relations.\n This star is only output during dbt compile, and exists to keep SQLFluff happy. */\n {% if dbt_command == 'compile' and ordered_column_names|length == 0 %}\n *\n {% endif %}\n\n {% for col_name in ordered_column_names -%}\n\n {%- set col = column_superset[col_name] %}\n {%- set col_type = column_override.get(col.column, col.data_type) %}\n {%- set col_name = adapter.quote(col_name) if col_name in relation_columns[relation] else 'null' %}\n cast({{ col_name }} as {{ col_type }}) as {{ col.quoted }} {% if not loop.last %},{% endif -%}\n\n {%- endfor %}\n\n from {{ relation }}\n\n {% if where -%}\n where {{ where }}\n {%- endif %}\n )\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n\n {%- endfor -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.string_literal", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relations", "type": null, "description": ""}, {"name": "column_override", "type": null, "description": ""}, {"name": "include", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "source_column_name", "type": null, "description": ""}, {"name": "where", "type": null, "description": ""}], "created_at": 1784670933.855642, "supported_languages": null}, "macro.dbt_utils.safe_subtract": {"name": "safe_subtract", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_subtract.sql", "original_file_path": "macros/sql/safe_subtract.sql", "unique_id": "macro.dbt_utils.safe_subtract", "macro_sql": "{%- macro safe_subtract(field_list) -%}\n {{ return(adapter.dispatch('safe_subtract', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_subtract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_list", "type": null, "description": ""}], "created_at": 1784670933.8563757, "supported_languages": null}, "macro.dbt_utils.default__safe_subtract": {"name": "default__safe_subtract", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_subtract.sql", "original_file_path": "macros/sql/safe_subtract.sql", "unique_id": "macro.dbt_utils.default__safe_subtract", "macro_sql": "\n\n{%- macro default__safe_subtract(field_list) -%}\n\n{%- if field_list is not iterable or field_list is string or field_list is mapping -%}\n\n{%- set error_message = '\nWarning: the `safe_subtract` macro takes a single list argument instead of \\\nstring arguments. The {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.raise_compiler_error(error_message) -%}\n\n{%- endif -%}\n\n{% set fields = [] %}\n\n{%- for field in field_list -%}\n\n {% do fields.append(\"coalesce(\" ~ field ~ \", 0)\") %}\n\n{%- endfor -%}\n\n{{ fields|join(' -\\n ') }}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_list", "type": null, "description": ""}], "created_at": 1784670933.8574593, "supported_languages": null}, "macro.dbt_utils.get_query_results_as_dict": {"name": "get_query_results_as_dict", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "unique_id": "macro.dbt_utils.get_query_results_as_dict", "macro_sql": "{% macro get_query_results_as_dict(query) %}\n {{ return(adapter.dispatch('get_query_results_as_dict', 'dbt_utils')(query)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_query_results_as_dict"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "query", "type": null, "description": ""}], "created_at": 1784670933.8581462, "supported_languages": null}, "macro.dbt_utils.default__get_query_results_as_dict": {"name": "default__get_query_results_as_dict", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "unique_id": "macro.dbt_utils.default__get_query_results_as_dict", "macro_sql": "{% macro default__get_query_results_as_dict(query) %}\n\n{# This macro returns a dictionary of the form {column_name: (tuple_of_results)} #}\n\n {%- call statement('get_query_results', fetch_result=True,auto_begin=false) -%}\n\n {{ query }}\n\n {%- endcall -%}\n\n {% set sql_results={} %}\n\n {%- if execute -%}\n {% set sql_results_table = load_result('get_query_results').table.columns %}\n {% for column_name, column in sql_results_table.items() %}\n {% do sql_results.update({column_name: column.values()}) %}\n {% endfor %}\n {%- endif -%}\n\n {{ return(sql_results) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "query", "type": null, "description": ""}], "created_at": 1784670933.8593864, "supported_languages": null}, "macro.dbt_utils.unpivot": {"name": "unpivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "unique_id": "macro.dbt_utils.unpivot", "macro_sql": "{% macro unpivot(relation=none, cast_to='varchar', exclude=none, remove=none, field_name='field_name', value_name='value', quote_identifiers=False) -%}\n {{ return(adapter.dispatch('unpivot', 'dbt_utils')(relation, cast_to, exclude, remove, field_name, value_name, quote_identifiers)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__unpivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "cast_to", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "remove", "type": null, "description": ""}, {"name": "field_name", "type": null, "description": ""}, {"name": "value_name", "type": null, "description": ""}, {"name": "quote_identifiers", "type": null, "description": ""}], "created_at": 1784670933.8609245, "supported_languages": null}, "macro.dbt_utils.default__unpivot": {"name": "default__unpivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "unique_id": "macro.dbt_utils.default__unpivot", "macro_sql": "{% macro default__unpivot(relation=none, cast_to='varchar', exclude=none, remove=none, field_name='field_name', value_name='value', quote_identifiers=False) -%}\n\n {% if not relation %}\n {{ exceptions.raise_compiler_error(\"Error: argument `relation` is required for `unpivot` macro.\") }}\n {% endif %}\n\n {%- set exclude = exclude if exclude is not none else [] %}\n {%- set remove = remove if remove is not none else [] %}\n\n {%- set include_cols = [] %}\n\n {%- set table_columns = {} %}\n\n {%- do table_columns.update({relation: []}) %}\n\n {%- do dbt_utils._is_relation(relation, 'unpivot') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'unpivot') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) %}\n\n {%- for col in cols -%}\n {%- if col.column.lower() not in remove|map('lower') and col.column.lower() not in exclude|map('lower') -%}\n {% do include_cols.append(col) %}\n {%- endif %}\n {%- endfor %}\n\n\n {%- for col in include_cols -%}\n {%- set current_col_name = adapter.quote(col.column) if quote_identifiers else col.column -%}\n select\n {%- for exclude_col in exclude %}\n {{ adapter.quote(exclude_col) if quote_identifiers else exclude_col }},\n {%- endfor %}\n\n cast('{{ col.column }}' as {{ dbt.type_string() }}) as {{ adapter.quote(field_name) if quote_identifiers else field_name }},\n cast( {% if col.data_type == 'boolean' %}\n {{ dbt.cast_bool_to_text(current_col_name) }}\n {% else %}\n {{ current_col_name }}\n {% endif %}\n as {{ cast_to }}) as {{ adapter.quote(value_name) if quote_identifiers else value_name }}\n\n from {{ relation }}\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n {%- endfor -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.type_string", "macro.dbt.cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relation", "type": null, "description": ""}, {"name": "cast_to", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "remove", "type": null, "description": ""}, {"name": "field_name", "type": null, "description": ""}, {"name": "value_name", "type": null, "description": ""}, {"name": "quote_identifiers", "type": null, "description": ""}], "created_at": 1784670933.8646092, "supported_languages": null}, "macro.dbt_utils.get_table_types_sql": {"name": "get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.get_table_types_sql", "macro_sql": "{%- macro get_table_types_sql() -%}\n {{ return(adapter.dispatch('get_table_types_sql', 'dbt_utils')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_utils.postgres__get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.86528, "supported_languages": null}, "macro.dbt_utils.default__get_table_types_sql": {"name": "default__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.default__get_table_types_sql", "macro_sql": "{% macro default__get_table_types_sql() %}\n case table_type\n when 'BASE TABLE' then 'table'\n when 'EXTERNAL TABLE' then 'external'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.8655703, "supported_languages": null}, "macro.dbt_utils.postgres__get_table_types_sql": {"name": "postgres__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.postgres__get_table_types_sql", "macro_sql": "{% macro postgres__get_table_types_sql() %}\n case table_type\n when 'BASE TABLE' then 'table'\n when 'FOREIGN' then 'external'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.865849, "supported_languages": null}, "macro.dbt_utils.databricks__get_table_types_sql": {"name": "databricks__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.databricks__get_table_types_sql", "macro_sql": "{% macro databricks__get_table_types_sql() %}\n case table_type\n when 'MANAGED' then 'table'\n when 'BASE TABLE' then 'table'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.8661509, "supported_languages": null}, "macro.dbt_utils.generate_surrogate_key": {"name": "generate_surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "unique_id": "macro.dbt_utils.generate_surrogate_key", "macro_sql": "{%- macro generate_surrogate_key(field_list) -%}\n {{ return(adapter.dispatch('generate_surrogate_key', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__generate_surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_list", "type": null, "description": ""}], "created_at": 1784670933.8668418, "supported_languages": null}, "macro.dbt_utils.default__generate_surrogate_key": {"name": "default__generate_surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "unique_id": "macro.dbt_utils.default__generate_surrogate_key", "macro_sql": "\n\n{%- macro default__generate_surrogate_key(field_list) -%}\n\n{%- if var('surrogate_key_treat_nulls_as_empty_strings', False) -%}\n {%- set default_null_value = \"\" -%}\n{%- else -%}\n {%- set default_null_value = '_dbt_utils_surrogate_key_null_' -%}\n{%- endif -%}\n\n{%- set fields = [] -%}\n\n{%- for field in field_list -%}\n\n {%- do fields.append(\n \"coalesce(cast(\" ~ field ~ \" as \" ~ dbt.type_string() ~ \"), '\" ~ default_null_value ~\"')\"\n ) -%}\n\n {%- if not loop.last %}\n {%- do fields.append(\"'-'\") -%}\n {%- endif -%}\n\n{%- endfor -%}\n\n{{ dbt.hash(dbt.concat(fields)) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.type_string", "macro.dbt.hash", "macro.dbt.concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_list", "type": null, "description": ""}], "created_at": 1784670933.8680928, "supported_languages": null}, "macro.dbt_utils.get_filtered_columns_in_relation": {"name": "get_filtered_columns_in_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "unique_id": "macro.dbt_utils.get_filtered_columns_in_relation", "macro_sql": "{% macro get_filtered_columns_in_relation(from, except=[]) -%}\n {{ return(adapter.dispatch('get_filtered_columns_in_relation', 'dbt_utils')(from, except)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_filtered_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "from", "type": null, "description": ""}, {"name": "except", "type": null, "description": ""}], "created_at": 1784670933.8688533, "supported_languages": null}, "macro.dbt_utils.default__get_filtered_columns_in_relation": {"name": "default__get_filtered_columns_in_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "unique_id": "macro.dbt_utils.default__get_filtered_columns_in_relation", "macro_sql": "{% macro default__get_filtered_columns_in_relation(from, except=[]) -%}\n {%- do dbt_utils._is_relation(from, 'get_filtered_columns_in_relation') -%}\n {%- do dbt_utils._is_ephemeral(from, 'get_filtered_columns_in_relation') -%}\n\n {# -- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n {%- if not execute -%}\n {{ return([]) }}\n {% endif %}\n\n {%- set include_cols = [] %}\n {%- set cols = adapter.get_columns_in_relation(from) -%}\n {%- set except = except | map(\"lower\") | list %}\n {%- for col in cols -%}\n {%- if col.column|lower not in except -%}\n {% do include_cols.append(col.column) %}\n {%- endif %}\n {%- endfor %}\n\n {{ return(include_cols) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "from", "type": null, "description": ""}, {"name": "except", "type": null, "description": ""}], "created_at": 1784670933.8702993, "supported_languages": null}, "macro.dbt_utils.get_column_values": {"name": "get_column_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "unique_id": "macro.dbt_utils.get_column_values", "macro_sql": "{% macro get_column_values(table, column, order_by='count(*) desc', max_records=none, default=none, where=none) -%}\n {{ return(adapter.dispatch('get_column_values', 'dbt_utils')(table, column, order_by, max_records, default, where)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_column_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "table", "type": null, "description": ""}, {"name": "column", "type": null, "description": ""}, {"name": "order_by", "type": null, "description": ""}, {"name": "max_records", "type": null, "description": ""}, {"name": "default", "type": null, "description": ""}, {"name": "where", "type": null, "description": ""}], "created_at": 1784670933.8716347, "supported_languages": null}, "macro.dbt_utils.default__get_column_values": {"name": "default__get_column_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "unique_id": "macro.dbt_utils.default__get_column_values", "macro_sql": "{% macro default__get_column_values(table, column, order_by='count(*) desc', max_records=none, default=none, where=none) -%}\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n {%- if not execute -%}\n {% set default = [] if not default %}\n {{ return(default) }}\n {% endif %}\n\n {%- do dbt_utils._is_ephemeral(table, 'get_column_values') -%}\n\n {# Not all relations are tables. Renaming for internal clarity without breaking functionality for anyone using named arguments #}\n {# TODO: Change the method signature in a future 0.x.0 release #}\n {%- set target_relation = table -%}\n\n {# adapter.load_relation is a convenience wrapper to avoid building a Relation when we already have one #}\n {% set relation_exists = (load_relation(target_relation)) is not none %}\n\n {%- call statement('get_column_values', fetch_result=true) %}\n\n {%- if not relation_exists and default is none -%}\n\n {{ exceptions.raise_compiler_error(\"In get_column_values(): relation \" ~ target_relation ~ \" does not exist and no default value was provided.\") }}\n\n {%- elif not relation_exists and default is not none -%}\n\n {{ log(\"Relation \" ~ target_relation ~ \" does not exist. Returning the default value: \" ~ default) }}\n\n {{ return(default) }}\n\n {%- else -%}\n\n\n select\n {{ column }} as value\n\n from {{ target_relation }}\n\n {% if where is not none %}\n where {{ where }}\n {% endif %}\n\n group by {{ column }}\n order by {{ order_by }}\n\n {% if max_records is not none %}\n limit {{ max_records }}\n {% endif %}\n\n {% endif %}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_column_values') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values) }}\n {%- else -%}\n {{ return(default) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_ephemeral", "macro.dbt.load_relation", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "table", "type": null, "description": ""}, {"name": "column", "type": null, "description": ""}, {"name": "order_by", "type": null, "description": ""}, {"name": "max_records", "type": null, "description": ""}, {"name": "default", "type": null, "description": ""}, {"name": "where", "type": null, "description": ""}], "created_at": 1784670933.8746848, "supported_languages": null}, "macro.dbt_utils.surrogate_key": {"name": "surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "unique_id": "macro.dbt_utils.surrogate_key", "macro_sql": "{%- macro surrogate_key(field_list) -%}\n {% set frustrating_jinja_feature = varargs %}\n {{ return(adapter.dispatch('surrogate_key', 'dbt_utils')(field_list, *varargs)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_list", "type": null, "description": ""}], "created_at": 1784670933.875385, "supported_languages": null}, "macro.dbt_utils.default__surrogate_key": {"name": "default__surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "unique_id": "macro.dbt_utils.default__surrogate_key", "macro_sql": "\n\n{%- macro default__surrogate_key(field_list) -%}\n\n{%- set error_message = '\nWarning: `dbt_utils.surrogate_key` has been replaced by \\\n`dbt_utils.generate_surrogate_key`. The new macro treats null values \\\ndifferently to empty strings. To restore the behaviour of the original \\\nmacro, add a global variable in dbt_project.yml called \\\n`surrogate_key_treat_nulls_as_empty_strings` to your \\\ndbt_project.yml file with a value of True. \\\nThe {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.raise_compiler_error(error_message) -%}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_list", "type": null, "description": ""}], "created_at": 1784670933.8758512, "supported_languages": null}, "macro.dbt_utils.safe_divide": {"name": "safe_divide", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_divide.sql", "original_file_path": "macros/sql/safe_divide.sql", "unique_id": "macro.dbt_utils.safe_divide", "macro_sql": "{% macro safe_divide(numerator, denominator) -%}\n {{ return(adapter.dispatch('safe_divide', 'dbt_utils')(numerator, denominator)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_divide"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "numerator", "type": null, "description": ""}, {"name": "denominator", "type": null, "description": ""}], "created_at": 1784670933.8765047, "supported_languages": null}, "macro.dbt_utils.default__safe_divide": {"name": "default__safe_divide", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_divide.sql", "original_file_path": "macros/sql/safe_divide.sql", "unique_id": "macro.dbt_utils.default__safe_divide", "macro_sql": "{% macro default__safe_divide(numerator, denominator) %}\n ( {{ numerator }} ) / nullif( ( {{ denominator }} ), 0)\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "numerator", "type": null, "description": ""}, {"name": "denominator", "type": null, "description": ""}], "created_at": 1784670933.8768013, "supported_languages": null}, "macro.dbt_utils.nullcheck": {"name": "nullcheck", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "unique_id": "macro.dbt_utils.nullcheck", "macro_sql": "{% macro nullcheck(cols) %}\n {{ return(adapter.dispatch('nullcheck', 'dbt_utils')(cols)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "cols", "type": null, "description": ""}], "created_at": 1784670933.8774266, "supported_languages": null}, "macro.dbt_utils.default__nullcheck": {"name": "default__nullcheck", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "unique_id": "macro.dbt_utils.default__nullcheck", "macro_sql": "{% macro default__nullcheck(cols) %}\n{%- for col in cols %}\n\n {% if col.is_string() -%}\n\n nullif({{col.name}},'') as {{col.name}}\n\n {%- else -%}\n\n {{col.name}}\n\n {%- endif -%}\n\n{%- if not loop.last -%} , {%- endif -%}\n\n{%- endfor -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "cols", "type": null, "description": ""}], "created_at": 1784670933.878107, "supported_languages": null}, "macro.dbt_utils.get_relations_by_pattern": {"name": "get_relations_by_pattern", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "unique_id": "macro.dbt_utils.get_relations_by_pattern", "macro_sql": "{% macro get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_relations_by_pattern', 'dbt_utils')(schema_pattern, table_pattern, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_pattern", "type": null, "description": ""}, {"name": "table_pattern", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.8790083, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_pattern": {"name": "default__get_relations_by_pattern", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "unique_id": "macro.dbt_utils.default__get_relations_by_pattern", "macro_sql": "{% macro default__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n {{ dbt_utils.get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude, database) }}\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=database,\n schema=row.table_schema,\n identifier=row.table_name,\n type=row.table_type\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_pattern", "type": null, "description": ""}, {"name": "table_pattern", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.880689, "supported_languages": null}, "macro.dbt_utils.pivot": {"name": "pivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "unique_id": "macro.dbt_utils.pivot", "macro_sql": "{% macro pivot(column,\n values,\n alias=True,\n agg='sum',\n cmp='=',\n prefix='',\n suffix='',\n then_value=1,\n else_value=0,\n quote_identifiers=True,\n distinct=False) %}\n {{ return(adapter.dispatch('pivot', 'dbt_utils')(column, values, alias, agg, cmp, prefix, suffix, then_value, else_value, quote_identifiers, distinct)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "column", "type": null, "description": ""}, {"name": "values", "type": null, "description": ""}, {"name": "alias", "type": null, "description": ""}, {"name": "agg", "type": null, "description": ""}, {"name": "cmp", "type": null, "description": ""}, {"name": "prefix", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}, {"name": "then_value", "type": null, "description": ""}, {"name": "else_value", "type": null, "description": ""}, {"name": "quote_identifiers", "type": null, "description": ""}, {"name": "distinct", "type": null, "description": ""}], "created_at": 1784670933.8822403, "supported_languages": null}, "macro.dbt_utils.default__pivot": {"name": "default__pivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "unique_id": "macro.dbt_utils.default__pivot", "macro_sql": "{% macro default__pivot(column,\n values,\n alias=True,\n agg='sum',\n cmp='=',\n prefix='',\n suffix='',\n then_value=1,\n else_value=0,\n quote_identifiers=True,\n distinct=False) %}\n {% for value in values %}\n {{ agg }}(\n {% if distinct %} distinct {% endif %}\n case\n when {{ column }} {{ cmp }} '{{ dbt.escape_single_quotes(value) }}'\n then {{ then_value }}\n else {{ else_value }}\n end\n )\n {% if alias %}\n {% if quote_identifiers %}\n as {{ adapter.quote(prefix ~ value ~ suffix) }}\n {% else %}\n as {{ dbt_utils.slugify(prefix ~ value ~ suffix) }}\n {% endif %}\n {% endif %}\n {% if not loop.last %},{% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.escape_single_quotes", "macro.dbt_utils.slugify"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "column", "type": null, "description": ""}, {"name": "values", "type": null, "description": ""}, {"name": "alias", "type": null, "description": ""}, {"name": "agg", "type": null, "description": ""}, {"name": "cmp", "type": null, "description": ""}, {"name": "prefix", "type": null, "description": ""}, {"name": "suffix", "type": null, "description": ""}, {"name": "then_value", "type": null, "description": ""}, {"name": "else_value", "type": null, "description": ""}, {"name": "quote_identifiers", "type": null, "description": ""}, {"name": "distinct", "type": null, "description": ""}], "created_at": 1784670933.884286, "supported_languages": null}, "macro.dbt_utils.get_intervals_between": {"name": "get_intervals_between", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.get_intervals_between", "macro_sql": "{% macro get_intervals_between(start_date, end_date, datepart) -%}\n {{ return(adapter.dispatch('get_intervals_between', 'dbt_utils')(start_date, end_date, datepart)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "start_date", "type": null, "description": ""}, {"name": "end_date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.8852372, "supported_languages": null}, "macro.dbt_utils.default__get_intervals_between": {"name": "default__get_intervals_between", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.default__get_intervals_between", "macro_sql": "{% macro default__get_intervals_between(start_date, end_date, datepart) -%}\n {%- call statement('get_intervals_between', fetch_result=True) %}\n\n select {{ dbt.datediff(start_date, end_date, datepart) }}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_intervals_between') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values[0]) }}\n {%- else -%}\n {{ return(1) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "start_date", "type": null, "description": ""}, {"name": "end_date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.8864088, "supported_languages": null}, "macro.dbt_utils.date_spine": {"name": "date_spine", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.date_spine", "macro_sql": "{% macro date_spine(datepart, start_date, end_date) %}\n {{ return(adapter.dispatch('date_spine', 'dbt_utils')(datepart, start_date, end_date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "start_date", "type": null, "description": ""}, {"name": "end_date", "type": null, "description": ""}], "created_at": 1784670933.8868756, "supported_languages": null}, "macro.dbt_utils.default__date_spine": {"name": "default__date_spine", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.default__date_spine", "macro_sql": "{% macro default__date_spine(datepart, start_date, end_date) %}\n\n\n{# call as follows:\n\ndate_spine(\n \"day\",\n \"to_date('01/01/2016', 'mm/dd/yyyy')\",\n \"dbt.dateadd(week, 1, current_date)\"\n) #}\n\n\nwith rawdata as (\n\n {{dbt_utils.generate_series(\n dbt_utils.get_intervals_between(start_date, end_date, datepart)\n )}}\n\n),\n\nall_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n \"row_number() over (order by generated_number) - 1\",\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n\n),\n\nfiltered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n)\n\nselect * from filtered\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.generate_series", "macro.dbt_utils.get_intervals_between", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "start_date", "type": null, "description": ""}, {"name": "end_date", "type": null, "description": ""}], "created_at": 1784670933.8875916, "supported_languages": null}, "macro.dbt_utils.get_relations_by_prefix": {"name": "get_relations_by_prefix", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "unique_id": "macro.dbt_utils.get_relations_by_prefix", "macro_sql": "{% macro get_relations_by_prefix(schema, prefix, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_relations_by_prefix', 'dbt_utils')(schema, prefix, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_relations_by_prefix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema", "type": null, "description": ""}, {"name": "prefix", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.888512, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_prefix": {"name": "default__get_relations_by_prefix", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "unique_id": "macro.dbt_utils.default__get_relations_by_prefix", "macro_sql": "{% macro default__get_relations_by_prefix(schema, prefix, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n {{ dbt_utils.get_tables_by_prefix_sql(schema, prefix, exclude, database) }}\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=database,\n schema=row.table_schema,\n identifier=row.table_name,\n type=row.table_type\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.get_tables_by_prefix_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema", "type": null, "description": ""}, {"name": "prefix", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.8901987, "supported_languages": null}, "macro.dbt_utils.get_url_parameter": {"name": "get_url_parameter", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "unique_id": "macro.dbt_utils.get_url_parameter", "macro_sql": "{% macro get_url_parameter(field, url_parameter) -%}\n {{ return(adapter.dispatch('get_url_parameter', 'dbt_utils')(field, url_parameter)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "url_parameter", "type": null, "description": ""}], "created_at": 1784670933.8908055, "supported_languages": null}, "macro.dbt_utils.default__get_url_parameter": {"name": "default__get_url_parameter", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "unique_id": "macro.dbt_utils.default__get_url_parameter", "macro_sql": "{% macro default__get_url_parameter(field, url_parameter) -%}\n\n{%- set formatted_url_parameter = \"'\" + url_parameter + \"='\" -%}\n\n{%- set split = dbt.split_part(dbt.split_part(field, formatted_url_parameter, 2), \"'&'\", 1) -%}\n\nnullif({{ split }},'')\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "url_parameter", "type": null, "description": ""}], "created_at": 1784670933.891469, "supported_languages": null}, "macro.dbt_utils.get_url_host": {"name": "get_url_host", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "unique_id": "macro.dbt_utils.get_url_host", "macro_sql": "{% macro get_url_host(field) -%}\n {{ return(adapter.dispatch('get_url_host', 'dbt_utils')(field)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_host"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}], "created_at": 1784670933.892068, "supported_languages": null}, "macro.dbt_utils.default__get_url_host": {"name": "default__get_url_host", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "unique_id": "macro.dbt_utils.default__get_url_host", "macro_sql": "{% macro default__get_url_host(field) -%}\n\n{%- set parsed =\n dbt.split_part(\n dbt.split_part(\n dbt.replace(\n dbt.replace(\n dbt.replace(field, \"'android-app://'\", \"''\"\n ), \"'http://'\", \"''\"\n ), \"'https://'\", \"''\"\n ), \"'/'\", 1\n ), \"'?'\", 1\n )\n\n-%}\n\n\n {{ dbt.safe_cast(\n parsed,\n dbt.type_string()\n )}}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.split_part", "macro.dbt.replace", "macro.dbt.safe_cast", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}], "created_at": 1784670933.8929617, "supported_languages": null}, "macro.dbt_utils.get_url_path": {"name": "get_url_path", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "unique_id": "macro.dbt_utils.get_url_path", "macro_sql": "{% macro get_url_path(field) -%}\n {{ return(adapter.dispatch('get_url_path', 'dbt_utils')(field)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_path"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}], "created_at": 1784670933.8936274, "supported_languages": null}, "macro.dbt_utils.default__get_url_path": {"name": "default__get_url_path", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "unique_id": "macro.dbt_utils.default__get_url_path", "macro_sql": "{% macro default__get_url_path(field) -%}\n\n {%- set stripped_url =\n dbt.replace(\n dbt.replace(field, \"'http://'\", \"''\"), \"'https://'\", \"''\")\n -%}\n\n {%- set first_slash_pos -%}\n coalesce(\n nullif({{ dbt.position(\"'/'\", stripped_url) }}, 0),\n {{ dbt.position(\"'?'\", stripped_url) }} - 1\n )\n {%- endset -%}\n\n {%- set parsed_path =\n dbt.split_part(\n dbt.right(\n stripped_url,\n dbt.length(stripped_url) ~ \"-\" ~ first_slash_pos\n ),\n \"'?'\", 1\n )\n -%}\n\n {{ dbt.safe_cast(\n parsed_path,\n dbt.type_string()\n )}}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.position", "macro.dbt.split_part", "macro.dbt.right", "macro.dbt.length", "macro.dbt.safe_cast", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}], "created_at": 1784670933.894992, "supported_languages": null}, "macro.dbt_utils.test_not_constant": {"name": "test_not_constant", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "unique_id": "macro.dbt_utils.test_not_constant", "macro_sql": "{% test not_constant(model, column_name, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_not_constant', 'dbt_utils')(model, column_name, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_constant"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.895788, "supported_languages": null}, "macro.dbt_utils.default__test_not_constant": {"name": "default__test_not_constant", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "unique_id": "macro.dbt_utils.default__test_not_constant", "macro_sql": "{% macro default__test_not_constant(model, column_name, group_by_columns) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n\nselect\n {# In TSQL, subquery aggregate columns need aliases #}\n {# thus: a filler col name, 'filler_column' #}\n {{select_gb_cols}}\n count(distinct {{ column_name }}) as filler_column\n\nfrom {{ model }}\n\n {{groupby_gb_cols}}\n\nhaving count(distinct {{ column_name }}) = 1\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.8967354, "supported_languages": null}, "macro.dbt_utils.test_not_empty_string": {"name": "test_not_empty_string", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "unique_id": "macro.dbt_utils.test_not_empty_string", "macro_sql": "{% test not_empty_string(model, column_name, trim_whitespace=true) %}\n\n {{ return(adapter.dispatch('test_not_empty_string', 'dbt_utils')(model, column_name, trim_whitespace)) }}\n\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_empty_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "trim_whitespace", "type": null, "description": ""}], "created_at": 1784670933.8974743, "supported_languages": null}, "macro.dbt_utils.default__test_not_empty_string": {"name": "default__test_not_empty_string", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "unique_id": "macro.dbt_utils.default__test_not_empty_string", "macro_sql": "{% macro default__test_not_empty_string(model, column_name, trim_whitespace=true) %}\n\n with\n \n all_values as (\n\n select \n\n\n {% if trim_whitespace == true -%}\n\n trim({{ column_name }}) as {{ column_name }}\n\n {%- else -%}\n\n {{ column_name }}\n\n {%- endif %}\n \n from {{ model }}\n\n ),\n\n errors as (\n\n select * from all_values\n where {{ column_name }} = ''\n\n )\n\n select * from errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "trim_whitespace", "type": null, "description": ""}], "created_at": 1784670933.898094, "supported_languages": null}, "macro.dbt_utils.test_not_accepted_values": {"name": "test_not_accepted_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "unique_id": "macro.dbt_utils.test_not_accepted_values", "macro_sql": "{% test not_accepted_values(model, column_name, values, quote=True) %}\n {{ return(adapter.dispatch('test_not_accepted_values', 'dbt_utils')(model, column_name, values, quote)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "values", "type": null, "description": ""}, {"name": "quote", "type": null, "description": ""}], "created_at": 1784670933.8988996, "supported_languages": null}, "macro.dbt_utils.default__test_not_accepted_values": {"name": "default__test_not_accepted_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "unique_id": "macro.dbt_utils.default__test_not_accepted_values", "macro_sql": "{% macro default__test_not_accepted_values(model, column_name, values, quote=True) %}\nwith all_values as (\n\n select distinct\n {{ column_name }} as value_field\n\n from {{ model }}\n\n),\n\nvalidation_errors as (\n\n select\n value_field\n\n from all_values\n where value_field in (\n {% for value in values -%}\n {% if quote -%}\n '{{ value }}'\n {%- else -%}\n {{ value }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {%- endfor %}\n )\n\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "values", "type": null, "description": ""}, {"name": "quote", "type": null, "description": ""}], "created_at": 1784670933.899698, "supported_languages": null}, "macro.dbt_utils.test_sequential_values": {"name": "test_sequential_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "unique_id": "macro.dbt_utils.test_sequential_values", "macro_sql": "{% test sequential_values(model, column_name, interval=1, datepart=None, group_by_columns = []) %}\n\n {{ return(adapter.dispatch('test_sequential_values', 'dbt_utils')(model, column_name, interval, datepart, group_by_columns)) }}\n\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_sequential_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.900752, "supported_languages": null}, "macro.dbt_utils.default__test_sequential_values": {"name": "default__test_sequential_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "unique_id": "macro.dbt_utils.default__test_sequential_values", "macro_sql": "{% macro default__test_sequential_values(model, column_name, interval=1, datepart=None, group_by_columns = []) %}\n\n{% set previous_column_name = \"previous_\" ~ dbt_utils.slugify(column_name) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(',') + ', ' %}\n {% set partition_gb_cols = 'partition by ' + group_by_columns|join(',') %}\n{% endif %}\n\nwith windowed as (\n\n select\n {{ select_gb_cols }}\n {{ column_name }},\n lag({{ column_name }}) over (\n {{partition_gb_cols}}\n order by {{ column_name }}\n ) as {{ previous_column_name }}\n from {{ model }}\n),\n\nvalidation_errors as (\n select\n *\n from windowed\n {% if datepart %}\n where not(cast({{ column_name }} as {{ dbt.type_timestamp() }})= cast({{ dbt.dateadd(datepart, interval, previous_column_name) }} as {{ dbt.type_timestamp() }}))\n {% else %}\n where not({{ column_name }} = {{ previous_column_name }} + {{ interval }})\n {% endif %}\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.slugify", "macro.dbt.type_timestamp", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.902633, "supported_languages": null}, "macro.dbt_utils.test_accepted_range": {"name": "test_accepted_range", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "unique_id": "macro.dbt_utils.test_accepted_range", "macro_sql": "{% test accepted_range(model, column_name, min_value=none, max_value=none, inclusive=true) %}\n {{ return(adapter.dispatch('test_accepted_range', 'dbt_utils')(model, column_name, min_value, max_value, inclusive)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_accepted_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "min_value", "type": null, "description": ""}, {"name": "max_value", "type": null, "description": ""}, {"name": "inclusive", "type": null, "description": ""}], "created_at": 1784670933.9035637, "supported_languages": null}, "macro.dbt_utils.default__test_accepted_range": {"name": "default__test_accepted_range", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "unique_id": "macro.dbt_utils.default__test_accepted_range", "macro_sql": "{% macro default__test_accepted_range(model, column_name, min_value=none, max_value=none, inclusive=true) %}\n\nwith meet_condition as(\n select *\n from {{ model }}\n),\n\nvalidation_errors as (\n select *\n from meet_condition\n where\n -- never true, defaults to an empty result set. Exists to ensure any combo of the `or` clauses below succeeds\n 1 = 2\n\n {%- if min_value is not none %}\n -- records with a value >= min_value are permitted. The `not` flips this to find records that don't meet the rule.\n or not {{ column_name }} > {{- \"=\" if inclusive }} {{ min_value }}\n {%- endif %}\n\n {%- if max_value is not none %}\n -- records with a value <= max_value are permitted. The `not` flips this to find records that don't meet the rule.\n or not {{ column_name }} < {{- \"=\" if inclusive }} {{ max_value }}\n {%- endif %}\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "min_value", "type": null, "description": ""}, {"name": "max_value", "type": null, "description": ""}, {"name": "inclusive", "type": null, "description": ""}], "created_at": 1784670933.904513, "supported_languages": null}, "macro.dbt_utils.test_expression_is_true": {"name": "test_expression_is_true", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "unique_id": "macro.dbt_utils.test_expression_is_true", "macro_sql": "{% test expression_is_true(model, expression, column_name=None) %}\n {{ return(adapter.dispatch('test_expression_is_true', 'dbt_utils')(model, expression, column_name)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_expression_is_true"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "expression", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}], "created_at": 1784670933.9052448, "supported_languages": null}, "macro.dbt_utils.default__test_expression_is_true": {"name": "default__test_expression_is_true", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "unique_id": "macro.dbt_utils.default__test_expression_is_true", "macro_sql": "{% macro default__test_expression_is_true(model, expression, column_name) %}\n\n{% set column_list = '*' if should_store_failures() else \"1\" %}\n\nselect\n {{ column_list }}\nfrom {{ model }}\n{% if column_name is none %}\nwhere not({{ expression }})\n{%- else %}\nwhere not({{ column_name }} {{ expression }})\n{%- endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "expression", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}], "created_at": 1784670933.905962, "supported_languages": null}, "macro.dbt_utils.test_equality": {"name": "test_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "unique_id": "macro.dbt_utils.test_equality", "macro_sql": "{% test equality(model, compare_model, compare_columns=None, exclude_columns=None, precision = None) %}\n {{ return(adapter.dispatch('test_equality', 'dbt_utils')(model, compare_model, compare_columns, exclude_columns, precision)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "compare_model", "type": null, "description": ""}, {"name": "compare_columns", "type": null, "description": ""}, {"name": "exclude_columns", "type": null, "description": ""}, {"name": "precision", "type": null, "description": ""}], "created_at": 1784670933.9081185, "supported_languages": null}, "macro.dbt_utils.default__test_equality": {"name": "default__test_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "unique_id": "macro.dbt_utils.default__test_equality", "macro_sql": "{% macro default__test_equality(model, compare_model, compare_columns=None, exclude_columns=None, precision = None) %}\n\n{%- if compare_columns and exclude_columns -%}\n {{ exceptions.raise_compiler_error(\"Both a compare and an ignore list were provided to the `equality` macro. Only one is allowed\") }}\n{%- endif -%}\n\n{% set set_diff %}\n count(*) + coalesce(abs(\n sum(case when which_diff = 'a_minus_b' then 1 else 0 end) -\n sum(case when which_diff = 'b_minus_a' then 1 else 0 end)\n ), 0)\n{% endset %}\n\n{#-- Needs to be set at parse time, before we return '' below --#}\n{{ config(fail_calc = set_diff) }}\n\n{#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n{%- if not execute -%}\n {{ return('') }}\n{% endif %}\n\n\n\n-- setup\n{%- do dbt_utils._is_relation(model, 'test_equality') -%}\n\n{# Ensure there are no extra columns in the compare_model vs model #}\n{%- if not compare_columns -%}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- do dbt_utils._is_ephemeral(compare_model, 'test_equality') -%}\n\n {%- set model_columns = adapter.get_columns_in_relation(model) -%}\n {%- set compare_model_columns = adapter.get_columns_in_relation(compare_model) -%}\n\n\n {%- if exclude_columns -%}\n {#-- Lower case ignore columns for easier comparison --#}\n {%- set exclude_columns = exclude_columns | map(\"lower\") | list %}\n\n {# Filter out the excluded columns #}\n {%- set include_columns = [] %}\n {%- set include_model_columns = [] %}\n {%- for column in model_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n {%- for column in compare_model_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_model_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n\n {%- set compare_columns_set = set(include_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- set compare_model_columns_set = set(include_model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- else -%}\n {%- set compare_columns_set = set(model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- set compare_model_columns_set = set(compare_model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- endif -%}\n\n {% if compare_columns_set != compare_model_columns_set %}\n {{ exceptions.raise_compiler_error(compare_model ~\" has less columns than \" ~ model ~ \", please ensure they have the same columns or use the `compare_columns` or `exclude_columns` arguments to subset them.\") }}\n {% endif %}\n\n\n{% endif %}\n\n{%- if not precision -%}\n {%- if not compare_columns -%}\n {# \n You cannot get the columns in an ephemeral model (due to not existing in the information schema),\n so if the user does not provide an explicit list of columns we must error in the case it is ephemeral\n #}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- set compare_columns = adapter.get_columns_in_relation(model)-%}\n\n {%- if exclude_columns -%}\n {#-- Lower case ignore columns for easier comparison --#}\n {%- set exclude_columns = exclude_columns | map(\"lower\") | list %}\n\n {# Filter out the excluded columns #}\n {%- set include_columns = [] %}\n {%- for column in compare_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n\n {%- set compare_columns = include_columns | map(attribute='quoted') %}\n {%- else -%} {# Compare columns provided #}\n {%- set compare_columns = compare_columns | map(attribute='quoted') %}\n {%- endif -%}\n {%- endif -%}\n\n {% set compare_cols_csv = compare_columns | join(', ') %}\n\n{% else %} {# Precision required #}\n {#-\n If rounding is required, we need to get the types, so it cannot be ephemeral even if they provide column names\n -#}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- set columns = adapter.get_columns_in_relation(model) -%}\n\n {% set columns_list = [] %}\n {%- for col in columns -%}\n {%- if (\n (col.name|lower in compare_columns|map('lower') or not compare_columns) and\n (col.name|lower not in exclude_columns|map('lower') or not exclude_columns)\n ) -%}\n {# Databricks double type is not picked up by any number type checks in dbt #}\n {%- if col.is_float() or col.is_numeric() or col.data_type == 'double' -%}\n {# Cast is required due to postgres not having round for a double precision number #}\n {%- do columns_list.append('round(cast(' ~ col.quoted ~ ' as ' ~ dbt.type_numeric() ~ '),' ~ precision ~ ') as ' ~ col.quoted) -%}\n {%- else -%} {# Non-numeric type #}\n {%- do columns_list.append(col.quoted) -%}\n {%- endif -%}\n {% endif %}\n {%- endfor -%}\n\n {% set compare_cols_csv = columns_list | join(', ') %}\n\n{% endif %}\n\nwith a as (\n\n select * from {{ model }}\n\n),\n\nb as (\n\n select * from {{ compare_model }}\n\n),\n\na_minus_b as (\n\n select {{compare_cols_csv}} from a\n {{ dbt.except() }}\n select {{compare_cols_csv}} from b\n\n),\n\nb_minus_a as (\n\n select {{compare_cols_csv}} from b\n {{ dbt.except() }}\n select {{compare_cols_csv}} from a\n\n),\n\nunioned as (\n\n select 'a_minus_b' as which_diff, a_minus_b.* from a_minus_b\n union all\n select 'b_minus_a' as which_diff, b_minus_a.* from b_minus_a\n\n)\n\nselect * from unioned\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.type_numeric", "macro.dbt.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "compare_model", "type": null, "description": ""}, {"name": "compare_columns", "type": null, "description": ""}, {"name": "exclude_columns", "type": null, "description": ""}, {"name": "precision", "type": null, "description": ""}], "created_at": 1784670933.915915, "supported_languages": null}, "macro.dbt_utils.test_equal_rowcount": {"name": "test_equal_rowcount", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "unique_id": "macro.dbt_utils.test_equal_rowcount", "macro_sql": "{% test equal_rowcount(model, compare_model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_equal_rowcount', 'dbt_utils')(model, compare_model, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_equal_rowcount"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "compare_model", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.917146, "supported_languages": null}, "macro.dbt_utils.default__test_equal_rowcount": {"name": "default__test_equal_rowcount", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "unique_id": "macro.dbt_utils.default__test_equal_rowcount", "macro_sql": "{% macro default__test_equal_rowcount(model, compare_model, group_by_columns) %}\n\n{#-- Needs to be set at parse time, before we return '' below --#}\n{{ config(fail_calc = 'sum(coalesce(diff_count, 0))') }}\n\n{#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n{%- if not execute -%}\n {{ return('') }}\n{% endif %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(', ') + ', ' %}\n {% set join_gb_cols %}\n {% for c in group_by_columns %}\n and a.{{c}} = b.{{c}}\n {% endfor %}\n {% endset %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n{#-- We must add a fake join key in case additional grouping variables are not provided --#}\n{#-- Redshift does not allow for dynamically created join conditions (e.g. full join on 1 = 1 --#}\n{#-- The same logic is used in fewer_rows_than. In case of changes, maintain consistent logic --#}\n{% set group_by_columns = ['id_dbtutils_test_equal_rowcount'] + group_by_columns %}\n{% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n\nwith a as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_equal_rowcount,\n count(*) as count_a \n from {{ model }}\n {{groupby_gb_cols}}\n\n\n),\nb as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_equal_rowcount,\n count(*) as count_b \n from {{ compare_model }}\n {{groupby_gb_cols}}\n\n),\nfinal as (\n\n select\n \n {% for c in group_by_columns -%}\n a.{{c}} as {{c}}_a,\n b.{{c}} as {{c}}_b,\n {% endfor %}\n\n count_a,\n count_b,\n abs(count_a - count_b) as diff_count\n\n from a\n full join b\n on\n a.id_dbtutils_test_equal_rowcount = b.id_dbtutils_test_equal_rowcount\n {{join_gb_cols}}\n\n\n)\n\nselect * from final\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "compare_model", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.9194114, "supported_languages": null}, "macro.dbt_utils.test_not_null_proportion": {"name": "test_not_null_proportion", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "unique_id": "macro.dbt_utils.test_not_null_proportion", "macro_sql": "{% macro test_not_null_proportion(model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_not_null_proportion', 'dbt_utils')(model, group_by_columns, **kwargs)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_null_proportion"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.920301, "supported_languages": null}, "macro.dbt_utils.default__test_not_null_proportion": {"name": "default__test_not_null_proportion", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "unique_id": "macro.dbt_utils.default__test_not_null_proportion", "macro_sql": "{% macro default__test_not_null_proportion(model, group_by_columns) %}\n\n{% set column_name = kwargs.get('column_name', kwargs.get('arg')) %}\n{% set at_least = kwargs.get('at_least', kwargs.get('arg')) %}\n{% set at_most = kwargs.get('at_most', kwargs.get('arg', 1)) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\nwith validation as (\n select\n {{select_gb_cols}}\n sum(case when {{ column_name }} is null then 0 else 1 end) / cast(count(*) as {{ dbt.type_numeric() }}) as not_null_proportion\n from {{ model }}\n {{groupby_gb_cols}}\n),\nvalidation_errors as (\n select\n {{select_gb_cols}}\n not_null_proportion\n from validation\n where not_null_proportion < {{ at_least }} or not_null_proportion > {{ at_most }}\n)\nselect\n *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.9219522, "supported_languages": null}, "macro.dbt_utils.test_recency": {"name": "test_recency", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "unique_id": "macro.dbt_utils.test_recency", "macro_sql": "{% test recency(model, field, datepart, interval, ignore_time_component=False, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_recency', 'dbt_utils')(model, field, datepart, interval, ignore_time_component, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_recency"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "field", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "ignore_time_component", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.9230275, "supported_languages": null}, "macro.dbt_utils.default__test_recency": {"name": "default__test_recency", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "unique_id": "macro.dbt_utils.default__test_recency", "macro_sql": "{% macro default__test_recency(model, field, datepart, interval, ignore_time_component, group_by_columns) %}\n\n{% set empty_invocation = flags.EMPTY is defined and flags.EMPTY %}\n\n{% set threshold = 'cast(' ~ dbt.dateadd(datepart, interval * -1, dbt.current_timestamp()) ~ ' as ' ~ ('date' if ignore_time_component else dbt.type_timestamp()) ~ ')' %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n\nwith recency as (\n\n select \n\n {{ select_gb_cols }}\n {% if ignore_time_component %}\n cast(max({{ field }}) as date) as most_recent\n {%- else %}\n max({{ field }}) as most_recent\n {%- endif %}\n\n from {{ model }}\n\n {{ groupby_gb_cols }}\n\n)\n\nselect\n\n {{ select_gb_cols }}\n most_recent,\n {{ threshold }} as threshold\n\nfrom recency\nwhere most_recent < {{ threshold }}\n{%- if not empty_invocation %}\n or most_recent is null\n{%- endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.current_timestamp", "macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "field", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "ignore_time_component", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.9249408, "supported_languages": null}, "macro.dbt_utils.test_relationships_where": {"name": "test_relationships_where", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "unique_id": "macro.dbt_utils.test_relationships_where", "macro_sql": "{% test relationships_where(model, column_name, to, field, from_condition=\"1=1\", to_condition=\"1=1\") %}\n {{ return(adapter.dispatch('test_relationships_where', 'dbt_utils')(model, column_name, to, field, from_condition, to_condition)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_relationships_where"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "to", "type": null, "description": ""}, {"name": "field", "type": null, "description": ""}, {"name": "from_condition", "type": null, "description": ""}, {"name": "to_condition", "type": null, "description": ""}], "created_at": 1784670933.9258735, "supported_languages": null}, "macro.dbt_utils.default__test_relationships_where": {"name": "default__test_relationships_where", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "unique_id": "macro.dbt_utils.default__test_relationships_where", "macro_sql": "{% macro default__test_relationships_where(model, column_name, to, field, from_condition=\"1=1\", to_condition=\"1=1\") %}\n\n{# T-SQL has no boolean data type so we use 1=1 which returns TRUE #}\n{# ref https://stackoverflow.com/a/7170753/3842610 #}\n\nwith left_table as (\n\n select\n {{column_name}} as id\n\n from {{model}}\n\n where {{column_name}} is not null\n and {{from_condition}}\n\n),\n\nright_table as (\n\n select\n {{field}} as id\n\n from {{to}}\n\n where {{field}} is not null\n and {{to_condition}}\n\n),\n\nexceptions as (\n\n select\n left_table.id,\n right_table.id as right_id\n\n from left_table\n\n left join right_table\n on left_table.id = right_table.id\n\n where right_table.id is null\n\n)\n\nselect * from exceptions\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "to", "type": null, "description": ""}, {"name": "field", "type": null, "description": ""}, {"name": "from_condition", "type": null, "description": ""}, {"name": "to_condition", "type": null, "description": ""}], "created_at": 1784670933.9265687, "supported_languages": null}, "macro.dbt_utils.test_at_least_one": {"name": "test_at_least_one", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "unique_id": "macro.dbt_utils.test_at_least_one", "macro_sql": "{% test at_least_one(model, column_name, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_at_least_one', 'dbt_utils')(model, column_name, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_at_least_one"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.927485, "supported_languages": null}, "macro.dbt_utils.default__test_at_least_one": {"name": "default__test_at_least_one", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "unique_id": "macro.dbt_utils.default__test_at_least_one", "macro_sql": "{% macro default__test_at_least_one(model, column_name, group_by_columns) %}\n\n{% set pruned_cols = [column_name] %}\n\n{% if group_by_columns|length() > 0 %}\n\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n {% set pruned_cols = group_by_columns %}\n\n {% if column_name not in pruned_cols %}\n {% do pruned_cols.append(column_name) %}\n {% endif %}\n\n{% endif %}\n\n{% set select_pruned_cols = pruned_cols|join(' ,') %}\n\nselect *\nfrom (\n with pruned_rows as (\n select\n {{ select_pruned_cols }}\n from {{ model }}\n {% if group_by_columns|length() == 0 %}\n where {{ column_name }} is not null\n limit 1\n {% endif %}\n )\n select\n {# In TSQL, subquery aggregate columns need aliases #}\n {# thus: a filler col name, 'filler_column' #}\n {{select_gb_cols}}\n count({{ column_name }}) as filler_column\n\n from pruned_rows\n\n {{groupby_gb_cols}}\n\n having count({{ column_name }}) = 0\n\n) validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.9292066, "supported_languages": null}, "macro.dbt_utils.test_mutually_exclusive_ranges": {"name": "test_mutually_exclusive_ranges", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "unique_id": "macro.dbt_utils.test_mutually_exclusive_ranges", "macro_sql": "{% test mutually_exclusive_ranges(model, lower_bound_column, upper_bound_column, partition_by=None, gaps='allowed', zero_length_range_allowed=False) %}\n {{ return(adapter.dispatch('test_mutually_exclusive_ranges', 'dbt_utils')(model, lower_bound_column, upper_bound_column, partition_by, gaps, zero_length_range_allowed)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_mutually_exclusive_ranges"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "lower_bound_column", "type": null, "description": ""}, {"name": "upper_bound_column", "type": null, "description": ""}, {"name": "partition_by", "type": null, "description": ""}, {"name": "gaps", "type": null, "description": ""}, {"name": "zero_length_range_allowed", "type": null, "description": ""}], "created_at": 1784670933.9307268, "supported_languages": null}, "macro.dbt_utils.default__test_mutually_exclusive_ranges": {"name": "default__test_mutually_exclusive_ranges", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "unique_id": "macro.dbt_utils.default__test_mutually_exclusive_ranges", "macro_sql": "{% macro default__test_mutually_exclusive_ranges(model, lower_bound_column, upper_bound_column, partition_by=None, gaps='allowed', zero_length_range_allowed=False) %}\n{% if gaps == 'not_allowed' %}\n {% set allow_gaps_operator='=' %}\n {% set allow_gaps_operator_in_words='equal_to' %}\n{% elif gaps == 'allowed' %}\n {% set allow_gaps_operator='<=' %}\n {% set allow_gaps_operator_in_words='less_than_or_equal_to' %}\n{% elif gaps == 'required' %}\n {% set allow_gaps_operator='<' %}\n {% set allow_gaps_operator_in_words='less_than' %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`gaps` argument for mutually_exclusive_ranges test must be one of ['not_allowed', 'allowed', 'required'] Got: '\" ~ gaps ~\"'.'\"\n ) }}\n{% endif %}\n{% if not zero_length_range_allowed %}\n {% set allow_zero_length_operator='<' %}\n {% set allow_zero_length_operator_in_words='less_than' %}\n{% elif zero_length_range_allowed %}\n {% set allow_zero_length_operator='<=' %}\n {% set allow_zero_length_operator_in_words='less_than_or_equal_to' %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`zero_length_range_allowed` argument for mutually_exclusive_ranges test must be one of [true, false] Got: '\" ~ zero_length_range_allowed ~\"'.'\"\n ) }}\n{% endif %}\n\n{% set partition_clause=\"partition by \" ~ partition_by if partition_by else '' %}\n\nwith window_functions as (\n\n select\n {% if partition_by %}\n {{ partition_by }} as partition_by_col,\n {% endif %}\n {{ lower_bound_column }} as lower_bound,\n {{ upper_bound_column }} as upper_bound,\n\n lead({{ lower_bound_column }}) over (\n {{ partition_clause }}\n order by {{ lower_bound_column }}, {{ upper_bound_column }}\n ) as next_lower_bound,\n\n row_number() over (\n {{ partition_clause }}\n order by {{ lower_bound_column }} desc, {{ upper_bound_column }} desc\n ) = 1 as is_last_record\n\n from {{ model }}\n\n),\n\ncalc as (\n -- We want to return records where one of our assumptions fails, so we'll use\n -- the `not` function with `and` statements so we can write our assumptions more cleanly\n select\n *,\n\n -- For each record: lower_bound should be < upper_bound.\n -- Coalesce it to return an error on the null case (implicit assumption\n -- these columns are not_null)\n coalesce(\n lower_bound {{ allow_zero_length_operator }} upper_bound,\n false\n ) as lower_bound_{{ allow_zero_length_operator_in_words }}_upper_bound,\n\n -- For each record: upper_bound {{ allow_gaps_operator }} the next lower_bound.\n -- Coalesce it to handle null cases for the last record.\n coalesce(\n upper_bound {{ allow_gaps_operator }} next_lower_bound,\n is_last_record,\n false\n ) as upper_bound_{{ allow_gaps_operator_in_words }}_next_lower_bound\n\n from window_functions\n\n),\n\nvalidation_errors as (\n\n select\n *\n from calc\n\n where not(\n -- THE FOLLOWING SHOULD BE TRUE --\n lower_bound_{{ allow_zero_length_operator_in_words }}_upper_bound\n and upper_bound_{{ allow_gaps_operator_in_words }}_next_lower_bound\n )\n)\n\nselect * from validation_errors\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "lower_bound_column", "type": null, "description": ""}, {"name": "upper_bound_column", "type": null, "description": ""}, {"name": "partition_by", "type": null, "description": ""}, {"name": "gaps", "type": null, "description": ""}, {"name": "zero_length_range_allowed", "type": null, "description": ""}], "created_at": 1784670933.9338837, "supported_languages": null}, "macro.dbt_utils.test_cardinality_equality": {"name": "test_cardinality_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "unique_id": "macro.dbt_utils.test_cardinality_equality", "macro_sql": "{% test cardinality_equality(model, column_name, to, field) %}\n {{ return(adapter.dispatch('test_cardinality_equality', 'dbt_utils')(model, column_name, to, field)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_cardinality_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "to", "type": null, "description": ""}, {"name": "field", "type": null, "description": ""}], "created_at": 1784670933.934682, "supported_languages": null}, "macro.dbt_utils.default__test_cardinality_equality": {"name": "default__test_cardinality_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "unique_id": "macro.dbt_utils.default__test_cardinality_equality", "macro_sql": "{% macro default__test_cardinality_equality(model, column_name, to, field) %}\n\n{# T-SQL does not let you use numbers as aliases for columns #}\n{# Thus, no \"GROUP BY 1\" #}\n\nwith table_a as (\nselect\n {{ column_name }},\n count(*) as num_rows\nfrom {{ model }}\ngroup by {{ column_name }}\n),\n\ntable_b as (\nselect\n {{ field }},\n count(*) as num_rows\nfrom {{ to }}\ngroup by {{ field }}\n),\n\nexcept_a as (\n select *\n from table_a\n {{ dbt.except() }}\n select *\n from table_b\n),\n\nexcept_b as (\n select *\n from table_b\n {{ dbt.except() }}\n select *\n from table_a\n),\n\nunioned as (\n select *\n from except_a\n union all\n select *\n from except_b\n)\n\nselect *\nfrom unioned\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "column_name", "type": null, "description": ""}, {"name": "to", "type": null, "description": ""}, {"name": "field", "type": null, "description": ""}], "created_at": 1784670933.9353917, "supported_languages": null}, "macro.dbt_utils.test_fewer_rows_than": {"name": "test_fewer_rows_than", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "unique_id": "macro.dbt_utils.test_fewer_rows_than", "macro_sql": "{% test fewer_rows_than(model, compare_model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_fewer_rows_than', 'dbt_utils')(model, compare_model, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_fewer_rows_than"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "compare_model", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.936469, "supported_languages": null}, "macro.dbt_utils.default__test_fewer_rows_than": {"name": "default__test_fewer_rows_than", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "unique_id": "macro.dbt_utils.default__test_fewer_rows_than", "macro_sql": "{% macro default__test_fewer_rows_than(model, compare_model, group_by_columns) %}\n\n{{ config(fail_calc = 'sum(coalesce(row_count_delta, 0))') }}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set join_gb_cols %}\n {% for c in group_by_columns %}\n and a.{{c}} = b.{{c}}\n {% endfor %}\n {% endset %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n{#-- We must add a fake join key in case additional grouping variables are not provided --#}\n{#-- Redshift does not allow for dynamically created join conditions (e.g. full join on 1 = 1 --#}\n{#-- The same logic is used in equal_rowcount. In case of changes, maintain consistent logic --#}\n{% set group_by_columns = ['id_dbtutils_test_fewer_rows_than'] + group_by_columns %}\n{% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n\n\nwith a as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_fewer_rows_than,\n count(*) as count_our_model \n from {{ model }}\n {{ groupby_gb_cols }}\n\n),\nb as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_fewer_rows_than,\n count(*) as count_comparison_model \n from {{ compare_model }}\n {{ groupby_gb_cols }}\n\n),\ncounts as (\n\n select\n\n {% for c in group_by_columns -%}\n a.{{c}} as {{c}}_a,\n b.{{c}} as {{c}}_b,\n {% endfor %}\n\n count_our_model,\n count_comparison_model\n from a\n full join b on \n a.id_dbtutils_test_fewer_rows_than = b.id_dbtutils_test_fewer_rows_than\n {{ join_gb_cols }}\n\n),\nfinal as (\n\n select *,\n case\n -- fail the test if we have more rows than the reference model and return the row count delta\n when count_our_model > count_comparison_model then (count_our_model - count_comparison_model)\n -- fail the test if they are the same number\n when count_our_model = count_comparison_model then 1\n -- pass the test if the delta is positive (i.e. return the number 0)\n else 0\n end as row_count_delta\n from counts\n\n)\n\nselect * from final\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "compare_model", "type": null, "description": ""}, {"name": "group_by_columns", "type": null, "description": ""}], "created_at": 1784670933.9384825, "supported_languages": null}, "macro.dbt_utils.test_unique_combination_of_columns": {"name": "test_unique_combination_of_columns", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "unique_id": "macro.dbt_utils.test_unique_combination_of_columns", "macro_sql": "{% test unique_combination_of_columns(model, combination_of_columns, quote_columns=false) %}\n {{ return(adapter.dispatch('test_unique_combination_of_columns', 'dbt_utils')(model, combination_of_columns, quote_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_unique_combination_of_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "combination_of_columns", "type": null, "description": ""}, {"name": "quote_columns", "type": null, "description": ""}], "created_at": 1784670933.9393306, "supported_languages": null}, "macro.dbt_utils.default__test_unique_combination_of_columns": {"name": "default__test_unique_combination_of_columns", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "unique_id": "macro.dbt_utils.default__test_unique_combination_of_columns", "macro_sql": "{% macro default__test_unique_combination_of_columns(model, combination_of_columns, quote_columns=false) %}\n\n{% if not quote_columns %}\n {%- set column_list=combination_of_columns %}\n{% elif quote_columns %}\n {%- set column_list=[] %}\n {% for column in combination_of_columns -%}\n {% do column_list.append( adapter.quote(column) ) %}\n {%- endfor %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`quote_columns` argument for unique_combination_of_columns test must be one of [True, False] Got: '\" ~ quote ~\"'.'\"\n ) }}\n{% endif %}\n\n{%- set columns_csv=column_list | join(', ') %}\n\n\nwith validation_errors as (\n\n select\n {{ columns_csv }}\n from {{ model }}\n group by {{ columns_csv }}\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "model", "type": null, "description": ""}, {"name": "combination_of_columns", "type": null, "description": ""}, {"name": "quote_columns", "type": null, "description": ""}], "created_at": 1784670933.9405942, "supported_languages": null}, "macro.spark_utils.get_tables": {"name": "get_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_tables", "macro_sql": "{% macro get_tables(table_regex_pattern='.*') %}\n\n {% set tables = [] %}\n {% for database in spark__list_schemas('not_used') %}\n {% for table in spark__list_relations_without_caching(database[0]) %}\n {% set db_tablename = database[0] ~ \".\" ~ table[1] %}\n {% set is_match = modules.re.match(table_regex_pattern, db_tablename) %}\n {% if is_match %}\n {% call statement('table_detail', fetch_result=True) -%}\n describe extended {{ db_tablename }}\n {% endcall %}\n\n {% set table_type = load_result('table_detail').table|reverse|selectattr(0, 'in', ('type', 'TYPE', 'Type'))|first %}\n {% if table_type[1]|lower != 'view' %}\n {{ tables.append(db_tablename) }}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% endfor %}\n {{ return(tables) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "table_regex_pattern", "type": null, "description": ""}], "created_at": 1784670933.9440634, "supported_languages": null}, "macro.spark_utils.get_delta_tables": {"name": "get_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_delta_tables", "macro_sql": "{% macro get_delta_tables(table_regex_pattern='.*') %}\n\n {% set delta_tables = [] %}\n {% for db_tablename in get_tables(table_regex_pattern) %}\n {% call statement('table_detail', fetch_result=True) -%}\n describe extended {{ db_tablename }}\n {% endcall %}\n\n {% set table_type = load_result('table_detail').table|reverse|selectattr(0, 'in', ('provider', 'PROVIDER', 'Provider'))|first %}\n {% if table_type[1]|lower == 'delta' %}\n {{ delta_tables.append(db_tablename) }}\n {% endif %}\n {% endfor %}\n {{ return(delta_tables) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_tables", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "table_regex_pattern", "type": null, "description": ""}], "created_at": 1784670933.945551, "supported_languages": null}, "macro.spark_utils.get_statistic_columns": {"name": "get_statistic_columns", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_statistic_columns", "macro_sql": "{% macro get_statistic_columns(table) %}\n\n {% call statement('input_columns', fetch_result=True) %}\n SHOW COLUMNS IN {{ table }}\n {% endcall %}\n {% set input_columns = load_result('input_columns').table %}\n\n {% set output_columns = [] %}\n {% for column in input_columns %}\n {% call statement('column_information', fetch_result=True) %}\n DESCRIBE TABLE {{ table }} `{{ column[0] }}`\n {% endcall %}\n {% if not load_result('column_information').table[1][1].startswith('struct') and not load_result('column_information').table[1][1].startswith('array') %}\n {{ output_columns.append('`' ~ column[0] ~ '`') }}\n {% endif %}\n {% endfor %}\n {{ return(output_columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "table", "type": null, "description": ""}], "created_at": 1784670933.947298, "supported_languages": null}, "macro.spark_utils.spark_optimize_delta_tables": {"name": "spark_optimize_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_optimize_delta_tables", "macro_sql": "{% macro spark_optimize_delta_tables(table_regex_pattern='.*') %}\n\n {% for table in get_delta_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Optimizing \" ~ table) }}\n {% do run_query(\"optimize \" ~ table) %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "table_regex_pattern", "type": null, "description": ""}], "created_at": 1784670933.9487233, "supported_languages": null}, "macro.spark_utils.spark_vacuum_delta_tables": {"name": "spark_vacuum_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_vacuum_delta_tables", "macro_sql": "{% macro spark_vacuum_delta_tables(table_regex_pattern='.*') %}\n\n {% for table in get_delta_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Vacuuming \" ~ table) }}\n {% do run_query(\"vacuum \" ~ table) %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "table_regex_pattern", "type": null, "description": ""}], "created_at": 1784670933.950156, "supported_languages": null}, "macro.spark_utils.spark_analyze_tables": {"name": "spark_analyze_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_analyze_tables", "macro_sql": "{% macro spark_analyze_tables(table_regex_pattern='.*') %}\n\n {% for table in get_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set columns = get_statistic_columns(table) | join(',') %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Analyzing \" ~ table) }}\n {% if columns != '' %}\n {% do run_query(\"analyze table \" ~ table ~ \" compute statistics for columns \" ~ columns) %}\n {% endif %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_tables", "macro.spark_utils.get_statistic_columns", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "table_regex_pattern", "type": null, "description": ""}], "created_at": 1784670933.9519477, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_pattern": {"name": "spark__get_relations_by_pattern", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_relations_by_pattern", "macro_sql": "{% macro spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n show table extended in {{ schema_pattern }} like '{{ table_pattern }}'\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=None,\n schema=row[0],\n identifier=row[1],\n type=('view' if 'Type: VIEW' in row[3] else 'table')\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_pattern", "type": null, "description": ""}, {"name": "table_pattern", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.9542718, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_prefix": {"name": "spark__get_relations_by_prefix", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_relations_by_prefix", "macro_sql": "{% macro spark__get_relations_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {% set table_pattern = table_pattern ~ '*' %}\n {{ return(spark_utils.spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_pattern", "type": null, "description": ""}, {"name": "table_pattern", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.9549265, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_pattern": {"name": "spark__get_tables_by_pattern", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_tables_by_pattern", "macro_sql": "{% macro spark__get_tables_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(spark_utils.spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_pattern", "type": null, "description": ""}, {"name": "table_pattern", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.9554837, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_prefix": {"name": "spark__get_tables_by_prefix", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_tables_by_prefix", "macro_sql": "{% macro spark__get_tables_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(spark_utils.spark__get_relations_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_prefix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "schema_pattern", "type": null, "description": ""}, {"name": "table_pattern", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "database", "type": null, "description": ""}], "created_at": 1784670933.9560175, "supported_languages": null}, "macro.spark_utils.spark__datediff": {"name": "spark__datediff", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/datediff.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datediff.sql", "unique_id": "macro.spark_utils.spark__datediff", "macro_sql": "{% macro spark__datediff(first_date, second_date, datepart) %}\n\n {%- if datepart in ['day', 'week', 'month', 'quarter', 'year'] -%}\n \n {# make sure the dates are real, otherwise raise an error asap #}\n {% set first_date = spark_utils.assert_not_null('date', first_date) %}\n {% set second_date = spark_utils.assert_not_null('date', second_date) %}\n \n {%- endif -%}\n \n {%- if datepart == 'day' -%}\n \n datediff({{second_date}}, {{first_date}})\n \n {%- elif datepart == 'week' -%}\n \n case when {{first_date}} < {{second_date}}\n then floor(datediff({{second_date}}, {{first_date}})/7)\n else ceil(datediff({{second_date}}, {{first_date}})/7)\n end\n \n -- did we cross a week boundary (Sunday)?\n + case\n when {{first_date}} < {{second_date}} and dayofweek({{second_date}}) < dayofweek({{first_date}}) then 1\n when {{first_date}} > {{second_date}} and dayofweek({{second_date}}) > dayofweek({{first_date}}) then -1\n else 0 end\n\n {%- elif datepart == 'month' -%}\n\n case when {{first_date}} < {{second_date}}\n then floor(months_between(date({{second_date}}), date({{first_date}})))\n else ceil(months_between(date({{second_date}}), date({{first_date}})))\n end\n \n -- did we cross a month boundary?\n + case\n when {{first_date}} < {{second_date}} and dayofmonth({{second_date}}) < dayofmonth({{first_date}}) then 1\n when {{first_date}} > {{second_date}} and dayofmonth({{second_date}}) > dayofmonth({{first_date}}) then -1\n else 0 end\n \n {%- elif datepart == 'quarter' -%}\n \n case when {{first_date}} < {{second_date}}\n then floor(months_between(date({{second_date}}), date({{first_date}}))/3)\n else ceil(months_between(date({{second_date}}), date({{first_date}}))/3)\n end\n \n -- did we cross a quarter boundary?\n + case\n when {{first_date}} < {{second_date}} and (\n (dayofyear({{second_date}}) - (quarter({{second_date}}) * 365/4))\n < (dayofyear({{first_date}}) - (quarter({{first_date}}) * 365/4))\n ) then 1\n when {{first_date}} > {{second_date}} and (\n (dayofyear({{second_date}}) - (quarter({{second_date}}) * 365/4))\n > (dayofyear({{first_date}}) - (quarter({{first_date}}) * 365/4))\n ) then -1\n else 0 end\n\n {%- elif datepart == 'year' -%}\n \n year({{second_date}}) - year({{first_date}})\n\n {%- elif datepart in ('hour', 'minute', 'second', 'millisecond', 'microsecond') -%}\n \n {%- set divisor -%} \n {%- if datepart == 'hour' -%} 3600\n {%- elif datepart == 'minute' -%} 60\n {%- elif datepart == 'second' -%} 1\n {%- elif datepart == 'millisecond' -%} (1/1000)\n {%- elif datepart == 'microsecond' -%} (1/1000000)\n {%- endif -%}\n {%- endset -%}\n\n case when {{first_date}} < {{second_date}}\n then ceil((\n {# make sure the timestamps are real, otherwise raise an error asap #}\n {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', second_date)) }}\n - {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', first_date)) }}\n ) / {{divisor}})\n else floor((\n {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', second_date)) }}\n - {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', first_date)) }}\n ) / {{divisor}})\n end\n \n {% if datepart == 'millisecond' %}\n + cast(date_format({{second_date}}, 'SSS') as int)\n - cast(date_format({{first_date}}, 'SSS') as int)\n {% endif %}\n \n {% if datepart == 'microsecond' %} \n {% set capture_str = '[0-9]{4}-[0-9]{2}-[0-9]{2}.[0-9]{2}:[0-9]{2}:[0-9]{2}.([0-9]{6})' %}\n -- Spark doesn't really support microseconds, so this is a massive hack!\n -- It will only work if the timestamp-string is of the format\n -- 'yyyy-MM-dd-HH mm.ss.SSSSSS'\n + cast(regexp_extract({{second_date}}, '{{capture_str}}', 1) as int)\n - cast(regexp_extract({{first_date}}, '{{capture_str}}', 1) as int) \n {% endif %}\n\n {%- else -%}\n\n {{ exceptions.raise_compiler_error(\"macro datediff not implemented for datepart ~ '\" ~ datepart ~ \"' ~ on Spark\") }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "first_date", "type": null, "description": ""}, {"name": "second_date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.9629872, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp": {"name": "spark__current_timestamp", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "unique_id": "macro.spark_utils.spark__current_timestamp", "macro_sql": "{% macro spark__current_timestamp() %}\n current_timestamp()\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.9633079, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp_in_utc": {"name": "spark__current_timestamp_in_utc", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "unique_id": "macro.spark_utils.spark__current_timestamp_in_utc", "macro_sql": "{% macro spark__current_timestamp_in_utc() %}\n unix_timestamp()\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.963479, "supported_languages": null}, "macro.spark_utils.spark__dateadd": {"name": "spark__dateadd", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "unique_id": "macro.spark_utils.spark__dateadd", "macro_sql": "{% macro spark__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n {%- set clock_component -%}\n {# make sure the dates + timestamps are real, otherwise raise an error asap #}\n to_unix_timestamp({{ spark_utils.assert_not_null('to_timestamp', from_date_or_timestamp) }})\n - to_unix_timestamp({{ spark_utils.assert_not_null('date', from_date_or_timestamp) }})\n {%- endset -%}\n\n {%- if datepart in ['day', 'week'] -%}\n \n {%- set multiplier = 7 if datepart == 'week' else 1 -%}\n\n to_timestamp(\n to_unix_timestamp(\n date_add(\n {{ spark_utils.assert_not_null('date', from_date_or_timestamp) }},\n cast({{interval}} * {{multiplier}} as int)\n )\n ) + {{clock_component}}\n )\n\n {%- elif datepart in ['month', 'quarter', 'year'] -%}\n \n {%- set multiplier -%} \n {%- if datepart == 'month' -%} 1\n {%- elif datepart == 'quarter' -%} 3\n {%- elif datepart == 'year' -%} 12\n {%- endif -%}\n {%- endset -%}\n\n to_timestamp(\n to_unix_timestamp(\n add_months(\n {{ spark_utils.assert_not_null('date', from_date_or_timestamp) }},\n cast({{interval}} * {{multiplier}} as int)\n )\n ) + {{clock_component}}\n )\n\n {%- elif datepart in ('hour', 'minute', 'second', 'millisecond', 'microsecond') -%}\n \n {%- set multiplier -%} \n {%- if datepart == 'hour' -%} 3600\n {%- elif datepart == 'minute' -%} 60\n {%- elif datepart == 'second' -%} 1\n {%- elif datepart == 'millisecond' -%} (1/1000000)\n {%- elif datepart == 'microsecond' -%} (1/1000000)\n {%- endif -%}\n {%- endset -%}\n\n to_timestamp(\n {{ spark_utils.assert_not_null('to_unix_timestamp', from_date_or_timestamp) }}\n + cast({{interval}} * {{multiplier}} as int)\n )\n\n {%- else -%}\n\n {{ exceptions.raise_compiler_error(\"macro dateadd not implemented for datepart ~ '\" ~ datepart ~ \"' ~ on Spark\") }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "from_date_or_timestamp", "type": null, "description": ""}], "created_at": 1784670933.9671972, "supported_languages": null}, "macro.spark_utils.spark__concat": {"name": "spark__concat", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/concat.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/concat.sql", "unique_id": "macro.spark_utils.spark__concat", "macro_sql": "{% macro spark__concat(fields) -%}\n concat({{ fields|join(', ') }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "fields", "type": null, "description": ""}], "created_at": 1784670933.9675796, "supported_languages": null}, "macro.spark_utils.spark__type_numeric": {"name": "spark__type_numeric", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "unique_id": "macro.spark_utils.spark__type_numeric", "macro_sql": "{% macro spark__type_numeric() %}\n decimal(28, 6)\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670933.9678164, "supported_languages": null}, "macro.spark_utils.spark__split_part": {"name": "spark__split_part", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/split_part.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/split_part.sql", "unique_id": "macro.spark_utils.spark__split_part", "macro_sql": "{% macro spark__split_part(string_text, delimiter_text, part_number) %}\n\n {% set delimiter_expr %}\n \n -- escape if starts with a special character\n case when regexp_extract({{ delimiter_text }}, '([^A-Za-z0-9])(.*)', 1) != '_'\n then concat('\\\\', {{ delimiter_text }})\n else {{ delimiter_text }} end\n \n {% endset %}\n\n {% set split_part_expr %}\n \n split(\n {{ string_text }},\n {{ delimiter_expr }}\n )[({{ part_number - 1 }})]\n \n {% endset %}\n \n {{ return(split_part_expr) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string_text", "type": null, "description": ""}, {"name": "delimiter_text", "type": null, "description": ""}, {"name": "part_number", "type": null, "description": ""}], "created_at": 1784670933.968786, "supported_languages": null}, "macro.spark_utils.assert_not_null": {"name": "assert_not_null", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "unique_id": "macro.spark_utils.assert_not_null", "macro_sql": "{% macro assert_not_null(function, arg) -%}\n {{ return(adapter.dispatch('assert_not_null', 'spark_utils')(function, arg)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.spark_utils.default__assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "function", "type": null, "description": ""}, {"name": "arg", "type": null, "description": ""}], "created_at": 1784670933.969384, "supported_languages": null}, "macro.spark_utils.default__assert_not_null": {"name": "default__assert_not_null", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "unique_id": "macro.spark_utils.default__assert_not_null", "macro_sql": "{% macro default__assert_not_null(function, arg) %}\n\n coalesce({{function}}({{arg}}), nvl2({{function}}({{arg}}), assert_true({{function}}({{arg}}) is not null), null))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "function", "type": null, "description": ""}, {"name": "arg", "type": null, "description": ""}], "created_at": 1784670933.969795, "supported_languages": null}, "macro.spark_utils.spark__convert_timezone": {"name": "spark__convert_timezone", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/snowplow/convert_timezone.sql", "original_file_path": "macros/snowplow/convert_timezone.sql", "unique_id": "macro.spark_utils.spark__convert_timezone", "macro_sql": "{% macro spark__convert_timezone(in_tz, out_tz, in_timestamp) %}\n from_utc_timestamp(to_utc_timestamp({{in_timestamp}}, {{in_tz}}), {{out_tz}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "in_tz", "type": null, "description": ""}, {"name": "out_tz", "type": null, "description": ""}, {"name": "in_timestamp", "type": null, "description": ""}], "created_at": 1784670933.970231, "supported_languages": null}, "macro.fivetran_utils.wrap_in_quotes": {"name": "wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.wrap_in_quotes", "macro_sql": "{%- macro wrap_in_quotes(object_to_quote) -%}\n\n{{ return(adapter.dispatch('wrap_in_quotes', 'fivetran_utils')(object_to_quote)) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.fivetran_utils.postgres__wrap_in_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "object_to_quote", "type": null, "description": ""}], "created_at": 1784670933.9708428, "supported_languages": null}, "macro.fivetran_utils.default__wrap_in_quotes": {"name": "default__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.default__wrap_in_quotes", "macro_sql": "{%- macro default__wrap_in_quotes(object_to_quote) -%}\n{# bigquery, spark, databricks #}\n `{{ object_to_quote }}`\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "object_to_quote", "type": null, "description": ""}], "created_at": 1784670933.9710982, "supported_languages": null}, "macro.fivetran_utils.snowflake__wrap_in_quotes": {"name": "snowflake__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.snowflake__wrap_in_quotes", "macro_sql": "{%- macro snowflake__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote | upper }}\"\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "object_to_quote", "type": null, "description": ""}], "created_at": 1784670933.971352, "supported_languages": null}, "macro.fivetran_utils.redshift__wrap_in_quotes": {"name": "redshift__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.redshift__wrap_in_quotes", "macro_sql": "{%- macro redshift__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote }}\"\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "object_to_quote", "type": null, "description": ""}], "created_at": 1784670933.9715674, "supported_languages": null}, "macro.fivetran_utils.postgres__wrap_in_quotes": {"name": "postgres__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.postgres__wrap_in_quotes", "macro_sql": "{%- macro postgres__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote }}\"\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "object_to_quote", "type": null, "description": ""}], "created_at": 1784670933.9717798, "supported_languages": null}, "macro.fivetran_utils.persist_pass_through_columns": {"name": "persist_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/persist_pass_through_columns.sql", "original_file_path": "macros/persist_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.persist_pass_through_columns", "macro_sql": "{% macro persist_pass_through_columns(pass_through_variable, identifier=none, transform='') %}\n\n{% if var(pass_through_variable, none) %}\n {% for field in var(pass_through_variable) %}\n , {{ transform ~ '(' ~ (identifier ~ '.' if identifier else '') ~ (field.alias if field.alias else field.name) ~ ')' }} as {{ field.alias if field.alias else field.name }}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "pass_through_variable", "type": null, "description": ""}, {"name": "identifier", "type": null, "description": ""}, {"name": "transform", "type": null, "description": ""}], "created_at": 1784670933.9731274, "supported_languages": null}, "macro.fivetran_utils.fill_staging_columns": {"name": "fill_staging_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "unique_id": "macro.fivetran_utils.fill_staging_columns", "macro_sql": "{% macro fill_staging_columns(source_columns, staging_columns) %}\n\n{%- set source_column_names = source_columns|map(attribute='name')|map('lower')|list -%}\n{%- set using_source_casing = var('fivetran_using_source_casing', false) -%}\n\n{%- for column in staging_columns %}\n {%- if column.name|lower in source_column_names %}\n {%- if using_source_casing %}\n {%- set column_alias = column.alias if 'alias' in column else column.name %}\n {{ adapter.quote(column.name) }} as {{ adapter.quote(column_alias|upper if target.type == 'snowflake' else column_alias) }}\n {%- else %}\n {{ fivetran_utils.quote_column(column) }} as\n {%- if 'alias' in column %} {{ column.alias }}{% else %} {{ fivetran_utils.quote_column(column) }}{% endif %}\n {%- endif %}\n {%- else %}\n cast(null as {{ column.datatype }}) as\n {%- if 'alias' in column %} {{ column.alias }}{% else %} {{ fivetran_utils.quote_column(column) }}{% endif %}\n {%- endif %}{{ ',' if not loop.last }}\n{%- endfor %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.quote_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source_columns", "type": null, "description": ""}, {"name": "staging_columns", "type": null, "description": ""}], "created_at": 1784670933.975973, "supported_languages": null}, "macro.fivetran_utils.quote_column": {"name": "quote_column", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "unique_id": "macro.fivetran_utils.quote_column", "macro_sql": "{% macro quote_column(column) %}\n {%- if 'quote' in column %}\n {%- if column.quote %}\n {%- if target.type in ('bigquery', 'spark', 'databricks') %}\n `{{ column.name }}`\n {%- elif target.type == 'snowflake' %}\n \"{{ column.name | upper }}\"\n {%- else %}\n \"{{ column.name }}\"\n {%- endif %}\n {%- else %}{{ column.name }}\n {%- endif %}\n {%- else %}{{ column.name }}\n {%- endif %}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "column", "type": null, "description": ""}], "created_at": 1784670933.977032, "supported_languages": null}, "macro.fivetran_utils.percentile": {"name": "percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.percentile", "macro_sql": "{% macro percentile(percentile_field, partition_field, percent) -%}\n\n{{ adapter.dispatch('percentile', 'fivetran_utils') (percentile_field, partition_field, percent) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__percentile"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "percentile_field", "type": null, "description": ""}, {"name": "partition_field", "type": null, "description": ""}, {"name": "percent", "type": null, "description": ""}], "created_at": 1784670933.9778612, "supported_languages": null}, "macro.fivetran_utils.default__percentile": {"name": "default__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.default__percentile", "macro_sql": "{% macro default__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n over ( partition by {{ partition_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "percentile_field", "type": null, "description": ""}, {"name": "partition_field", "type": null, "description": ""}, {"name": "percent", "type": null, "description": ""}], "created_at": 1784670933.9782302, "supported_languages": null}, "macro.fivetran_utils.redshift__percentile": {"name": "redshift__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.redshift__percentile", "macro_sql": "{% macro redshift__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n over ( partition by {{ partition_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "percentile_field", "type": null, "description": ""}, {"name": "partition_field", "type": null, "description": ""}, {"name": "percent", "type": null, "description": ""}], "created_at": 1784670933.9785686, "supported_languages": null}, "macro.fivetran_utils.bigquery__percentile": {"name": "bigquery__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.bigquery__percentile", "macro_sql": "{% macro bigquery__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percentile_field }}, \n {{ percent }}) \n over (partition by {{ partition_field }} \n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "percentile_field", "type": null, "description": ""}, {"name": "partition_field", "type": null, "description": ""}, {"name": "percent", "type": null, "description": ""}], "created_at": 1784670933.9789147, "supported_languages": null}, "macro.fivetran_utils.postgres__percentile": {"name": "postgres__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.postgres__percentile", "macro_sql": "{% macro postgres__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n /* have to group by partition field */\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "percentile_field", "type": null, "description": ""}, {"name": "partition_field", "type": null, "description": ""}, {"name": "percent", "type": null, "description": ""}], "created_at": 1784670933.9792356, "supported_languages": null}, "macro.fivetran_utils.spark__percentile": {"name": "spark__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.spark__percentile", "macro_sql": "{% macro spark__percentile(percentile_field, partition_field, percent) %}\n\n percentile( \n {{ percentile_field }}, \n {{ percent }}) \n over (partition by {{ partition_field }} \n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "percentile_field", "type": null, "description": ""}, {"name": "partition_field", "type": null, "description": ""}, {"name": "percent", "type": null, "description": ""}], "created_at": 1784670933.9795663, "supported_languages": null}, "macro.fivetran_utils.collect_freshness": {"name": "collect_freshness", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "unique_id": "macro.fivetran_utils.collect_freshness", "macro_sql": "{% macro collect_freshness(source, loaded_at_field, filter) %}\n {{ return(adapter.dispatch('collect_freshness')(source, loaded_at_field, filter))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source", "type": null, "description": ""}, {"name": "loaded_at_field", "type": null, "description": ""}, {"name": "filter", "type": null, "description": ""}], "created_at": 1784670933.9804957, "supported_languages": null}, "macro.fivetran_utils.default__collect_freshness": {"name": "default__collect_freshness", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "unique_id": "macro.fivetran_utils.default__collect_freshness", "macro_sql": "{% macro default__collect_freshness(source, loaded_at_field, filter) %}\n {% call statement('collect_freshness', fetch_result=True, auto_begin=False) -%}\n\n {%- set enabled_array = [] -%}\n {% for node in graph.sources.values() %}\n {% if node.identifier == source.identifier %}\n {% if (node.meta['is_enabled'] | default(true)) %}\n {%- do enabled_array.append(1) -%}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% set is_enabled = (enabled_array != []) %}\n\n select\n {% if is_enabled %}\n max({{ loaded_at_field }})\n {% else %} \n {{ current_timestamp() }} {% endif %} as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n\n {% if is_enabled %}\n from {{ source }}\n {% if filter %}\n where {{ filter }}\n {% endif %}\n {% endif %}\n\n {% endcall %}\n\n {% if dbt_version.split('.') | map('int') | list >= [1, 5, 0] %}\n {{ return(load_result('collect_freshness')) }}\n {% else %}\n {{ return(load_result('collect_freshness').table) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "source", "type": null, "description": ""}, {"name": "loaded_at_field", "type": null, "description": ""}, {"name": "filter", "type": null, "description": ""}], "created_at": 1784670933.983011, "supported_languages": null}, "macro.fivetran_utils.extract_url_parameter": {"name": "extract_url_parameter", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/extract_url_parameter.sql", "original_file_path": "macros/extract_url_parameter.sql", "unique_id": "macro.fivetran_utils.extract_url_parameter", "macro_sql": "{% macro extract_url_parameter(field, url_parameter) -%}\n\n{{ adapter.dispatch('extract_url_parameter', 'fivetran_utils') (field, url_parameter) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__extract_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "url_parameter", "type": null, "description": ""}], "created_at": 1784670933.9836524, "supported_languages": null}, "macro.fivetran_utils.default__extract_url_parameter": {"name": "default__extract_url_parameter", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/extract_url_parameter.sql", "original_file_path": "macros/extract_url_parameter.sql", "unique_id": "macro.fivetran_utils.default__extract_url_parameter", "macro_sql": "{% macro default__extract_url_parameter(field, url_parameter) -%}\n\n{{ dbt_utils.get_url_parameter(field, url_parameter) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "url_parameter", "type": null, "description": ""}], "created_at": 1784670933.9839602, "supported_languages": null}, "macro.fivetran_utils.spark__extract_url_parameter": {"name": "spark__extract_url_parameter", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/extract_url_parameter.sql", "original_file_path": "macros/extract_url_parameter.sql", "unique_id": "macro.fivetran_utils.spark__extract_url_parameter", "macro_sql": "{% macro spark__extract_url_parameter(field, url_parameter) -%}\n\n{%- set formatted_url_parameter = \"'\" + url_parameter + \"=([^&]+)'\" -%}\nnullif(regexp_extract({{ field }}, {{ formatted_url_parameter }}, 1), '')\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "url_parameter", "type": null, "description": ""}], "created_at": 1784670933.9843872, "supported_languages": null}, "macro.fivetran_utils.string_agg": {"name": "string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.string_agg", "macro_sql": "{% macro string_agg(field_to_agg, delimiter) -%}\n\n{{ adapter.dispatch('string_agg', 'fivetran_utils') (field_to_agg, delimiter) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__string_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_to_agg", "type": null, "description": ""}, {"name": "delimiter", "type": null, "description": ""}], "created_at": 1784670933.9850397, "supported_languages": null}, "macro.fivetran_utils.default__string_agg": {"name": "default__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.default__string_agg", "macro_sql": "{% macro default__string_agg(field_to_agg, delimiter) %}\n string_agg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_to_agg", "type": null, "description": ""}, {"name": "delimiter", "type": null, "description": ""}], "created_at": 1784670933.9853406, "supported_languages": null}, "macro.fivetran_utils.snowflake__string_agg": {"name": "snowflake__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.snowflake__string_agg", "macro_sql": "{% macro snowflake__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_to_agg", "type": null, "description": ""}, {"name": "delimiter", "type": null, "description": ""}], "created_at": 1784670933.985614, "supported_languages": null}, "macro.fivetran_utils.redshift__string_agg": {"name": "redshift__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.redshift__string_agg", "macro_sql": "{% macro redshift__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_to_agg", "type": null, "description": ""}, {"name": "delimiter", "type": null, "description": ""}], "created_at": 1784670933.9858818, "supported_languages": null}, "macro.fivetran_utils.spark__string_agg": {"name": "spark__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.spark__string_agg", "macro_sql": "{% macro spark__string_agg(field_to_agg, delimiter) %}\n -- collect set will remove duplicates\n replace(replace(replace(cast( collect_set({{ field_to_agg }}) as string), '[', ''), ']', ''), ', ', {{ delimiter }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_to_agg", "type": null, "description": ""}, {"name": "delimiter", "type": null, "description": ""}], "created_at": 1784670933.9861846, "supported_languages": null}, "macro.fivetran_utils.array_agg": {"name": "array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.array_agg", "macro_sql": "{% macro array_agg(field_to_agg) -%}\n\n{{ adapter.dispatch('array_agg', 'fivetran_utils') (field_to_agg) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__array_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_to_agg", "type": null, "description": ""}], "created_at": 1784670933.9866745, "supported_languages": null}, "macro.fivetran_utils.default__array_agg": {"name": "default__array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.default__array_agg", "macro_sql": "{% macro default__array_agg(field_to_agg) %}\n array_agg({{ field_to_agg }})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_to_agg", "type": null, "description": ""}], "created_at": 1784670933.9868956, "supported_languages": null}, "macro.fivetran_utils.redshift__array_agg": {"name": "redshift__array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.redshift__array_agg", "macro_sql": "{% macro redshift__array_agg(field_to_agg) %}\n listagg({{ field_to_agg }}, ',')\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field_to_agg", "type": null, "description": ""}], "created_at": 1784670933.9871306, "supported_languages": null}, "macro.fivetran_utils.source_relation": {"name": "source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "unique_id": "macro.fivetran_utils.source_relation", "macro_sql": "{% macro source_relation(union_schema_variable='union_schemas', union_database_variable='union_databases') -%}\n\n{{ adapter.dispatch('source_relation', 'fivetran_utils') (union_schema_variable, union_database_variable) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__source_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "union_schema_variable", "type": null, "description": ""}, {"name": "union_database_variable", "type": null, "description": ""}], "created_at": 1784670933.9878457, "supported_languages": null}, "macro.fivetran_utils.default__source_relation": {"name": "default__source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "unique_id": "macro.fivetran_utils.default__source_relation", "macro_sql": "{% macro default__source_relation(union_schema_variable, union_database_variable) %}\n\n{% if var(union_schema_variable, none) %}\n, case\n {% for schema in var(union_schema_variable) %}\n when lower(replace(replace(_dbt_source_relation,'\"',''),'`','')) like '%.{{ schema|lower }}.%' then '{{ schema|lower }}'\n {% endfor %}\n end as source_relation\n{% elif var(union_database_variable, none) %}\n, case\n {% for database in var(union_database_variable) %}\n when lower(replace(replace(_dbt_source_relation,'\"',''),'`','')) like '%{{ database|lower }}.%' then '{{ database|lower }}'\n {% endfor %}\n end as source_relation\n{% else %}\n, cast('' as {{ dbt.type_string() }}) as source_relation\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "union_schema_variable", "type": null, "description": ""}, {"name": "union_database_variable", "type": null, "description": ""}], "created_at": 1784670933.989124, "supported_languages": null}, "macro.fivetran_utils.remove_prefix_from_columns": {"name": "remove_prefix_from_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/remove_prefix_from_columns.sql", "original_file_path": "macros/remove_prefix_from_columns.sql", "unique_id": "macro.fivetran_utils.remove_prefix_from_columns", "macro_sql": "{% macro remove_prefix_from_columns(columns, prefix='', exclude=[]) %}\n\n {%- for col in columns if col.name not in exclude -%}\n {%- if col.name[:prefix|length]|lower == prefix -%}\n {{ col.name }} as {{ col.name[prefix|length:] }}\n {%- else -%}\n {{ col.name }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "columns", "type": null, "description": ""}, {"name": "prefix", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}], "created_at": 1784670933.9903216, "supported_languages": null}, "macro.fivetran_utils.first_value": {"name": "first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.first_value", "macro_sql": "{% macro first_value(first_value_field, partition_field, order_by_field, order=\"asc\") -%}\n\n{{ adapter.dispatch('first_value', 'fivetran_utils') (first_value_field, partition_field, order_by_field, order) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__first_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "first_value_field", "type": null, "description": ""}, {"name": "partition_field", "type": null, "description": ""}, {"name": "order_by_field", "type": null, "description": ""}, {"name": "order", "type": null, "description": ""}], "created_at": 1784670933.9910827, "supported_languages": null}, "macro.fivetran_utils.default__first_value": {"name": "default__first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.default__first_value", "macro_sql": "{% macro default__first_value(first_value_field, partition_field, order_by_field, order=\"asc\") %}\n\n first_value( {{ first_value_field }} ignore nulls ) over (partition by {{ partition_field }} order by {{ order_by_field }} {{ order }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "first_value_field", "type": null, "description": ""}, {"name": "partition_field", "type": null, "description": ""}, {"name": "order_by_field", "type": null, "description": ""}, {"name": "order", "type": null, "description": ""}], "created_at": 1784670933.9915175, "supported_languages": null}, "macro.fivetran_utils.redshift__first_value": {"name": "redshift__first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.redshift__first_value", "macro_sql": "{% macro redshift__first_value(first_value_field, partition_field, order_by_field, order=\"asc\") %}\n\n first_value( {{ first_value_field }} ignore nulls ) over (partition by {{ partition_field }} order by {{ order_by_field }} {{ order }} , {{ partition_field }} rows unbounded preceding )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "first_value_field", "type": null, "description": ""}, {"name": "partition_field", "type": null, "description": ""}, {"name": "order_by_field", "type": null, "description": ""}, {"name": "order", "type": null, "description": ""}], "created_at": 1784670933.9919882, "supported_languages": null}, "macro.fivetran_utils.timestamp_diff": {"name": "timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.timestamp_diff", "macro_sql": "{% macro timestamp_diff(first_date, second_date, datepart) %}\n {{ adapter.dispatch('timestamp_diff', 'fivetran_utils')(first_date, second_date, datepart) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_diff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "first_date", "type": null, "description": ""}, {"name": "second_date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.99341, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_diff": {"name": "default__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.default__timestamp_diff", "macro_sql": "{% macro default__timestamp_diff(first_date, second_date, datepart) %}\n\n datediff(\n {{ datepart }},\n {{ first_date }},\n {{ second_date }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "first_date", "type": null, "description": ""}, {"name": "second_date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.9937541, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_diff": {"name": "redshift__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.redshift__timestamp_diff", "macro_sql": "{% macro redshift__timestamp_diff(first_date, second_date, datepart) %}\n\n datediff(\n {{ datepart }},\n {{ first_date }},\n {{ second_date }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "first_date", "type": null, "description": ""}, {"name": "second_date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.99411, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_diff": {"name": "bigquery__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.bigquery__timestamp_diff", "macro_sql": "{% macro bigquery__timestamp_diff(first_date, second_date, datepart) %}\n\n timestamp_diff(\n {{second_date}},\n {{first_date}},\n {{datepart}}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "first_date", "type": null, "description": ""}, {"name": "second_date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.9944446, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_diff": {"name": "postgres__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.postgres__timestamp_diff", "macro_sql": "{% macro postgres__timestamp_diff(first_date, second_date, datepart) %}\n\n {% if datepart == 'year' %}\n (date_part('year', ({{second_date}})::date) - date_part('year', ({{first_date}})::date))\n {% elif datepart == 'quarter' %}\n ({{ dbt.datediff(first_date, second_date, 'year') }} * 4 + date_part('quarter', ({{second_date}})::date) - date_part('quarter', ({{first_date}})::date))\n {% elif datepart == 'month' %}\n ({{ dbt.datediff(first_date, second_date, 'year') }} * 12 + date_part('month', ({{second_date}})::date) - date_part('month', ({{first_date}})::date))\n {% elif datepart == 'day' %}\n (({{second_date}})::date - ({{first_date}})::date)\n {% elif datepart == 'week' %}\n ({{ dbt.datediff(first_date, second_date, 'day') }} / 7 + case\n when date_part('dow', ({{first_date}})::timestamp) <= date_part('dow', ({{second_date}})::timestamp) then\n case when {{first_date}} <= {{second_date}} then 0 else -1 end\n else\n case when {{first_date}} <= {{second_date}} then 1 else 0 end\n end)\n {% elif datepart == 'hour' %}\n ({{ dbt.datediff(first_date, second_date, 'day') }} * 24 + date_part('hour', ({{second_date}})::timestamp) - date_part('hour', ({{first_date}})::timestamp))\n {% elif datepart == 'minute' %}\n ({{ dbt.datediff(first_date, second_date, 'hour') }} * 60 + date_part('minute', ({{second_date}})::timestamp) - date_part('minute', ({{first_date}})::timestamp))\n {% elif datepart == 'second' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60 + floor(date_part('second', ({{second_date}})::timestamp)) - floor(date_part('second', ({{first_date}})::timestamp)))\n {% elif datepart == 'millisecond' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60000 + floor(date_part('millisecond', ({{second_date}})::timestamp)) - floor(date_part('millisecond', ({{first_date}})::timestamp)))\n {% elif datepart == 'microsecond' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60000000 + floor(date_part('microsecond', ({{second_date}})::timestamp)) - floor(date_part('microsecond', ({{first_date}})::timestamp)))\n {% else %}\n {{ exceptions.raise_compiler_error(\"Unsupported datepart for macro datediff in postgres: {!r}\".format(datepart)) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "first_date", "type": null, "description": ""}, {"name": "second_date", "type": null, "description": ""}, {"name": "datepart", "type": null, "description": ""}], "created_at": 1784670933.9978642, "supported_languages": null}, "macro.fivetran_utils.timestamp_add": {"name": "timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.timestamp_add", "macro_sql": "{% macro timestamp_add(datepart, interval, from_timestamp) -%}\n\n{{ adapter.dispatch('timestamp_add', 'fivetran_utils') (datepart, interval, from_timestamp) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "from_timestamp", "type": null, "description": ""}], "created_at": 1784670933.9986973, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_add": {"name": "default__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.default__timestamp_add", "macro_sql": "{% macro default__timestamp_add(datepart, interval, from_timestamp) %}\n\n timestampadd(\n {{ datepart }},\n {{ interval }},\n {{ from_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "from_timestamp", "type": null, "description": ""}], "created_at": 1784670933.9990404, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_add": {"name": "bigquery__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.bigquery__timestamp_add", "macro_sql": "{% macro bigquery__timestamp_add(datepart, interval, from_timestamp) %}\n\n timestamp_add({{ from_timestamp }}, interval {{ interval }} {{ datepart }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "from_timestamp", "type": null, "description": ""}], "created_at": 1784670933.9993944, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_add": {"name": "redshift__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.redshift__timestamp_add", "macro_sql": "{% macro redshift__timestamp_add(datepart, interval, from_timestamp) %}\n\n dateadd(\n {{ datepart }},\n {{ interval }},\n {{ from_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "from_timestamp", "type": null, "description": ""}], "created_at": 1784670933.9997215, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_add": {"name": "postgres__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.postgres__timestamp_add", "macro_sql": "{% macro postgres__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ from_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "from_timestamp", "type": null, "description": ""}], "created_at": 1784670934.0000727, "supported_languages": null}, "macro.fivetran_utils.spark__timestamp_add": {"name": "spark__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.spark__timestamp_add", "macro_sql": "{% macro spark__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ dbt.dateadd(datepart, interval, from_timestamp) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "interval", "type": null, "description": ""}, {"name": "from_timestamp", "type": null, "description": ""}], "created_at": 1784670934.00043, "supported_languages": null}, "macro.fivetran_utils.union_relations": {"name": "union_relations", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "unique_id": "macro.fivetran_utils.union_relations", "macro_sql": "{%- macro union_relations(relations, aliases=none, column_override=none, include=[], exclude=[], source_column_name=none) -%}\n\n {%- if exclude and include -%}\n {{ exceptions.raise_compiler_error(\"Both an exclude and include list were provided to the `union` macro. Only one is allowed\") }}\n {%- endif -%}\n\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. -#}\n {%- if not execute %}\n {{ return('') }}\n {% endif -%}\n\n {%- set column_override = column_override if column_override is not none else {} -%}\n {%- set source_column_name = source_column_name if source_column_name is not none else '_dbt_source_relation' -%}\n\n {%- set relation_columns = {} -%}\n {%- set column_superset = {} -%}\n\n {%- for relation in relations -%}\n\n {%- do relation_columns.update({relation: []}) -%}\n\n {%- do dbt_utils._is_relation(relation, 'union_relations') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) -%}\n {%- for col in cols -%}\n\n {#- If an exclude list was provided and the column is in the list, do nothing -#}\n {%- if exclude and col.column in exclude -%}\n\n {#- If an include list was provided and the column is not in the list, do nothing -#}\n {%- elif include and col.column not in include -%}\n\n {#- Otherwise add the column to the column superset -#}\n {%- else -%}\n\n {#- update the list of columns in this relation -#}\n {%- do relation_columns[relation].append(col.column) -%}\n\n {%- if col.column in column_superset -%}\n\n {%- set stored = column_superset[col.column] -%}\n {%- if col.is_string() and stored.is_string() and col.string_size() > stored.string_size() -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif %}\n\n {%- else -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif -%}\n\n {%- endif -%}\n\n {%- endfor -%}\n {%- endfor -%}\n\n {%- set ordered_column_names = column_superset.keys() -%}\n\n {%- for relation in relations %}\n\n (\n select\n\n cast({{ dbt.string_literal(relation) }} as {{ dbt.type_string() }}) as {{ source_column_name }},\n {% for col_name in ordered_column_names -%}\n\n {%- set col = column_superset[col_name] %}\n {%- set col_type = column_override.get(col.column, col.data_type) %}\n {%- set col_name = adapter.quote(col_name) if col_name in relation_columns[relation] else 'null' %}\n cast({{ col_name }} as {{ col_type }}) as {{ col.quoted }} {% if not loop.last %},{% endif -%}\n\n {%- endfor %}\n\n from {{ aliases[loop.index0] if aliases else relation }}\n )\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n\n {%- endfor -%}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt.string_literal", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relations", "type": null, "description": ""}, {"name": "aliases", "type": null, "description": ""}, {"name": "column_override", "type": null, "description": ""}, {"name": "include", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "source_column_name", "type": null, "description": ""}], "created_at": 1784670934.0061066, "supported_languages": null}, "macro.fivetran_utils.union_tables": {"name": "union_tables", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "unique_id": "macro.fivetran_utils.union_tables", "macro_sql": "{%- macro union_tables(tables, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_table') -%}\n\n {%- do exceptions.warn(\"Warning: the `union_tables` macro is no longer supported and will be deprecated in a future release of dbt-utils. Use the `union_relations` macro instead\") -%}\n\n {{ return(dbt_utils.union_relations(tables, column_override, include, exclude, source_column_name)) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "tables", "type": null, "description": ""}, {"name": "column_override", "type": null, "description": ""}, {"name": "include", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "source_column_name", "type": null, "description": ""}], "created_at": 1784670934.0068176, "supported_languages": null}, "macro.fivetran_utils.enabled_vars": {"name": "enabled_vars", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/enabled_vars.sql", "original_file_path": "macros/enabled_vars.sql", "unique_id": "macro.fivetran_utils.enabled_vars", "macro_sql": "{% macro enabled_vars(vars) %}\n\n{% for v in vars %}\n \n {% if var(v, True) == False %}\n {{ return(False) }}\n {% endif %}\n\n{% endfor %}\n\n{{ return(True) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "vars", "type": null, "description": ""}], "created_at": 1784670934.0076213, "supported_languages": null}, "macro.fivetran_utils.add_dbt_source_relation": {"name": "add_dbt_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/add_dbt_source_relation.sql", "original_file_path": "macros/add_dbt_source_relation.sql", "unique_id": "macro.fivetran_utils.add_dbt_source_relation", "macro_sql": "{% macro add_dbt_source_relation() %}\n\n{% if var('union_schemas', none) or var('union_databases', none) %}\n, _dbt_source_relation\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [], "created_at": 1784670934.0081818, "supported_languages": null}, "macro.fivetran_utils.ceiling": {"name": "ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.ceiling", "macro_sql": "{% macro ceiling(num) -%}\n\n{{ adapter.dispatch('ceiling', 'fivetran_utils') (num) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__ceiling"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "num", "type": null, "description": ""}], "created_at": 1784670934.0086641, "supported_languages": null}, "macro.fivetran_utils.default__ceiling": {"name": "default__ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.default__ceiling", "macro_sql": "{% macro default__ceiling(num) %}\n ceiling({{ num }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "num", "type": null, "description": ""}], "created_at": 1784670934.0088847, "supported_languages": null}, "macro.fivetran_utils.snowflake__ceiling": {"name": "snowflake__ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.snowflake__ceiling", "macro_sql": "{% macro snowflake__ceiling(num) %}\n ceil({{ num }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "num", "type": null, "description": ""}], "created_at": 1784670934.009122, "supported_languages": null}, "macro.fivetran_utils.try_cast": {"name": "try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.try_cast", "macro_sql": "{% macro try_cast(field, type) %}\n {{ adapter.dispatch('try_cast', 'fivetran_utils') (field, type) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__try_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670934.0100873, "supported_languages": null}, "macro.fivetran_utils.default__try_cast": {"name": "default__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.default__try_cast", "macro_sql": "{% macro default__try_cast(field, type) %}\n {# most databases don't support this function yet\n so we just need to use cast #}\n cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670934.0103781, "supported_languages": null}, "macro.fivetran_utils.redshift__try_cast": {"name": "redshift__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.redshift__try_cast", "macro_sql": "{% macro redshift__try_cast(field, type) %}\n{%- if type == 'numeric' -%}\n\n case\n when trim({{field}}) ~ '^(0|[1-9][0-9]*)$' then trim({{field}})\n else null\n end::{{type}}\n\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"non-numeric datatypes are not currently supported\") }}\n\n{% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670934.0109315, "supported_languages": null}, "macro.fivetran_utils.postgres__try_cast": {"name": "postgres__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.postgres__try_cast", "macro_sql": "{% macro postgres__try_cast(field, type) %}\n{%- if type == 'numeric' -%}\n\n case\n when replace(cast({{field}} as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast({{field}} as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::{{type}}\n\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"non-numeric datatypes are not currently supported\") }}\n\n{% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670934.0115192, "supported_languages": null}, "macro.fivetran_utils.snowflake__try_cast": {"name": "snowflake__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.snowflake__try_cast", "macro_sql": "{% macro snowflake__try_cast(field, type) %}\n try_cast(cast({{field}} as varchar) as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670934.01179, "supported_languages": null}, "macro.fivetran_utils.bigquery__try_cast": {"name": "bigquery__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.bigquery__try_cast", "macro_sql": "{% macro bigquery__try_cast(field, type) %}\n safe_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670934.0120697, "supported_languages": null}, "macro.fivetran_utils.spark__try_cast": {"name": "spark__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.spark__try_cast", "macro_sql": "{% macro spark__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670934.0123482, "supported_languages": null}, "macro.fivetran_utils.sqlserver__try_cast": {"name": "sqlserver__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.sqlserver__try_cast", "macro_sql": "{% macro sqlserver__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "field", "type": null, "description": ""}, {"name": "type", "type": null, "description": ""}], "created_at": 1784670934.0126128, "supported_languages": null}, "macro.fivetran_utils.max_bool": {"name": "max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.max_bool", "macro_sql": "{% macro max_bool(boolean_field) -%}\n\n{{ adapter.dispatch('max_bool', 'fivetran_utils') (boolean_field) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__max_bool"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "boolean_field", "type": null, "description": ""}], "created_at": 1784670934.0131712, "supported_languages": null}, "macro.fivetran_utils.default__max_bool": {"name": "default__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.default__max_bool", "macro_sql": "{% macro default__max_bool(boolean_field) %}\n\n bool_or( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "boolean_field", "type": null, "description": ""}], "created_at": 1784670934.0134006, "supported_languages": null}, "macro.fivetran_utils.snowflake__max_bool": {"name": "snowflake__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.snowflake__max_bool", "macro_sql": "{% macro snowflake__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "boolean_field", "type": null, "description": ""}], "created_at": 1784670934.014092, "supported_languages": null}, "macro.fivetran_utils.bigquery__max_bool": {"name": "bigquery__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.bigquery__max_bool", "macro_sql": "{% macro bigquery__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "boolean_field", "type": null, "description": ""}], "created_at": 1784670934.0143108, "supported_languages": null}, "macro.fivetran_utils.pivot_json_extract": {"name": "pivot_json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/pivot_json_extract.sql", "original_file_path": "macros/pivot_json_extract.sql", "unique_id": "macro.fivetran_utils.pivot_json_extract", "macro_sql": "{% macro pivot_json_extract(string, list_of_properties) %}\n\n{%- for property in list_of_properties -%}\n{%- if property is mapping -%}\nreplace( {{ fivetran_utils.json_extract(string, property.name) }}, '\"', '') as {{ property.alias if property.alias else property.name | replace(' ', '_') | replace('.', '_') | lower }}\n\n{%- else -%}\nreplace( {{ fivetran_utils.json_extract(string, property) }}, '\"', '') as {{ property | replace(' ', '_') | lower }}\n\n{%- endif -%}\n{%- if not loop.last -%},{%- endif %}\n{% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "list_of_properties", "type": null, "description": ""}], "created_at": 1784670934.015759, "supported_languages": null}, "macro.fivetran_utils.add_pass_through_columns": {"name": "add_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/add_pass_through_columns.sql", "original_file_path": "macros/add_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.add_pass_through_columns", "macro_sql": "{% macro add_pass_through_columns(base_columns, pass_through_var) %}\n\n {% if pass_through_var %}\n\n {% for column in pass_through_var %}\n\n {% if column is mapping %}\n\n {% if column.alias %}\n\n {% do base_columns.append({ \"name\": column.name, \"alias\": column.alias, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n\n {% else %}\n\n {% do base_columns.append({ \"name\": column.name, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n \n {% endif %}\n\n {% else %}\n\n {% do base_columns.append({ \"name\": column, \"datatype\": dbt.type_string()}) %}\n\n {% endif %}\n\n {% endfor %}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "base_columns", "type": null, "description": ""}, {"name": "pass_through_var", "type": null, "description": ""}], "created_at": 1784670934.0177042, "supported_languages": null}, "macro.fivetran_utils.union_connections": {"name": "union_connections", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_connections.sql", "original_file_path": "macros/union_connections.sql", "unique_id": "macro.fivetran_utils.union_connections", "macro_sql": "{% macro union_connections(connection_dictionary, single_source_name, single_table_name, default_identifier=single_table_name) %}\n\n{{ adapter.dispatch('union_connections', 'fivetran_utils') (connection_dictionary, single_source_name, single_table_name, default_identifier) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__union_connections"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "connection_dictionary", "type": null, "description": ""}, {"name": "single_source_name", "type": null, "description": ""}, {"name": "single_table_name", "type": null, "description": ""}, {"name": "default_identifier", "type": null, "description": ""}], "created_at": 1784670934.0192068, "supported_languages": null}, "macro.fivetran_utils.default__union_connections": {"name": "default__union_connections", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_connections.sql", "original_file_path": "macros/union_connections.sql", "unique_id": "macro.fivetran_utils.default__union_connections", "macro_sql": "{% macro default__union_connections(connection_dictionary, single_source_name, single_table_name, default_identifier=single_table_name) %}\n\n{%- set exception_warning = \"\\n\\nPlease be aware: The \" ~ single_source_name|upper ~ \".\" ~ single_table_name|upper ~ \" table was not found in your schema(s). The Fivetran Data Model will create a completely empty staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_connections-source for details).\\n\"%}\n{%- set using_empty_table_warnings = (execute and not var('fivetran__remove_empty_table_warnings', false)) %}\n{%- set connections = var(connection_dictionary, []) %}\n{%- set using_unioning = connections | length > 0 %}\n{%- set identifier_var = single_source_name + \"_\" + single_table_name + \"_identifier\" %}\n\n{%- if using_unioning %}\n{# For unioning #}\n {%- set relations = [] -%}\n {%- for connection in connections -%}\n\n {% if var('has_defined_sources', false) %}\n {%- set database = source(connection.name, single_table_name).database %}\n {%- set schema = source(connection.name, single_table_name).schema %}\n {%- set identifier = source(connection.name, single_table_name).identifier %}\n {%- else %}\n {%- set database = connection.database if connection.database else target.database %}\n {%- set schema = connection.schema if connection.schema else single_source_name %}\n {%- set identifier = var(identifier_var, default_identifier) %}\n {%- endif %}\n \n {%- set relation=adapter.get_relation(\n database=database,\n schema=schema,\n identifier=identifier\n )\n -%}\n\n {%- if relation is not none -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n -- ** Values passed to adapter.get_relation:\n {{ '-- database: ' ~ database }}\n {{ '-- schema: ' ~ schema }}\n {{ '-- identifier: ' ~ identifier ~ '\\n' }}\n\n {%- endfor -%}\n\n {%- if relations | length > 0 -%}\n {{ fivetran_utils.union_relations_custom(relations, source_column_name='_dbt_source_relation') }}\n\n {%- else -%}\n {{ exceptions.warn(exception_warning) if using_empty_table_warnings }}\n\n select\n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit {{ '0' if target.type != 'redshift' else '1' }}\n {%- endif -%}\n\n{% else %}\n{# Not unioning #}\n\n {%- set database = source(single_source_name, single_table_name).database %}\n {%- set schema = source(single_source_name, single_table_name).schema %}\n {%- set identifier = var(identifier_var, default_identifier) %}\n\n {%- set relation=adapter.get_relation(\n database=database,\n schema=schema,\n identifier=identifier\n )\n -%}\n\n -- ** Values passed to adapter.get_relation:\n {{ '-- full-identifier_var: ' ~ identifier_var }}\n {{ '-- database: ' ~ database }} \n {{ '-- schema: ' ~ schema }}\n {{ '-- identifier: ' ~ identifier ~ '\\n' }}\n\n {% if relation is not none -%}\n select\n {{ dbt_utils.star(from=source(single_source_name, single_table_name)) }}\n from {{ source(single_source_name, single_table_name) }} as source_table\n\n {% else %}\n {{ exceptions.warn(exception_warning) if using_empty_table_warnings }}\n\n select\n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit {{ '0' if target.type != 'redshift' else '1' }}\n {%- endif -%}\n{% endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.union_relations_custom", "macro.dbt.type_string", "macro.dbt_utils.star"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "connection_dictionary", "type": null, "description": ""}, {"name": "single_source_name", "type": null, "description": ""}, {"name": "single_table_name", "type": null, "description": ""}, {"name": "default_identifier", "type": null, "description": ""}], "created_at": 1784670934.0246515, "supported_languages": null}, "macro.fivetran_utils.dummy_coalesce_value": {"name": "dummy_coalesce_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/dummy_coalesce_value.sql", "original_file_path": "macros/dummy_coalesce_value.sql", "unique_id": "macro.fivetran_utils.dummy_coalesce_value", "macro_sql": "{% macro dummy_coalesce_value(column) %}\n\n{% set coalesce_value = {\n 'STRING': \"'DUMMY_STRING'\",\n 'BOOLEAN': 'null',\n 'INT': 999999999,\n 'FLOAT': 999999999.99,\n 'TIMESTAMP': 'cast(\"2099-12-31\" as timestamp)',\n 'DATE': 'cast(\"2099-12-31\" as date)',\n} %}\n\n{% if column.is_float() %}\n{{ return(coalesce_value['FLOAT']) }}\n\n{% elif column.is_numeric() %}\n{{ return(coalesce_value['INT']) }}\n\n{% elif column.is_string() %}\n{{ return(coalesce_value['STRING']) }}\n\n{% elif column.data_type|lower == 'boolean' %}\n{{ return(coalesce_value['BOOLEAN']) }}\n\n{% elif 'timestamp' in column.data_type|lower %}\n{{ return(coalesce_value['TIMESTAMP']) }}\n\n{% elif 'date' in column.data_type|lower %}\n{{ return(coalesce_value['DATE']) }}\n\n{% elif 'int' in column.data_type|lower %}\n{{ return(coalesce_value['INT']) }}\n\n{% endif %}\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "column", "type": null, "description": ""}], "created_at": 1784670934.0272524, "supported_languages": null}, "macro.fivetran_utils.fill_pass_through_columns": {"name": "fill_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_pass_through_columns.sql", "original_file_path": "macros/fill_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.fill_pass_through_columns", "macro_sql": "{% macro fill_pass_through_columns(pass_through_variable) %}\n\n{% if var(pass_through_variable) %}\n {% for field in var(pass_through_variable) %}\n {% if field is mapping %}\n {% if field.transform_sql %}\n , {{ field.transform_sql }} as {{ field.alias if field.alias else field.name }}\n {% else %}\n , {{ field.alias if field.alias else field.name }}\n {% endif %}\n {% else %}\n , {{ field }}\n {% endif %}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "pass_through_variable", "type": null, "description": ""}], "created_at": 1784670934.0286033, "supported_languages": null}, "macro.fivetran_utils.seed_data_helper": {"name": "seed_data_helper", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/seed_data_helper.sql", "original_file_path": "macros/seed_data_helper.sql", "unique_id": "macro.fivetran_utils.seed_data_helper", "macro_sql": "{% macro seed_data_helper(seed_name, warehouses) %}\n\n{% if target.type in warehouses %}\n {% for w in warehouses %}\n {% if target.type == w %}\n {{ return(ref(seed_name ~ \"_\" ~ w ~ \"\")) }}\n {% endif %}\n {% endfor %}\n{% else %}\n{{ return(ref(seed_name)) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "seed_name", "type": null, "description": ""}, {"name": "warehouses", "type": null, "description": ""}], "created_at": 1784670934.0297053, "supported_languages": null}, "macro.fivetran_utils.json_extract": {"name": "json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.json_extract", "macro_sql": "{% macro json_extract(string, string_path) -%}\n\n{{ adapter.dispatch('json_extract', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.0304937, "supported_languages": null}, "macro.fivetran_utils.default__json_extract": {"name": "default__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.default__json_extract", "macro_sql": "{% macro default__json_extract(string, string_path) %}\n\n json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} )\n \n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.0308156, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_extract": {"name": "snowflake__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.snowflake__json_extract", "macro_sql": "{% macro snowflake__json_extract(string, string_path) %}\n\n json_extract_path_text(try_parse_json( {{string}} ), {{ \"'\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.0311584, "supported_languages": null}, "macro.fivetran_utils.redshift__json_extract": {"name": "redshift__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.redshift__json_extract", "macro_sql": "{% macro redshift__json_extract(string, string_path) %}\n\n case when is_valid_json( {{string}} ) then json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} ) else null end\n \n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.0315123, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_extract": {"name": "bigquery__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.bigquery__json_extract", "macro_sql": "{% macro bigquery__json_extract(string, string_path) %}\n\n json_extract_scalar({{string}}, {{ \"'$.\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.0318277, "supported_languages": null}, "macro.fivetran_utils.postgres__json_extract": {"name": "postgres__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.postgres__json_extract", "macro_sql": "{% macro postgres__json_extract(string, string_path) %}\n\n {{string}}::json->>{{\"'\" ~ string_path ~ \"'\" }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.0321646, "supported_languages": null}, "macro.fivetran_utils.union_data": {"name": "union_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "unique_id": "macro.fivetran_utils.union_data", "macro_sql": "{%- macro union_data(table_identifier, database_variable, schema_variable, default_database, default_schema, default_variable, union_schema_variable='union_schemas', union_database_variable='union_databases') -%}\n\n{{ adapter.dispatch('union_data', 'fivetran_utils') (\n table_identifier, \n database_variable, \n schema_variable, \n default_database, \n default_schema, \n default_variable,\n union_schema_variable,\n union_database_variable\n ) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.fivetran_utils.default__union_data"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "table_identifier", "type": null, "description": ""}, {"name": "database_variable", "type": null, "description": ""}, {"name": "schema_variable", "type": null, "description": ""}, {"name": "default_database", "type": null, "description": ""}, {"name": "default_schema", "type": null, "description": ""}, {"name": "default_variable", "type": null, "description": ""}, {"name": "union_schema_variable", "type": null, "description": ""}, {"name": "union_database_variable", "type": null, "description": ""}], "created_at": 1784670934.034364, "supported_languages": null}, "macro.fivetran_utils.default__union_data": {"name": "default__union_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "unique_id": "macro.fivetran_utils.default__union_data", "macro_sql": "{%- macro default__union_data(\n table_identifier, \n database_variable, \n schema_variable, \n default_database, \n default_schema, \n default_variable,\n union_schema_variable,\n union_database_variable\n ) -%}\n\n{%- if var(union_schema_variable, none) -%}\n\n {%- set relations = [] -%}\n \n {%- if var(union_schema_variable) is string -%}\n {%- set trimmed = var(union_schema_variable)|trim('[')|trim(']') -%}\n {%- set schemas = trimmed.split(',')|map('trim',\" \")|map('trim','\"')|map('trim',\"'\") -%}\n {%- else -%}\n {%- set schemas = var(union_schema_variable) -%}\n {%- endif -%}\n\n {%- for schema in var(union_schema_variable) -%}\n {%- set relation=adapter.get_relation(\n database=source(schema, table_identifier).database if var('has_defined_sources', false) else var(database_variable, default_database),\n schema=source(schema, table_identifier).schema if var('has_defined_sources', false) else schema,\n identifier=source(schema, table_identifier).identifier if var('has_defined_sources', false) else table_identifier\n ) -%}\n \n {%- set relation_exists=relation is not none -%}\n\n {%- if relation_exists -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n {%- endfor -%}\n \n {%- if relations != [] -%}\n {{ dbt_utils.union_relations(relations) }}\n {%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n {%- endif -%}\n\n{%- elif var(union_database_variable, none) -%}\n\n {%- set relations = [] -%}\n\n {%- for database in var(union_database_variable) -%}\n {%- set relation=adapter.get_relation(\n database=source(schema, table_identifier).database if var('has_defined_sources', false) else database,\n schema=source(schema, table_identifier).schema if var('has_defined_sources', false) else var(schema_variable, default_schema),\n identifier=source(schema, table_identifier).identifier if var('has_defined_sources', false) else table_identifier\n ) -%}\n\n {%- set relation_exists=relation is not none -%}\n\n {%- if relation_exists -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n {%- endfor -%}\n\n {%- if relations != [] -%}\n {{ dbt_utils.union_relations(relations) }}\n {%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n {%- endif -%}\n\n{%- else -%}\n {% set exception_schemas = {\"linkedin_company_pages\": \"linkedin_pages\", \"instagram_business_pages\": \"instagram_business\"} %}\n {% set relation = namespace(value=\"\") %}\n {% if default_schema in exception_schemas.keys() %}\n {% for corrected_schema_name in exception_schemas.items() %} \n {% if default_schema in corrected_schema_name %}\n {# In order for this macro to effectively work within upstream integration tests (mainly used by the Fivetran dbt package maintainers), this identifier variable selection is required to use the macro with different identifier names. #}\n {% set identifier_var = corrected_schema_name[1] + \"_\" + table_identifier + \"_identifier\" %}\n {%- set relation.value=adapter.get_relation(\n database=source(corrected_schema_name[1], table_identifier).database,\n schema=source(corrected_schema_name[1], table_identifier).schema,\n identifier=var(identifier_var, table_identifier)\n ) -%}\n {% endif %}\n {% endfor %}\n {% else %}\n {# In order for this macro to effectively work within upstream integration tests (mainly used by the Fivetran dbt package maintainers), this identifier variable selection is required to use the macro with different identifier names. #}\n {% set identifier_var = default_schema + \"_\" + table_identifier + \"_identifier\" %}\n {# Unfortunately the Twitter Organic identifiers were misspelled. As such, we will need to account for this in the model. This will be adjusted in the Twitter Organic package, but to ensure backwards compatibility, this needs to be included. #}\n {% if var(identifier_var, none) is none %} \n {% set identifier_var = default_schema + \"_\" + table_identifier + \"_identifer\" %}\n {% endif %}\n {%- set relation.value=adapter.get_relation(\n database=source(default_schema, table_identifier).database,\n schema=source(default_schema, table_identifier).schema,\n identifier=var(identifier_var, table_identifier)\n ) -%}\n {% endif %}\n{%- set table_exists=relation.value is not none -%}\n\n{%- if table_exists -%}\n select * \n from {{ relation.value }}\n{%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n{%- endif -%}\n{%- endif -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils.union_relations", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "table_identifier", "type": null, "description": ""}, {"name": "database_variable", "type": null, "description": ""}, {"name": "schema_variable", "type": null, "description": ""}, {"name": "default_database", "type": null, "description": ""}, {"name": "default_schema", "type": null, "description": ""}, {"name": "default_variable", "type": null, "description": ""}, {"name": "union_schema_variable", "type": null, "description": ""}, {"name": "union_database_variable", "type": null, "description": ""}], "created_at": 1784670934.0433254, "supported_languages": null}, "macro.fivetran_utils.drop_schemas_automation": {"name": "drop_schemas_automation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/drop_schemas_automation.sql", "original_file_path": "macros/drop_schemas_automation.sql", "unique_id": "macro.fivetran_utils.drop_schemas_automation", "macro_sql": "{% macro drop_schemas_automation(drop_target_schema=true) %}\n {{ return(adapter.dispatch('drop_schemas_automation', 'fivetran_utils')(drop_target_schema)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__drop_schemas_automation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "drop_target_schema", "type": null, "description": ""}], "created_at": 1784670934.0442548, "supported_languages": null}, "macro.fivetran_utils.default__drop_schemas_automation": {"name": "default__drop_schemas_automation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/drop_schemas_automation.sql", "original_file_path": "macros/drop_schemas_automation.sql", "unique_id": "macro.fivetran_utils.default__drop_schemas_automation", "macro_sql": "{% macro default__drop_schemas_automation(drop_target_schema=true) %}\n\n{% set fetch_list_sql %}\n {% if target.type not in ('databricks', 'spark') %}\n select schema_name\n from \n {{ wrap_in_quotes(target.database) }}.INFORMATION_SCHEMA.SCHEMATA\n where lower(schema_name) like '{{ target.schema | lower }}{%- if not drop_target_schema -%}_{%- endif -%}%'\n {% else %}\n SHOW SCHEMAS LIKE '{{ target.schema }}{%- if not drop_target_schema -%}_{%- endif -%}*'\n {% endif %}\n{% endset %}\n\n{% set results = run_query(fetch_list_sql) %}\n\n{% if execute %}\n {% set results_list = results.columns[0].values() %}\n{% else %}\n {% set results_list = [] %}\n{% endif %}\n\n{% for schema_to_drop in results_list %}\n {% do adapter.drop_schema(api.Relation.create(database=target.database, schema=schema_to_drop)) %}\n {{ print('Schema ' ~ schema_to_drop ~ ' successfully dropped from the ' ~ target.database ~ ' database.\\n')}}\n{% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.wrap_in_quotes", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "drop_target_schema", "type": null, "description": ""}], "created_at": 1784670934.0462365, "supported_languages": null}, "macro.fivetran_utils.fivetran_date_spine": {"name": "fivetran_date_spine", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fivetran_date_spine.sql", "original_file_path": "macros/fivetran_date_spine.sql", "unique_id": "macro.fivetran_utils.fivetran_date_spine", "macro_sql": "{% macro fivetran_date_spine(datepart, start_date, end_date) -%}\n\n{{ return(adapter.dispatch('fivetran_date_spine', 'fivetran_utils') (datepart, start_date, end_date)) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__fivetran_date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "start_date", "type": null, "description": ""}, {"name": "end_date", "type": null, "description": ""}], "created_at": 1784670934.0472364, "supported_languages": null}, "macro.fivetran_utils.default__fivetran_date_spine": {"name": "default__fivetran_date_spine", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fivetran_date_spine.sql", "original_file_path": "macros/fivetran_date_spine.sql", "unique_id": "macro.fivetran_utils.default__fivetran_date_spine", "macro_sql": "{% macro default__fivetran_date_spine(datepart, start_date, end_date) %}\n\n {{ dbt_utils.date_spine(datepart, start_date, end_date) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "start_date", "type": null, "description": ""}, {"name": "end_date", "type": null, "description": ""}], "created_at": 1784670934.0475967, "supported_languages": null}, "macro.fivetran_utils.sqlserver__fivetran_date_spine": {"name": "sqlserver__fivetran_date_spine", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fivetran_date_spine.sql", "original_file_path": "macros/fivetran_date_spine.sql", "unique_id": "macro.fivetran_utils.sqlserver__fivetran_date_spine", "macro_sql": "{% macro sqlserver__fivetran_date_spine(datepart, start_date, end_date) -%}\n\n {% set date_spine_query %}\n with\n\n l0 as (\n\n select c\n from (select 1 union all select 1) as d(c)\n\n ),\n l1 as (\n\n select\n 1 as c\n from l0 as a\n cross join l0 as b\n\n ),\n\n l2 as (\n\n select 1 as c\n from l1 as a\n cross join l1 as b\n ),\n\n l3 as (\n\n select 1 as c\n from l2 as a\n cross join l2 as b\n ),\n\n l4 as (\n\n select 1 as c\n from l3 as a\n cross join l3 as b\n ),\n\n l5 as (\n\n select 1 as c\n from l4 as a\n cross join l4 as b\n ),\n\n nums as (\n\n select row_number() over (order by (select null)) as rownum\n from l5\n ),\n\n rawdata as (\n\n select top ({{dbt.datediff(start_date, end_date, datepart)}}) rownum -1 as n\n from nums\n order by rownum\n ),\n\n all_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n 'n',\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n ),\n\n filtered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n )\n\n select * from filtered\n order by 1\n\n {% endset %}\n\n {% set results = run_query(date_spine_query) %}\n\n {% if execute %}\n\n {% set results_list = results.columns[0].values() %}\n \n {% else %}\n\n {% set results_list = [] %}\n\n {% endif %}\n\n {%- for date_field in results_list %}\n select cast('{{ date_field }}' as date) as date_{{datepart}} {{ 'union all ' if not loop.last else '' }}\n {% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff", "macro.dbt.dateadd", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "datepart", "type": null, "description": ""}, {"name": "start_date", "type": null, "description": ""}, {"name": "end_date", "type": null, "description": ""}], "created_at": 1784670934.04922, "supported_languages": null}, "macro.fivetran_utils.calculated_fields": {"name": "calculated_fields", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/calculated_fields.sql", "original_file_path": "macros/calculated_fields.sql", "unique_id": "macro.fivetran_utils.calculated_fields", "macro_sql": "{% macro calculated_fields(variable) -%}\n\n{% if var(variable, none) %}\n {% for field in var(variable) %}\n , {{ field.transform_sql }} as {{ field.name }} \n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "variable", "type": null, "description": ""}], "created_at": 1784670934.0499525, "supported_languages": null}, "macro.fivetran_utils.json_parse": {"name": "json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.json_parse", "macro_sql": "{% macro json_parse(string, string_path) -%}\n\n{{ adapter.dispatch('json_parse', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_parse"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.0511289, "supported_languages": null}, "macro.fivetran_utils.default__json_parse": {"name": "default__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.default__json_parse", "macro_sql": "{% macro default__json_parse(string, string_path) %}\n\n json_extract_path_text({{string}}, {%- for s in string_path -%}'{{ s }}'{%- if not loop.last -%},{%- endif -%}{%- endfor -%} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.051643, "supported_languages": null}, "macro.fivetran_utils.redshift__json_parse": {"name": "redshift__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.redshift__json_parse", "macro_sql": "{% macro redshift__json_parse(string, string_path) %}\n\n json_extract_path_text({{string}}, {%- for s in string_path -%}'{{ s }}'{%- if not loop.last -%},{%- endif -%}{%- endfor -%} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.0521665, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_parse": {"name": "bigquery__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.bigquery__json_parse", "macro_sql": "{% macro bigquery__json_parse(string, string_path) %}\n\n \n json_extract_scalar({{string}}, '$.{%- for s in string_path -%}{{ s }}{%- if not loop.last -%}.{%- endif -%}{%- endfor -%} ')\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.052651, "supported_languages": null}, "macro.fivetran_utils.postgres__json_parse": {"name": "postgres__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.postgres__json_parse", "macro_sql": "{% macro postgres__json_parse(string, string_path) %}\n\n {{string}}::json #>> '{ {%- for s in string_path -%}{{ s }}{%- if not loop.last -%},{%- endif -%}{%- endfor -%} }'\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.0531523, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_parse": {"name": "snowflake__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.snowflake__json_parse", "macro_sql": "{% macro snowflake__json_parse(string, string_path) %}\n\n parse_json( {{string}} ) {%- for s in string_path -%}{% if s is number %}[{{ s }}]{% else %}['{{ s }}']{% endif %}{%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.0536938, "supported_languages": null}, "macro.fivetran_utils.spark__json_parse": {"name": "spark__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.spark__json_parse", "macro_sql": "{% macro spark__json_parse(string, string_path) %}\n\n {{string}} : {%- for s in string_path -%}{% if s is number %}[{{ s }}]{% else %}['{{ s }}']{% endif %}{%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.0542483, "supported_languages": null}, "macro.fivetran_utils.sqlserver__json_parse": {"name": "sqlserver__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.sqlserver__json_parse", "macro_sql": "{% macro sqlserver__json_parse(string, string_path) %}\n\n json_value({{string}}, '$.{%- for s in string_path -%}{{ s }}{%- if not loop.last -%}.{%- endif -%}{%- endfor -%} ')\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "string", "type": null, "description": ""}, {"name": "string_path", "type": null, "description": ""}], "created_at": 1784670934.054851, "supported_languages": null}, "macro.fivetran_utils.enabled_vars_one_true": {"name": "enabled_vars_one_true", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/enabled_vars_one_true.sql", "original_file_path": "macros/enabled_vars_one_true.sql", "unique_id": "macro.fivetran_utils.enabled_vars_one_true", "macro_sql": "{% macro enabled_vars_one_true(vars) %}\n\n{% for v in vars %}\n \n {% if var(v, False) == True %}\n {{ return(True) }}\n {% endif %}\n\n{% endfor %}\n\n{{ return(False) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "vars", "type": null, "description": ""}], "created_at": 1784670934.0556607, "supported_languages": null}, "macro.fivetran_utils.apply_source_relation": {"name": "apply_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/apply_source_relation.sql", "original_file_path": "macros/apply_source_relation.sql", "unique_id": "macro.fivetran_utils.apply_source_relation", "macro_sql": "{% macro apply_source_relation(package_name, use_package_prefix=true) -%}\n\n{{ adapter.dispatch('apply_source_relation', 'fivetran_utils') (package_name, use_package_prefix) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__apply_source_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "package_name", "type": null, "description": ""}, {"name": "use_package_prefix", "type": null, "description": ""}], "created_at": 1784670934.0565045, "supported_languages": null}, "macro.fivetran_utils.default__apply_source_relation": {"name": "default__apply_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/apply_source_relation.sql", "original_file_path": "macros/apply_source_relation.sql", "unique_id": "macro.fivetran_utils.default__apply_source_relation", "macro_sql": "{% macro default__apply_source_relation(package_name, use_package_prefix=true) -%}\n\n{% set sources_var = package_name ~ '_sources' %}\n{% set database_var = package_name ~ '_database' %}\n{% set schema_var = package_name ~ '_schema' %}\n\n{% if use_package_prefix %}\n {% set union_schemas_var = package_name ~ '_union_schemas' %}\n {% set union_databases_var = package_name ~ '_union_databases' %}\n{% else %}\n {% set union_schemas_var = 'union_schemas' %}\n {% set union_databases_var = 'union_databases' %}\n{% endif %}\n\n{% if var(sources_var, []) | length > 0 %}\n, _dbt_source_relation as source_relation\n{% elif var(union_schemas_var, []) | length > 0 or var(union_databases_var, []) | length > 0 %}\n{{ fivetran_utils.source_relation(union_schema_variable=union_schemas_var, union_database_variable=union_databases_var) }}\n{% else %}\n{% set database = var(database_var, target.database) %}\n{% set schema = var(schema_var, package_name) %}\n, cast('{{ database ~ \".\" ~ schema }}' as {{ dbt.type_string() }}) as source_relation\n{% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.source_relation", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "package_name", "type": null, "description": ""}, {"name": "use_package_prefix", "type": null, "description": ""}], "created_at": 1784670934.0587053, "supported_languages": null}, "macro.fivetran_utils.empty_variable_warning": {"name": "empty_variable_warning", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/empty_variable_warning.sql", "original_file_path": "macros/empty_variable_warning.sql", "unique_id": "macro.fivetran_utils.empty_variable_warning", "macro_sql": "{% macro empty_variable_warning(variable, downstream_model) %}\n\n{% if not var(variable) %}\n{{ log(\n \"\"\"\n Warning: You have passed an empty list to the \"\"\" ~ variable ~ \"\"\".\n As a result, you won't see the history of any columns in the \"\"\" ~ downstream_model ~ \"\"\" model.\n \"\"\",\n info=True\n) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "variable", "type": null, "description": ""}, {"name": "downstream_model", "type": null, "description": ""}], "created_at": 1784670934.0595708, "supported_languages": null}, "macro.fivetran_utils.partition_by_source_relation": {"name": "partition_by_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/partition_by_source_relation.sql", "original_file_path": "macros/partition_by_source_relation.sql", "unique_id": "macro.fivetran_utils.partition_by_source_relation", "macro_sql": "{% macro partition_by_source_relation(package_name, has_other_partitions='yes', alias=None, package_prefix_union_variable=true) %}\n {{ return(adapter.dispatch('partition_by_source_relation', 'fivetran_utils')(package_name, has_other_partitions, alias, package_prefix_union_variable)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__partition_by_source_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "package_name", "type": null, "description": ""}, {"name": "has_other_partitions", "type": null, "description": ""}, {"name": "alias", "type": null, "description": ""}, {"name": "package_prefix_union_variable", "type": null, "description": ""}], "created_at": 1784670934.0606074, "supported_languages": null}, "macro.fivetran_utils.default__partition_by_source_relation": {"name": "default__partition_by_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/partition_by_source_relation.sql", "original_file_path": "macros/partition_by_source_relation.sql", "unique_id": "macro.fivetran_utils.default__partition_by_source_relation", "macro_sql": "{% macro default__partition_by_source_relation(package_name, has_other_partitions='yes', alias=None, package_prefix_union_variable=true) -%}\n\n{%- if package_prefix_union_variable %}\n {%- set union_schemas_var = package_name ~ '_union_schemas' -%}\n {%- set union_databases_var = package_name ~ '_union_databases' -%}\n{%- else %}\n {%- set union_schemas_var = 'union_schemas' -%}\n {%- set union_databases_var = 'union_databases' -%}\n{%- endif -%}\n\n{%- set is_unioning = var(union_schemas_var, [])|length > 1 or var(union_databases_var, [])|length > 1 or var(package_name ~ '_sources', [])|length > 1 -%}\n{%- set prefix = '' if alias is none else alias ~ '.' -%}\n\n{%- if has_other_partitions == 'no' -%}\n {{- 'partition by ' ~ prefix ~ 'source_relation' if is_unioning else '' -}}\n{%- else -%}\n {{- ', ' ~ prefix ~ 'source_relation' if is_unioning else '' -}}\n{%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "package_name", "type": null, "description": ""}, {"name": "has_other_partitions", "type": null, "description": ""}, {"name": "alias", "type": null, "description": ""}, {"name": "package_prefix_union_variable", "type": null, "description": ""}], "created_at": 1784670934.0624423, "supported_languages": null}, "macro.fivetran_utils.snowflake_seed_data": {"name": "snowflake_seed_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/snowflake_seed_data.sql", "original_file_path": "macros/snowflake_seed_data.sql", "unique_id": "macro.fivetran_utils.snowflake_seed_data", "macro_sql": "{% macro snowflake_seed_data(seed_name) %}\n\n{% if target.type == 'snowflake' %}\n{{ return(ref(seed_name ~ '_snowflake')) }}\n{% else %}\n{{ return(ref(seed_name)) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "seed_name", "type": null, "description": ""}], "created_at": 1784670934.0632243, "supported_languages": null}, "macro.fivetran_utils.union_relations_custom": {"name": "union_relations_custom", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations_custom.sql", "original_file_path": "macros/union_relations_custom.sql", "unique_id": "macro.fivetran_utils.union_relations_custom", "macro_sql": "{%- macro union_relations_custom(relations, aliases=none, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n {{ return(adapter.dispatch('union_relations_custom', 'fivetran_utils')(relations, aliases, column_override, include, exclude, source_column_name, where)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__union_relations_custom"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relations", "type": null, "description": ""}, {"name": "aliases", "type": null, "description": ""}, {"name": "column_override", "type": null, "description": ""}, {"name": "include", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "source_column_name", "type": null, "description": ""}, {"name": "where", "type": null, "description": ""}], "created_at": 1784670934.0653858, "supported_languages": null}, "macro.fivetran_utils.default__union_relations_custom": {"name": "default__union_relations_custom", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations_custom.sql", "original_file_path": "macros/union_relations_custom.sql", "unique_id": "macro.fivetran_utils.default__union_relations_custom", "macro_sql": "\n\n{%- macro default__union_relations_custom(relations, aliases=none, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n\n {%- if exclude and include -%}\n {{ exceptions.raise_compiler_error(\"Both an exclude and include list were provided to the `union` macro. Only one is allowed\") }}\n {%- endif -%}\n\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. -#}\n {%- if not execute %}\n {{ return('') }}\n {% endif -%}\n\n {%- set column_override = column_override if column_override is not none else {} -%}\n\n {%- set relation_columns = {} -%}\n {%- set column_superset = {} -%}\n {%- set all_excludes = [] -%}\n {%- set all_includes = [] -%}\n\n {%- if exclude -%}\n {%- for exc in exclude -%}\n {%- do all_excludes.append(exc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- if include -%}\n {%- for inc in include -%}\n {%- do all_includes.append(inc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- for relation in relations -%}\n\n {%- do relation_columns.update({relation: []}) -%}\n\n {%- do dbt_utils._is_relation(relation, 'union_relations_custom') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'union_relations_custom') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) -%}\n {%- for col in cols -%}\n\n {#- If an exclude list was provided and the column is in the list, do nothing -#}\n {%- if exclude and col.column | lower in all_excludes -%}\n\n {#- If an include list was provided and the column is not in the list, do nothing -#}\n {%- elif include and col.column | lower not in all_includes -%}\n\n {#- Otherwise add the column to the column superset -#}\n {%- else -%}\n\n {#- update the list of columns in this relation -#}\n {%- do relation_columns[relation].append(col.column) -%}\n\n {%- if col.column in column_superset -%}\n\n {%- set stored = column_superset[col.column] -%}\n {%- if col.is_string() and stored.is_string() and col.string_size() > stored.string_size() -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif %}\n\n {%- else -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif -%}\n\n {%- endif -%}\n\n {%- endfor -%}\n {%- endfor -%}\n\n {%- set ordered_column_names = column_superset.keys() -%}\n {%- set dbt_command = flags.WHICH -%}\n\n\n {% if dbt_command in ['run', 'build'] %}\n {% if (include | length > 0 or exclude | length > 0) and not column_superset.keys() %}\n {%- set relations_string -%}\n {%- for relation in relations -%}\n {{ relation.name }}\n {%- if not loop.last %}, {% endif -%}\n {%- endfor -%}\n {%- endset -%}\n\n {%- set error_message -%}\n There were no columns found to union for relations {{ relations_string }}\n {%- endset -%}\n\n {{ exceptions.raise_compiler_error(error_message) }}\n {%- endif -%}\n {%- endif -%}\n\n {%- for relation in relations %}\n\n (\n select\n\n {%- if source_column_name is not none %}\n {# dbt_utils union_relations includes the table in the source_relation. For Fivetran dbt package purposes the table should not be included in the source relation. #}\n cast({{ dbt.string_literal(relation.database ~ '.' ~ relation.schema) }} as {{ dbt.type_string() }}) as {{ source_column_name }},\n {%- endif %}\n\n {% for col_name in ordered_column_names -%}\n\n {%- set col = column_superset[col_name] %}\n {%- set col_type = column_override.get(col.column, col.data_type) %}\n {%- set col_name = adapter.quote(col_name) if col_name in relation_columns[relation] else 'null' %}\n cast({{ col_name }} as {{ col_type }}) as {{ col.quoted }} {% if not loop.last %},{% endif -%}\n\n {%- endfor %}\n \n {# This alias is a change from dbt_utils union_relations code. Avoids errors if the table is named a reserved keyword #}\n from {{ aliases[loop.index0] if aliases else relation }} as unioned_relation_{{ loop.index }}\n\n {% if where -%}\n where {{ where }}\n {%- endif %}\n )\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n\n {%- endfor -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.string_literal", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "config": {"meta": {}, "docs": {"show": true, "node_color": null}}, "patch_path": null, "arguments": [{"name": "relations", "type": null, "description": ""}, {"name": "aliases", "type": null, "description": ""}, {"name": "column_override", "type": null, "description": ""}, {"name": "include", "type": null, "description": ""}, {"name": "exclude", "type": null, "description": ""}, {"name": "source_column_name", "type": null, "description": ""}, {"name": "where", "type": null, "description": ""}], "created_at": 1784670934.0725703, "supported_languages": null}}, "docs": {"doc.dbt.__overview__": {"name": "__overview__", "resource_type": "doc", "package_name": "dbt", "path": "overview.md", "original_file_path": "docs/overview.md", "unique_id": "doc.dbt.__overview__", "block_contents": "### Welcome!\n\nWelcome to the auto-generated documentation for your dbt project!\n\n### Navigation\n\nYou can use the `Project` and `Database` navigation tabs on the left side of the window to explore the models\nin your project.\n\n#### Project Tab\nThe `Project` tab mirrors the directory structure of your dbt project. In this tab, you can see all of the\nmodels defined in your dbt project, as well as models imported from dbt packages.\n\n#### Database Tab\nThe `Database` tab also exposes your models, but in a format that looks more like a database explorer. This view\nshows relations (tables and views) grouped into database schemas. Note that ephemeral models are _not_ shown\nin this interface, as they do not exist in the database.\n\n### Graph Exploration\nYou can click the blue icon on the bottom-right corner of the page to view the lineage graph of your models.\n\nOn model pages, you'll see the immediate parents and children of the model you're exploring. By clicking the `Expand`\nbutton at the top-right of this lineage pane, you'll be able to see all of the models that are used to build,\nor are built from, the model you're exploring.\n\nOnce expanded, you'll be able to use the `--select` and `--exclude` model selection syntax to filter the\nmodels in the graph. For more information on model selection, check out the [dbt docs](https://docs.getdbt.com/docs/model-selection-syntax).\n\nNote that you can also right-click on models to interactively filter and explore the graph.\n\n---\n\n### More information\n\n- [What is dbt](https://docs.getdbt.com/docs/introduction)?\n- Read the [dbt viewpoint](https://docs.getdbt.com/docs/viewpoint)\n- [Installation](https://docs.getdbt.com/docs/installation)\n- Join the [dbt Community](https://www.getdbt.com/community/) for questions and discussion"}, "doc.stripe._fivetran_synced": {"name": "_fivetran_synced", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe._fivetran_synced", "block_contents": "The timestamp that Fivetran last synced the record."}, "doc.stripe.source_relation": {"name": "source_relation", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.source_relation", "block_contents": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string."}, "doc.stripe.created": {"name": "created", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.created", "block_contents": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided."}, "doc.stripe.created_at": {"name": "created_at", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.created_at", "block_contents": "Time at which the record was created. Dates in the requested timezone, or UTC if not provided."}, "doc.stripe.created_utc": {"name": "created_utc", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.created_utc", "block_contents": "Time at which the record was created. Dates in UTC."}, "doc.stripe.city": {"name": "city", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.city", "block_contents": "City, district, suburb, town, or village."}, "doc.stripe.country": {"name": "country", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.country", "block_contents": "Two-letter country code (ISO 3166-1 alpha-2)."}, "doc.stripe.line_1": {"name": "line_1", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.line_1", "block_contents": "Address line 1 (e.g., street, PO Box, or company name)."}, "doc.stripe.line_2": {"name": "line_2", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.line_2", "block_contents": "Address line 2 (e.g., apartment, suite, unit, or building)."}, "doc.stripe.postal_code": {"name": "postal_code", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.postal_code", "block_contents": "ZIP or postal code."}, "doc.stripe.state": {"name": "state", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.state", "block_contents": "State, county, province, or region."}, "doc.stripe.convert_values": {"name": "convert_values", "resource_type": "doc", "package_name": "stripe", "path": "staging/docs.md", "original_file_path": "models/staging/docs.md", "unique_id": "doc.stripe.convert_values", "block_contents": "Values can be expressed either in the smallest currency unit (default) or in the major currency unit (divided by 100), as determined by the `stripe__convert_values` variable. Refer to the [README]((https://github.com/fivetran/dbt_stripe_source?tab=readme-ov-file#enabling-cent-to-dollar-conversion)) for more information."}}, "exposures": {}, "metrics": {}, "groups": {}, "selectors": {}, "disabled": {"test.stripe_integration_tests.consistency_payout_itemized_3": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_payout_itemized_3", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_payout_itemized_3.sql", "original_file_path": "tests/consistency/consistency_payout_itemized_3.sql", "unique_id": "test.stripe_integration_tests.consistency_payout_itemized_3", "fqn": ["stripe_integration_tests", "consistency", "consistency_payout_itemized_3"], "alias": "consistency_payout_itemized_3", "checksum": {"name": "sha256", "checksum": "5ed87032fd621ce6a120d806ca48d2c3fbce126b0749b802a507e581a861a75b"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670934.9787881, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith prod as (\n select *\n from {{ target.schema }}_stripe_prod.stripe__payout_itemized_3\n),\n\ndev as (\n select *\n from {{ target.schema }}_stripe_dev.stripe__payout_itemized_3\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_payout_itemized_3_count": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_payout_itemized_3_count", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_payout_itemized_3_count.sql", "original_file_path": "tests/consistency/consistency_payout_itemized_3_count.sql", "unique_id": "test.stripe_integration_tests.consistency_payout_itemized_3_count", "fqn": ["stripe_integration_tests", "consistency", "consistency_payout_itemized_3_count"], "alias": "consistency_payout_itemized_3_count", "checksum": {"name": "sha256", "checksum": "0a4fea0eae55a4df8737c718048d71d99c3d01d7ad785e5a80264a9c73aafbae"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.015911, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test is to make sure the rows counts are the same between versions\nwith prod as (\n select \n count(*) as prod_rows,\n sum(net) as net\n from {{ target.schema }}_stripe_prod.stripe__payout_itemized_3\n),\n\ndev as (\n select \n count(*) as dev_rows,\n sum(net) as net\n from {{ target.schema }}_stripe_dev.stripe__payout_itemized_3\n)\n\n-- test will return values and fail if the row counts don't match\nselect *\nfrom prod\njoin dev\n on prod.prod_rows != dev.dev_rows\n or prod.net != dev.net", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_subscription_item_mrr_report": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_subscription_item_mrr_report", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_subscription_item_mrr_report.sql", "original_file_path": "tests/consistency/consistency_subscription_item_mrr_report.sql", "unique_id": "test.stripe_integration_tests.consistency_subscription_item_mrr_report", "fqn": ["stripe_integration_tests", "consistency", "consistency_subscription_item_mrr_report"], "alias": "consistency_subscription_item_mrr_report", "checksum": {"name": "sha256", "checksum": "974fc4ab11d8914af1ee48a009325e158caf73ecbca356df3ee2d8bb8a2b2ab8"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.0214307, "relation_name": null, "raw_code": "{{ config(\r\n tags=\"fivetran_validations\",\r\n enabled=var('fivetran_validation_tests_enabled', false)\r\n) }}\r\nwith prod as (\r\n select *\r\n from {{ target.schema }}_stripe_prod.stripe__subscription_item_mrr_report\r\n),\r\n\r\ndev as (\r\n select *\r\n from {{ target.schema }}_stripe_dev.stripe__subscription_item_mrr_report\r\n),\r\n\r\nprod_not_in_dev as (\r\n -- rows from prod not found in dev\r\n select * from prod\r\n except distinct\r\n select * from dev\r\n),\r\n\r\ndev_not_in_prod as (\r\n -- rows from dev not found in prod\r\n select * from dev\r\n except distinct\r\n select * from prod\r\n),\r\n\r\nfinal as (\r\n select\r\n *,\r\n 'from prod' as source\r\n from prod_not_in_dev\r\n\r\n union all -- union since we only care if rows are produced\r\n\r\n select\r\n *,\r\n 'from dev' as source\r\n from dev_not_in_prod\r\n)\r\n\r\nselect *\r\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_daily_overview": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_daily_overview", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_daily_overview.sql", "original_file_path": "tests/consistency/consistency_daily_overview.sql", "unique_id": "test.stripe_integration_tests.consistency_daily_overview", "fqn": ["stripe_integration_tests", "consistency", "consistency_daily_overview"], "alias": "consistency_daily_overview", "checksum": {"name": "sha256", "checksum": "b67cc14e397adf9a42d7060b8f354cf0dcf75054e198a5c480a4fea7ed236eef"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.0269089, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test ensures the daily_overview end model matches the prior version\n-- and is aggregated on the date_index grain since the rollings totals will cause variation at the account_id grain\n-- the below iterates through the prod and dev names to reduce redudancy of logic\nwith\n{% for prod_or_dev in ('prod', 'dev') %}\n {% set cols = adapter.get_columns_in_relation(ref('stripe__daily_overview')) %}\n {{ prod_or_dev }} as (\n select\n date_index,\n source_relation\n {% for col in cols if col.name not in [\"account_id\", \"account_daily_id\", \"date_day\", \"date_week\", \"date_month\", \"date_year\", \"date_index\", \"source_relation\"] %}\n , floor(sum({{ col.name }})) as summed_{{ col.name }} -- floor and sum is to keep consistency between dev and prod aggs\n {% endfor %}\n from {{ target.schema }}_stripe_{{ prod_or_dev }}.stripe__daily_overview\n group by 1,2 -- need to group to remove randomization stemming from rolling totals\n ),\n{% endfor %} \n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__daily_overview", "package": null, "version": null}, {"name": "stripe__daily_overview", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_customer_overview": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_customer_overview", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_customer_overview.sql", "original_file_path": "tests/consistency/consistency_customer_overview.sql", "unique_id": "test.stripe_integration_tests.consistency_customer_overview", "fqn": ["stripe_integration_tests", "consistency", "consistency_customer_overview"], "alias": "consistency_customer_overview", "checksum": {"name": "sha256", "checksum": "a4876c1166941e29dc958941547a31299aa6c51c457047ee4ef30e1f0b127a49"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.0358622, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test ensures the customer_overview end model matches the prior version by comparing the aggregated fields\n-- the below iterates through the prod and dev names to reduce redundancy of logic\nwith\n{% for prod_or_dev in ('prod', 'dev') %}\n {% set cols = [\n 'total_sales',\n 'total_refunds',\n 'total_gross_transaction_amount',\n 'total_fees',\n 'total_net_transaction_amount',\n 'total_sales_count',\n 'total_refund_count',\n 'sales_this_month',\n 'refunds_this_month',\n 'gross_transaction_amount_this_month',\n 'fees_this_month',\n 'net_transaction_amount_this_month',\n 'sales_count_this_month',\n 'refund_count_this_month',\n 'total_failed_charge_count',\n 'total_failed_charge_amount',\n 'failed_charge_count_this_month',\n 'failed_charge_amount_this_month'\n ] %}\n\n {{ prod_or_dev }} as (\n select\n {% for col in cols %}\n {% if not loop.first %}, {% endif %}\n floor(sum({{ col }})) as summed_{{ col }} -- floor and sum is to keep consistency between dev and prod aggs\n {% endfor %}\n from {{ target.schema }}_stripe_{{ prod_or_dev }}.stripe__customer_overview\n ),\n{% endfor %}\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_daily_overview_count": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_daily_overview_count", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_daily_overview_count.sql", "original_file_path": "tests/consistency/consistency_daily_overview_count.sql", "unique_id": "test.stripe_integration_tests.consistency_daily_overview_count", "fqn": ["stripe_integration_tests", "consistency", "consistency_daily_overview_count"], "alias": "consistency_daily_overview_count", "checksum": {"name": "sha256", "checksum": "93063abf9db09786d72a53bc33cbbc16b54f8ac177c049005002dd1426caefe4"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.044764, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test is to make sure the rows counts are the same between versions\nwith prod as (\n select count(*) as prod_rows\n from {{ target.schema }}_stripe_prod.stripe__daily_overview\n),\n\ndev as (\n select count(*) as dev_rows\n from {{ target.schema }}_stripe_dev.stripe__daily_overview\n)\n\n-- test will return values and fail if the row counts don't match\nselect *\nfrom prod\njoin dev\n on prod.prod_rows != dev.dev_rows", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_activity_itemized_2": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_activity_itemized_2", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_activity_itemized_2.sql", "original_file_path": "tests/consistency/consistency_activity_itemized_2.sql", "unique_id": "test.stripe_integration_tests.consistency_activity_itemized_2", "fqn": ["stripe_integration_tests", "consistency", "consistency_activity_itemized_2"], "alias": "consistency_activity_itemized_2", "checksum": {"name": "sha256", "checksum": "3e26a10613688df63e592a4f40ec93c92337d3e0e1e1a77d399285607911aab7"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.0501158, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith prod as (\n select balance_transaction_id, dispute_ids\n from {{ target.schema }}_stripe_prod.stripe__activity_itemized_2\n),\n\ndev as (\n select balance_transaction_id, dispute_ids\n from {{ target.schema }}_stripe_dev.stripe__activity_itemized_2\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_invoice_line_item_details": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_invoice_line_item_details", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_invoice_line_item_details.sql", "original_file_path": "tests/consistency/consistency_invoice_line_item_details.sql", "unique_id": "test.stripe_integration_tests.consistency_invoice_line_item_details", "fqn": ["stripe_integration_tests", "consistency", "consistency_invoice_line_item_details"], "alias": "consistency_invoice_line_item_details", "checksum": {"name": "sha256", "checksum": "098838c8f92396bd7db3efcadf065c5d1b1a3c14ae26fac80dc4387a43072256"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False) and var('stripe__using_invoices', True)"}, "created_at": 1784670935.05554, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false) and var('stripe__using_invoices', true) \n) }}\n\nwith prod as (\n select {{ dbt_utils.star(from=ref('stripe__invoice_line_item_details'), except=var('consistency_test_exclude_fields', '[]')) }}\n from {{ target.schema }}_stripe_prod.stripe__invoice_line_item_details\n),\n\ndev as (\n select {{ dbt_utils.star(from=ref('stripe__invoice_line_item_details'), except=var('consistency_test_exclude_fields', '[]')) }}\n from {{ target.schema }}_stripe_dev.stripe__invoice_line_item_details\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__invoice_line_item_details", "package": null, "version": null}, {"name": "stripe__invoice_line_item_details", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_ending_balance_reconciliation_itemized_4_count": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_ending_balance_reconciliation_itemized_4_count", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_ending_balance_reconciliation_itemized_4_count.sql", "original_file_path": "tests/consistency/consistency_ending_balance_reconciliation_itemized_4_count.sql", "unique_id": "test.stripe_integration_tests.consistency_ending_balance_reconciliation_itemized_4_count", "fqn": ["stripe_integration_tests", "consistency", "consistency_ending_balance_reconciliation_itemized_4_count"], "alias": "consistency_ending_balance_reconciliation_itemized_4_count", "checksum": {"name": "sha256", "checksum": "143f7b0c9973787623fdbc95b001f9a545d69eedc6253926ff6923e7cbabec16"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.0835228, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test is to make sure the rows counts are the same between versions\nwith prod as (\n select \n count(*) as prod_rows,\n sum(net) as net\n from {{ target.schema }}_stripe_prod.stripe__ending_balance_reconciliation_itemized_4\n),\n\ndev as (\n select \n count(*) as dev_rows,\n sum(net) as net\n from {{ target.schema }}_stripe_dev.stripe__ending_balance_reconciliation_itemized_4\n)\n\n-- test will return values and fail if the row counts don't match\nselect *\nfrom prod\njoin dev\n on prod.prod_rows != dev.dev_rows\n or prod.net != dev.net", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_subscription_details": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_subscription_details", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_subscription_details.sql", "original_file_path": "tests/consistency/consistency_subscription_details.sql", "unique_id": "test.stripe_integration_tests.consistency_subscription_details", "fqn": ["stripe_integration_tests", "consistency", "consistency_subscription_details"], "alias": "consistency_subscription_details", "checksum": {"name": "sha256", "checksum": "ab9077422bf9b25d47968d41c3f5754fa909174890d30a32bc967a4dc1a79332"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.0890691, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith prod as (\n select {{ dbt_utils.star(from=ref('stripe__subscription_details'), except=var('consistency_test_exclude_fields', '[]')) }}\n from {{ target.schema }}_stripe_prod.stripe__subscription_details \n),\n\ndev as (\n select {{ dbt_utils.star(from=ref('stripe__subscription_details'), except=var('consistency_test_exclude_fields', '[]')) }}\n from {{ target.schema }}_stripe_dev.stripe__subscription_details\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [{"name": "stripe__subscription_details", "package": null, "version": null}, {"name": "stripe__subscription_details", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_line_item_enhanced": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_line_item_enhanced", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_line_item_enhanced.sql", "original_file_path": "tests/consistency/consistency_line_item_enhanced.sql", "unique_id": "test.stripe_integration_tests.consistency_line_item_enhanced", "fqn": ["stripe_integration_tests", "consistency", "consistency_line_item_enhanced"], "alias": "consistency_line_item_enhanced", "checksum": {"name": "sha256", "checksum": "0ff7c0b233fe02fcd1ca507fff36611ffe83997ecf60884dfa70ecb0b43006c2"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False) and var('stripe__standardized_billing_model_enabled', False)"}, "created_at": 1784670935.0970175, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false) and var('stripe__standardized_billing_model_enabled', false)\n) }}\n\nwith prod as (\n select *\n except(fee_amount, refund_amount, transaction_type) --remove before merge\n from {{ target.schema }}_stripe_prod.stripe__line_item_enhanced\n),\n\ndev as (\n select *\n except(fee_amount, refund_amount, transaction_type) --remove before merge\n from {{ target.schema }}_stripe_dev.stripe__line_item_enhanced\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_balance_transactions_count": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_balance_transactions_count", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_balance_transactions_count.sql", "original_file_path": "tests/consistency/consistency_balance_transactions_count.sql", "unique_id": "test.stripe_integration_tests.consistency_balance_transactions_count", "fqn": ["stripe_integration_tests", "consistency", "consistency_balance_transactions_count"], "alias": "consistency_balance_transactions_count", "checksum": {"name": "sha256", "checksum": "626fbfc6aaa652be6d1dbb4a296b404813d5e6a18f62a1ddd3117eb156e55513"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.102706, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test is to make sure the rows counts are the same between versions\nwith prod as (\n select \n count(*) as prod_rows,\n sum(customer_facing_amount) as customer_facing_amount,\n sum(balance_transaction_amount) as balance_transaction_amount,\n sum(balance_transaction_net) as balance_transaction_net\n from {{ target.schema }}_stripe_prod.stripe__balance_transactions\n),\n\ndev as (\n select \n count(*) as dev_rows,\n sum(customer_facing_amount) as customer_facing_amount,\n sum(balance_transaction_amount) as balance_transaction_amount,\n sum(balance_transaction_net) as balance_transaction_net\n from {{ target.schema }}_stripe_dev.stripe__balance_transactions\n)\n\n-- test will return values and fail if the row counts don't match\nselect *\nfrom prod\njoin dev\n on prod.prod_rows != dev.dev_rows\n or prod.customer_facing_amount != dev.customer_facing_amount\n or prod.balance_transaction_amount != dev.balance_transaction_amount\n or prod.balance_transaction_net != dev.balance_transaction_net", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_line_item_enhanced_count": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_line_item_enhanced_count", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_line_item_enhanced_count.sql", "original_file_path": "tests/consistency/consistency_line_item_enhanced_count.sql", "unique_id": "test.stripe_integration_tests.consistency_line_item_enhanced_count", "fqn": ["stripe_integration_tests", "consistency", "consistency_line_item_enhanced_count"], "alias": "consistency_line_item_enhanced_count", "checksum": {"name": "sha256", "checksum": "34af06290244e0651fb202d14a5860550add1c1c7342e1627560e66ee2648f90"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False) and var('stripe__standardized_billing_model_enabled', False)"}, "created_at": 1784670935.1082668, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false) and var('stripe__standardized_billing_model_enabled', false)\n) }}\n\n-- this test is to make sure the rows counts are the same between versions\nwith prod as (\n select \n count(*) as prod_rows,\n sum(unit_amount) as unit_amount\n from {{ target.schema }}_stripe_prod.stripe__line_item_enhanced\n),\n\ndev as (\n select \n count(*) as dev_rows,\n sum(unit_amount) as unit_amount\n from {{ target.schema }}_stripe_dev.stripe__line_item_enhanced\n)\n\n-- test will return values and fail if the row counts don't match\nselect *\nfrom prod\njoin dev\n on prod.prod_rows != dev.dev_rows\n or prod.unit_amount != dev.unit_amount", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_balance_change_from_activity_itemized_3": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_balance_change_from_activity_itemized_3", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_balance_change_from_activity_itemized_3.sql", "original_file_path": "tests/consistency/consistency_balance_change_from_activity_itemized_3.sql", "unique_id": "test.stripe_integration_tests.consistency_balance_change_from_activity_itemized_3", "fqn": ["stripe_integration_tests", "consistency", "consistency_balance_change_from_activity_itemized_3"], "alias": "consistency_balance_change_from_activity_itemized_3", "checksum": {"name": "sha256", "checksum": "8dfa36446a102b55de7d3d61c482731830cc85fd1d88d8674efd8e88ac380847"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.1141558, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith prod as (\n select balance_transaction_id, dispute_reasons\n from {{ target.schema }}_stripe_prod.stripe__balance_change_from_activity_itemized_3\n),\n\ndev as (\n select balance_transaction_id, dispute_reasons\n from {{ target.schema }}_stripe_dev.stripe__balance_change_from_activity_itemized_3\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.consistency_ending_balance_reconciliation_itemized_4": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "consistency_ending_balance_reconciliation_itemized_4", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "consistency/consistency_ending_balance_reconciliation_itemized_4.sql", "original_file_path": "tests/consistency/consistency_ending_balance_reconciliation_itemized_4.sql", "unique_id": "test.stripe_integration_tests.consistency_ending_balance_reconciliation_itemized_4", "fqn": ["stripe_integration_tests", "consistency", "consistency_ending_balance_reconciliation_itemized_4"], "alias": "consistency_ending_balance_reconciliation_itemized_4", "checksum": {"name": "sha256", "checksum": "f0fad963bb0be7177cf57ea362acbeb67c54a0073e707da352b56ccb5edaeba2"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.119513, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith prod as (\n select *\n from {{ target.schema }}_stripe_prod.stripe__ending_balance_reconciliation_itemized_4\n),\n\ndev as (\n select *\n from {{ target.schema }}_stripe_dev.stripe__ending_balance_reconciliation_itemized_4\n),\n\nprod_not_in_dev as (\n -- rows from prod not found in dev\n select * from prod\n except distinct\n select * from dev\n),\n\ndev_not_in_prod as (\n -- rows from dev not found in prod\n select * from dev\n except distinct\n select * from prod\n),\n\nfinal as (\n select\n *,\n 'from prod' as source\n from prod_not_in_dev\n\n union all -- union since we only care if rows are produced\n\n select\n *,\n 'from dev' as source\n from dev_not_in_prod\n)\n\nselect *\nfrom final", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.integrity_subscription_details": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "integrity_subscription_details", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "integrity/integrity_subscription_details.sql", "original_file_path": "tests/integrity/integrity_subscription_details.sql", "unique_id": "test.stripe_integration_tests.integrity_subscription_details", "fqn": ["stripe_integration_tests", "integrity", "integrity_subscription_details"], "alias": "integrity_subscription_details", "checksum": {"name": "sha256", "checksum": "544cfe9ecfe7b55f93fa6a7b3d9da3834cb66a6ed46c5e9cb9f7c30a345b486c"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.1271892, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith staging_model as (\n select \n count(*) as row_count,\n sum(days_until_due) as days_until_due,\n count(distinct customer_id) as distinct_customer_count\n from {{ ref('stg_stripe__subscription') }}\n),\n\nend_model as (\n select \n count(*) as row_count,\n sum(days_until_due) as days_until_due,\n count(distinct customer_id) as distinct_customer_count\n from {{ ref('stripe__subscription_details') }}\n)\n\nselect *\nfrom staging_model\njoin end_model\n on staging_model.row_count != end_model.row_count\n or staging_model.days_until_due != end_model.days_until_due\n or staging_model.distinct_customer_count != end_model.distinct_customer_count", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__subscription", "package": null, "version": null}, {"name": "stripe__subscription_details", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.integrity_balance_transactions": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "integrity_balance_transactions", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "integrity/integrity_balance_transactions.sql", "original_file_path": "tests/integrity/integrity_balance_transactions.sql", "unique_id": "test.stripe_integration_tests.integrity_balance_transactions", "fqn": ["stripe_integration_tests", "integrity", "integrity_balance_transactions"], "alias": "integrity_balance_transactions", "checksum": {"name": "sha256", "checksum": "8fde95dd9e750b720e33ddc94df7b90af5f9cb1708237b3ce7dbf7c327baab80"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.1332605, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith staging_model as (\n select \n count(*) as row_count,\n sum(amount) as balance_transaction_amount,\n sum(net) as balance_transaction_net\n from {{ ref('stg_stripe__balance_transaction') }}\n),\n\nend_model as (\n select \n count(*) as row_count,\n sum(balance_transaction_amount) as balance_transaction_amount,\n sum(balance_transaction_net) as balance_transaction_net\n from {{ ref('stripe__balance_transactions') }}\n)\n\nselect *\nfrom staging_model\njoin end_model\n on staging_model.row_count != end_model.row_count\n or staging_model.balance_transaction_amount != end_model.balance_transaction_amount\n or staging_model.balance_transaction_net != end_model.balance_transaction_net", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__balance_transaction", "package": null, "version": null}, {"name": "stripe__balance_transactions", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.integrity_line_item_enhanced": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "integrity_line_item_enhanced", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "integrity/integrity_line_item_enhanced.sql", "original_file_path": "tests/integrity/integrity_line_item_enhanced.sql", "unique_id": "test.stripe_integration_tests.integrity_line_item_enhanced", "fqn": ["stripe_integration_tests", "integrity", "integrity_line_item_enhanced"], "alias": "integrity_line_item_enhanced", "checksum": {"name": "sha256", "checksum": "b522efbe3f99988bd27d968ef428b89fadda17de8c1a161d06a691304489a3ef"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.138852, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\nwith staging_model as (\n select \n invoice_id as header_id,\n count(*) as stg_line_item_count,\n from {{ ref('stg_stripe__invoice_line_item') }}\n group by 1\n),\n\nend_model as (\n select \n header_id,\n count(*) as end_model_count\n from {{ ref('stripe__line_item_enhanced') }}\n group by 1\n),\n\nfinal as (\n select \n end_model.header_id as end_header_id,\n staging_model.header_id as staging_header_id,\n end_model.end_model_count as end_model_row_count,\n (staging_model.stg_line_item_count + 1) as stg_model_row_count\n from staging_model\n full outer join end_model\n on end_model.header_id = staging_model.header_id\n)\n\nselect *\nfrom final\nwhere end_model_row_count > stg_model_row_count -- At this moment we are most concerned about fanout. We will need to add significant logic to account for invoices that don't receive a header record. Therefore, to avoid this we can relying on the fact that no fanouts (end model has a greater count than staging) are occurring from this integrity test is sufficient.\n or end_header_id is null or staging_header_id is null", "doc_blocks": [], "language": "sql", "refs": [{"name": "stg_stripe__invoice_line_item", "package": null, "version": null}, {"name": "stripe__line_item_enhanced", "package": null, "version": null}], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "test.stripe_integration_tests.integrity_daily_overview": [{"database": "postgres", "schema": "public_dbt_test__audit", "name": "integrity_daily_overview", "resource_type": "test", "package_name": "stripe_integration_tests", "path": "integrity/integrity_daily_overview.sql", "original_file_path": "tests/integrity/integrity_daily_overview.sql", "unique_id": "test.stripe_integration_tests.integrity_daily_overview", "fqn": ["stripe_integration_tests", "integrity", "integrity_daily_overview"], "alias": "integrity_daily_overview", "checksum": {"name": "sha256", "checksum": "25ca95e8e98b7bb3ea5d6fa936c2383536787ddaeb936ae3bcb588660df323a1"}, "config": {"enabled": false, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": ["fivetran_validations"], "meta": {}, "group": null, "static_analysis": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "sql_header": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": ["fivetran_validations"], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"tags": "fivetran_validations", "enabled": "var('fivetran_validation_tests_enabled', False)"}, "created_at": 1784670935.144563, "relation_name": null, "raw_code": "{{ config(\n tags=\"fivetran_validations\",\n enabled=var('fivetran_validation_tests_enabled', false)\n) }}\n\n-- this test is to make sure there is no fanout between the spine and the daily_overview\nwith spine as (\n select count(*) as spine_count\n from {{ target.schema }}_stripe_dev.int_stripe__date_spine\n),\n\ndaily_overview as (\n select count(*) as daily_overview_count\n from {{ target.schema }}_stripe_dev.stripe__daily_overview\n)\n\n-- test will return values and fail if the row counts don't match\nselect *\nfrom spine\njoin daily_overview\n on spine.spine_count != daily_overview.daily_overview_count", "doc_blocks": [], "language": "sql", "refs": [], "sources": [], "metrics": [], "functions": [], "depends_on": {"macros": [], "nodes": []}, "compiled_path": null, "contract": {"enforced": false, "alias_types": true, "checksum": null}}], "seed.stripe_integration_tests.discount_data_snowflake": [{"database": "postgres", "schema": "public", "name": "discount_data_snowflake", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "discount_data_snowflake.csv", "original_file_path": "seeds/discount_data_snowflake.csv", "unique_id": "seed.stripe_integration_tests.discount_data_snowflake", "fqn": ["stripe_integration_tests", "discount_data_snowflake"], "alias": "discount_data", "checksum": {"name": "sha256", "checksum": "db440d8ec6d9d68625045a66bee2f4f1457b79bce00d64125a4980e4234fe769"}, "config": {"enabled": false, "alias": "discount_data", "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "alias": "discount_data", "enabled": "{{ target.type == 'snowflake' and not var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1784670935.4373088, "relation_name": "\"postgres\".\"public\".\"discount_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}], "seed.stripe_integration_tests.subscription_discount_data_snowflake": [{"database": "postgres", "schema": "public", "name": "subscription_discount_data_snowflake", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "subscription_discount_data_snowflake.csv", "original_file_path": "seeds/subscription_discount_data_snowflake.csv", "unique_id": "seed.stripe_integration_tests.subscription_discount_data_snowflake", "fqn": ["stripe_integration_tests", "subscription_discount_data_snowflake"], "alias": "subscription_discount_data", "checksum": {"name": "sha256", "checksum": "a49e7e20decdca955aafa2a5ff124c36b92b51e771d931f144f565d03fee9374"}, "config": {"enabled": false, "alias": "subscription_discount_data", "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "alias": "subscription_discount_data", "enabled": "{{ target.type == 'snowflake' and not var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1784670935.4449975, "relation_name": "\"postgres\".\"public\".\"subscription_discount_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}], "seed.stripe_integration_tests.discount_data": [{"database": "postgres", "schema": "public", "name": "discount_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "discount_data.csv", "original_file_path": "seeds/discount_data.csv", "unique_id": "seed.stripe_integration_tests.discount_data", "fqn": ["stripe_integration_tests", "discount_data"], "alias": "discount_data", "checksum": {"name": "sha256", "checksum": "d0ef2ceecdc6dcc4e0479bf0f1db5b191fd75f4b468af1922db05a159ba87132"}, "config": {"enabled": false, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "amount": "bigint", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "enabled": "{{ target.type not in ('snowflake', 'postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "amount": "{{ 'bigint' if target.type in ('redshift','postgres') else 'INT64' if target.type == 'bigquery' else 'bigint'}}", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1784670935.4599864, "relation_name": "\"postgres\".\"public\".\"discount_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}], "seed.stripe_integration_tests.subscription_discount_data": [{"database": "postgres", "schema": "public", "name": "subscription_discount_data", "resource_type": "seed", "package_name": "stripe_integration_tests", "path": "subscription_discount_data.csv", "original_file_path": "seeds/subscription_discount_data.csv", "unique_id": "seed.stripe_integration_tests.subscription_discount_data", "fqn": ["stripe_integration_tests", "subscription_discount_data"], "alias": "subscription_discount_data", "checksum": {"name": "sha256", "checksum": "44b0e2563fabeb7d9fbf9bd4fddea3b82b795f074c27d1f5d9b8dfc49ddac77d"}, "config": {"enabled": false, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "static_analysis": null, "materialized": "seed", "incremental_strategy": null, "batch_size": null, "lookback": 1, "begin": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "invoice_id": "varchar(500)"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": false, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "event_time": null, "concurrent_batches": null, "delimiter": ",", "quote_columns": true}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": false, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"docs": {"show": false}, "quote_columns": "{{ target.type in ('redshift','postgres') or var('fivetran_using_source_casing', false) }}", "enabled": "{{ target.type not in ('snowflake', 'postgres') or var('fivetran_using_source_casing', false) }}", "column_types": {"_fivetran_synced": "timestamp", "end": "timestamp", "invoice_id": "{{ 'varchar(500)' if target.type in ('redshift','postgres') else 'string'}}"}}, "created_at": 1784670935.483039, "relation_name": "\"postgres\".\"public\".\"subscription_discount_data\"", "raw_code": "", "doc_blocks": [], "root_path": "/home/runner/work/dbt_stripe/dbt_stripe/integration_tests", "depends_on": {"macros": []}}]}, "parent_map": {"seed.stripe_integration_tests.payment_method_card_data": [], "seed.stripe_integration_tests.credit_note_line_item_data": [], "seed.stripe_integration_tests.subscription_discount_data_postgres": [], "seed.stripe_integration_tests.credit_note_data": [], "seed.stripe_integration_tests.payout_balance_transaction_data": [], "seed.stripe_integration_tests.customer_data": [], "seed.stripe_integration_tests.dispute_data": [], "seed.stripe_integration_tests.payment_method_data": [], "seed.stripe_integration_tests.product_data": [], "seed.stripe_integration_tests.subscription_data": [], "seed.stripe_integration_tests.payout_data": [], "seed.stripe_integration_tests.account_data": [], "seed.stripe_integration_tests.refund_data": [], "seed.stripe_integration_tests.price_data": [], "seed.stripe_integration_tests.charge_data": [], "seed.stripe_integration_tests.balance_transaction_data": [], "seed.stripe_integration_tests.payment_intent_data": [], "seed.stripe_integration_tests.plan_data": [], "seed.stripe_integration_tests.invoice_line_item_data": [], "seed.stripe_integration_tests.discount_data_postgres": [], "seed.stripe_integration_tests.fee_data": [], "seed.stripe_integration_tests.transfer_data": [], "seed.stripe_integration_tests.subscription_history_data": [], "seed.stripe_integration_tests.coupon_data": [], "seed.stripe_integration_tests.subscription_item_data": [], "seed.stripe_integration_tests.invoice_data": [], "seed.stripe_integration_tests.card_data": [], "model.stripe.stripe__balance_transactions": ["model.stripe.stg_stripe__account", "model.stripe.stg_stripe__balance_transaction", "model.stripe.stg_stripe__card", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__customer", "model.stripe.stg_stripe__dispute", "model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__payment_intent", "model.stripe.stg_stripe__payment_method", "model.stripe.stg_stripe__payment_method_card", "model.stripe.stg_stripe__payout", "model.stripe.stg_stripe__payout_balance_transaction", "model.stripe.stg_stripe__refund", "model.stripe.stg_stripe__subscription", "model.stripe.stg_stripe__transfer"], "model.stripe.stripe__customer_overview": ["model.stripe.int_stripe__incomplete_charges", "model.stripe.stg_stripe__customer", "model.stripe.stripe__balance_transactions"], "model.stripe.stripe__subscription_details": ["model.stripe.int_stripe__deduped_subscription_item", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__customer", "model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__subscription"], "model.stripe.stripe__subscription_item_mrr_report": ["model.stripe.int_stripe__subscription_discount", "model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__price_plan", "model.stripe.stg_stripe__subscription", "model.stripe.stg_stripe__subscription_item"], "model.stripe.stripe__invoice_line_item_details": ["model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__price_plan", "model.stripe.stg_stripe__subscription", "model.stripe.stripe__invoice_details"], "model.stripe.stripe__daily_overview": ["model.stripe.int_stripe__account_partitions"], "model.stripe.stripe__invoice_details": ["model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__customer", "model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__price_plan", "model.stripe.stg_stripe__subscription"], "model.stripe.stripe__line_item_enhanced": ["model.stripe.int_stripe__deduped_subscription_item", "model.stripe.stg_stripe__account", "model.stripe.stg_stripe__balance_transaction", "model.stripe.stg_stripe__charge", "model.stripe.stg_stripe__customer", "model.stripe.stg_stripe__discount", "model.stripe.stg_stripe__fee", "model.stripe.stg_stripe__invoice", "model.stripe.stg_stripe__invoice_line_item", "model.stripe.stg_stripe__payment_intent", "model.stripe.stg_stripe__payment_method", "model.stripe.stg_stripe__price_plan", "model.stripe.stg_stripe__product", "model.stripe.stg_stripe__refund", "model.stripe.stg_stripe__subscription"], "model.stripe.stg_stripe__invoice": ["model.stripe.stg_stripe__invoice_tmp"], "model.stripe.stg_stripe__transfer": ["model.stripe.stg_stripe__transfer_tmp"], "model.stripe.stg_stripe__dispute": ["model.stripe.stg_stripe__dispute_tmp"], "model.stripe.stg_stripe__payout": ["model.stripe.stg_stripe__payout_tmp"], "model.stripe.stg_stripe__refund": ["model.stripe.stg_stripe__refund_tmp"], "model.stripe.stg_stripe__product": ["model.stripe.stg_stripe__product_tmp"], "model.stripe.stg_stripe__invoice_line_item": ["model.stripe.stg_stripe__invoice_line_item_tmp"], "model.stripe.stg_stripe__price_plan": ["model.stripe.stg_stripe__price_plan_tmp"], "model.stripe.stg_stripe__discount": ["model.stripe.stg_stripe__discount_tmp"], "model.stripe.stg_stripe__charge": ["model.stripe.stg_stripe__charge_tmp"], "model.stripe.stg_stripe__coupon": ["model.stripe.stg_stripe__coupon_tmp"], "model.stripe.stg_stripe__subscription_discount": ["model.stripe.stg_stripe__subscription_discount_tmp"], "model.stripe.stg_stripe__account": ["model.stripe.stg_stripe__account_tmp"], "model.stripe.stg_stripe__payment_method": ["model.stripe.stg_stripe__payment_method_tmp"], "model.stripe.stg_stripe__fee": ["model.stripe.stg_stripe__fee_tmp"], "model.stripe.stg_stripe__card": ["model.stripe.stg_stripe__card_tmp"], "model.stripe.stg_stripe__subscription": ["model.stripe.stg_stripe__subscription_tmp"], "model.stripe.stg_stripe__credit_note_line_item": ["model.stripe.stg_stripe__credit_note_line_item_tmp"], "model.stripe.stg_stripe__payment_method_card": ["model.stripe.stg_stripe__payment_method_card_tmp"], "model.stripe.stg_stripe__credit_note": ["model.stripe.stg_stripe__credit_note_tmp"], "model.stripe.stg_stripe__payment_intent": ["model.stripe.stg_stripe__payment_intent_tmp"], "model.stripe.stg_stripe__customer": ["model.stripe.stg_stripe__customer_tmp"], "model.stripe.stg_stripe__payout_balance_transaction": ["model.stripe.stg_stripe__payout_balance_transaction_tmp"], "model.stripe.stg_stripe__balance_transaction": ["model.stripe.stg_stripe__balance_transaction_tmp"], "model.stripe.stg_stripe__subscription_item": ["model.stripe.stg_stripe__subscription_item_tmp"], "model.stripe.stg_stripe__invoice_line_item_tmp": ["source.stripe.stripe.invoice_line_item"], "model.stripe.stg_stripe__credit_note_line_item_tmp": ["source.stripe.stripe.credit_note_line_item"], "model.stripe.stg_stripe__invoice_tmp": ["source.stripe.stripe.invoice"], "model.stripe.stg_stripe__payout_balance_transaction_tmp": ["source.stripe.stripe.payout_balance_transaction"], "model.stripe.stg_stripe__dispute_tmp": ["source.stripe.stripe.dispute"], "model.stripe.stg_stripe__refund_tmp": ["source.stripe.stripe.refund"], "model.stripe.stg_stripe__account_tmp": ["source.stripe.stripe.account"], "model.stripe.stg_stripe__balance_transaction_tmp": ["source.stripe.stripe.balance_transaction"], "model.stripe.stg_stripe__subscription_discount_tmp": ["source.stripe.stripe.subscription_discount"], "model.stripe.stg_stripe__charge_tmp": ["source.stripe.stripe.charge"], "model.stripe.stg_stripe__discount_tmp": ["source.stripe.stripe.discount"], "model.stripe.stg_stripe__product_tmp": ["source.stripe.stripe.product"], "model.stripe.stg_stripe__transfer_tmp": ["source.stripe.stripe.transfer"], "model.stripe.stg_stripe__customer_tmp": ["source.stripe.stripe.customer"], "model.stripe.stg_stripe__coupon_tmp": ["source.stripe.stripe.coupon"], "model.stripe.stg_stripe__fee_tmp": ["source.stripe.stripe.fee"], "model.stripe.stg_stripe__subscription_item_tmp": ["source.stripe.stripe.subscription_item"], "model.stripe.stg_stripe__credit_note_tmp": ["source.stripe.stripe.credit_note"], "model.stripe.stg_stripe__payout_tmp": ["source.stripe.stripe.payout"], "model.stripe.stg_stripe__card_tmp": ["source.stripe.stripe.card"], "model.stripe.stg_stripe__payment_method_tmp": ["source.stripe.stripe.payment_method"], "model.stripe.stg_stripe__subscription_tmp": ["source.stripe.stripe.subscription"], "model.stripe.stg_stripe__price_plan_tmp": ["source.stripe.stripe.plan"], "model.stripe.stg_stripe__payment_intent_tmp": ["source.stripe.stripe.payment_intent"], "model.stripe.stg_stripe__payment_method_card_tmp": ["source.stripe.stripe.payment_method_card"], "model.stripe.int_stripe__account_rolling_totals": ["model.stripe.int_stripe__account_daily", "model.stripe.int_stripe__date_spine"], "model.stripe.int_stripe__account_daily": ["model.stripe.int_stripe__date_spine", "model.stripe.int_stripe__incomplete_charges", "model.stripe.stripe__balance_transactions"], "model.stripe.int_stripe__date_spine": ["model.stripe.stg_stripe__account", "model.stripe.stripe__balance_transactions"], "model.stripe.int_stripe__deduped_subscription_item": ["model.stripe.stg_stripe__subscription_item"], "model.stripe.int_stripe__account_partitions": ["model.stripe.int_stripe__account_rolling_totals"], "model.stripe.int_stripe__subscription_discount": ["model.stripe.stg_stripe__coupon", "model.stripe.stg_stripe__subscription_discount"], "model.stripe.int_stripe__incomplete_charges": ["model.stripe.stg_stripe__charge"], "model.stripe.stripe__balance_change_from_activity_itemized_3": ["model.stripe.stripe__balance_transactions"], "model.stripe.stripe__activity_itemized_2": ["model.stripe.stripe__balance_transactions"], "model.stripe.stripe__payout_itemized_3": ["model.stripe.stripe__balance_transactions"], "model.stripe.stripe__ending_balance_reconciliation_itemized_4": ["model.stripe.stripe__balance_transactions"], "analysis.stripe.stripe__customer_mrr_analysis": ["model.stripe.stripe__subscription_item_mrr_report"], "analysis.stripe.stripe__arr_snapshot_analysis": ["model.stripe.stripe__subscription_item_mrr_report"], "test.stripe.not_null_stg_stripe__balance_transaction_balance_transaction_id.0ac20e778f": ["model.stripe.stg_stripe__balance_transaction"], "test.stripe.not_null_stg_stripe__card_card_id.edadd3106a": ["model.stripe.stg_stripe__card"], "test.stripe.not_null_stg_stripe__charge_charge_id.8941bc704a": ["model.stripe.stg_stripe__charge"], "test.stripe.not_null_stg_stripe__customer_customer_id.2e70421da0": ["model.stripe.stg_stripe__customer"], "test.stripe.not_null_stg_stripe__fee_balance_transaction_id.725d4ac005": ["model.stripe.stg_stripe__fee"], "test.stripe.not_null_stg_stripe__payment_intent_payment_intent_id.cb5b4d09eb": ["model.stripe.stg_stripe__payment_intent"], "test.stripe.not_null_stg_stripe__payment_method_card_payment_method_id.f246b11438": ["model.stripe.stg_stripe__payment_method_card"], "test.stripe.not_null_stg_stripe__payment_method_payment_method_id.0a8907c471": ["model.stripe.stg_stripe__payment_method"], "test.stripe.not_null_stg_stripe__payout_payout_id.6864a8acfc": ["model.stripe.stg_stripe__payout"], "test.stripe.not_null_stg_stripe__refund_refund_id.7c6dcedec0": ["model.stripe.stg_stripe__refund"], "test.stripe.not_null_stg_stripe__invoice_line_item_invoice_line_item_id.5b9c83b5f3": ["model.stripe.stg_stripe__invoice_line_item"], "test.stripe.not_null_stg_stripe__invoice_invoice_id.34cc0ff095": ["model.stripe.stg_stripe__invoice"], "test.stripe.not_null_stg_stripe__subscription_subscription_id.b242b1f7bc": ["model.stripe.stg_stripe__subscription"], "test.stripe.not_null_stg_stripe__subscription_item_subscription_item_id.dd9153a54a": ["model.stripe.stg_stripe__subscription_item"], "test.stripe.not_null_stg_stripe__credit_note_credit_note_id.d3e7f781dd": ["model.stripe.stg_stripe__credit_note"], "test.stripe.not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id.4a26fbafe7": ["model.stripe.stg_stripe__credit_note_line_item"], "test.stripe.not_null_stg_stripe__account_account_id.374858379a": ["model.stripe.stg_stripe__account"], "source.stripe.stripe.balance_transaction": [], "source.stripe.stripe.card": [], "source.stripe.stripe.charge": [], "source.stripe.stripe.customer": [], "source.stripe.stripe.dispute": [], "source.stripe.stripe.fee": [], "source.stripe.stripe.payment_intent": [], "source.stripe.stripe.payment_method_card": [], "source.stripe.stripe.payment_method": [], "source.stripe.stripe.payout": [], "source.stripe.stripe.payout_balance_transaction": [], "source.stripe.stripe.refund": [], "source.stripe.stripe.invoice_line_item": [], "source.stripe.stripe.invoice": [], "source.stripe.stripe.subscription_history": [], "source.stripe.stripe.subscription": [], "source.stripe.stripe.subscription_item": [], "source.stripe.stripe.plan": [], "source.stripe.stripe.credit_note": [], "source.stripe.stripe.credit_note_line_item": [], "source.stripe.stripe.price": [], "source.stripe.stripe.account": [], "source.stripe.stripe.transfer": [], "source.stripe.stripe.product": [], "source.stripe.stripe.discount": [], "source.stripe.stripe.subscription_discount": [], "source.stripe.stripe.coupon": []}, "child_map": {"seed.stripe_integration_tests.payment_method_card_data": [], "seed.stripe_integration_tests.credit_note_line_item_data": [], "seed.stripe_integration_tests.subscription_discount_data_postgres": [], "seed.stripe_integration_tests.credit_note_data": [], "seed.stripe_integration_tests.payout_balance_transaction_data": [], "seed.stripe_integration_tests.customer_data": [], "seed.stripe_integration_tests.dispute_data": [], "seed.stripe_integration_tests.payment_method_data": [], "seed.stripe_integration_tests.product_data": [], "seed.stripe_integration_tests.subscription_data": [], "seed.stripe_integration_tests.payout_data": [], "seed.stripe_integration_tests.account_data": [], "seed.stripe_integration_tests.refund_data": [], "seed.stripe_integration_tests.price_data": [], "seed.stripe_integration_tests.charge_data": [], "seed.stripe_integration_tests.balance_transaction_data": [], "seed.stripe_integration_tests.payment_intent_data": [], "seed.stripe_integration_tests.plan_data": [], "seed.stripe_integration_tests.invoice_line_item_data": [], "seed.stripe_integration_tests.discount_data_postgres": [], "seed.stripe_integration_tests.fee_data": [], "seed.stripe_integration_tests.transfer_data": [], "seed.stripe_integration_tests.subscription_history_data": [], "seed.stripe_integration_tests.coupon_data": [], "seed.stripe_integration_tests.subscription_item_data": [], "seed.stripe_integration_tests.invoice_data": [], "seed.stripe_integration_tests.card_data": [], "model.stripe.stripe__balance_transactions": ["model.stripe.int_stripe__account_daily", "model.stripe.int_stripe__date_spine", "model.stripe.stripe__activity_itemized_2", "model.stripe.stripe__balance_change_from_activity_itemized_3", "model.stripe.stripe__customer_overview", "model.stripe.stripe__ending_balance_reconciliation_itemized_4", "model.stripe.stripe__payout_itemized_3"], "model.stripe.stripe__customer_overview": [], "model.stripe.stripe__subscription_details": [], "model.stripe.stripe__subscription_item_mrr_report": ["analysis.stripe.stripe__arr_snapshot_analysis", "analysis.stripe.stripe__customer_mrr_analysis"], "model.stripe.stripe__invoice_line_item_details": [], "model.stripe.stripe__daily_overview": [], "model.stripe.stripe__invoice_details": ["model.stripe.stripe__invoice_line_item_details"], "model.stripe.stripe__line_item_enhanced": [], "model.stripe.stg_stripe__invoice": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__invoice_details", "model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_details", "test.stripe.not_null_stg_stripe__invoice_invoice_id.34cc0ff095"], "model.stripe.stg_stripe__transfer": ["model.stripe.stripe__balance_transactions"], "model.stripe.stg_stripe__dispute": ["model.stripe.stripe__balance_transactions"], "model.stripe.stg_stripe__payout": ["model.stripe.stripe__balance_transactions", "test.stripe.not_null_stg_stripe__payout_payout_id.6864a8acfc"], "model.stripe.stg_stripe__refund": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__line_item_enhanced", "test.stripe.not_null_stg_stripe__refund_refund_id.7c6dcedec0"], "model.stripe.stg_stripe__product": ["model.stripe.stripe__line_item_enhanced"], "model.stripe.stg_stripe__invoice_line_item": ["model.stripe.stripe__invoice_details", "model.stripe.stripe__invoice_line_item_details", "model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_details", "model.stripe.stripe__subscription_item_mrr_report", "test.stripe.not_null_stg_stripe__invoice_line_item_invoice_line_item_id.5b9c83b5f3"], "model.stripe.stg_stripe__price_plan": ["model.stripe.stripe__invoice_details", "model.stripe.stripe__invoice_line_item_details", "model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_item_mrr_report"], "model.stripe.stg_stripe__discount": ["model.stripe.stripe__line_item_enhanced"], "model.stripe.stg_stripe__charge": ["model.stripe.int_stripe__incomplete_charges", "model.stripe.stripe__balance_transactions", "model.stripe.stripe__invoice_details", "model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_details", "test.stripe.not_null_stg_stripe__charge_charge_id.8941bc704a"], "model.stripe.stg_stripe__coupon": ["model.stripe.int_stripe__subscription_discount"], "model.stripe.stg_stripe__subscription_discount": ["model.stripe.int_stripe__subscription_discount"], "model.stripe.stg_stripe__account": ["model.stripe.int_stripe__date_spine", "model.stripe.stripe__balance_transactions", "model.stripe.stripe__line_item_enhanced", "test.stripe.not_null_stg_stripe__account_account_id.374858379a"], "model.stripe.stg_stripe__payment_method": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__line_item_enhanced", "test.stripe.not_null_stg_stripe__payment_method_payment_method_id.0a8907c471"], "model.stripe.stg_stripe__fee": ["model.stripe.stripe__line_item_enhanced", "test.stripe.not_null_stg_stripe__fee_balance_transaction_id.725d4ac005"], "model.stripe.stg_stripe__card": ["model.stripe.stripe__balance_transactions", "test.stripe.not_null_stg_stripe__card_card_id.edadd3106a"], "model.stripe.stg_stripe__subscription": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__invoice_details", "model.stripe.stripe__invoice_line_item_details", "model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_details", "model.stripe.stripe__subscription_item_mrr_report", "test.stripe.not_null_stg_stripe__subscription_subscription_id.b242b1f7bc"], "model.stripe.stg_stripe__credit_note_line_item": ["test.stripe.not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id.4a26fbafe7"], "model.stripe.stg_stripe__payment_method_card": ["model.stripe.stripe__balance_transactions", "test.stripe.not_null_stg_stripe__payment_method_card_payment_method_id.f246b11438"], "model.stripe.stg_stripe__credit_note": ["test.stripe.not_null_stg_stripe__credit_note_credit_note_id.d3e7f781dd"], "model.stripe.stg_stripe__payment_intent": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__line_item_enhanced", "test.stripe.not_null_stg_stripe__payment_intent_payment_intent_id.cb5b4d09eb"], "model.stripe.stg_stripe__customer": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__customer_overview", "model.stripe.stripe__invoice_details", "model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_details", "test.stripe.not_null_stg_stripe__customer_customer_id.2e70421da0"], "model.stripe.stg_stripe__payout_balance_transaction": ["model.stripe.stripe__balance_transactions"], "model.stripe.stg_stripe__balance_transaction": ["model.stripe.stripe__balance_transactions", "model.stripe.stripe__line_item_enhanced", "test.stripe.not_null_stg_stripe__balance_transaction_balance_transaction_id.0ac20e778f"], "model.stripe.stg_stripe__subscription_item": ["model.stripe.int_stripe__deduped_subscription_item", "model.stripe.stripe__subscription_item_mrr_report", "test.stripe.not_null_stg_stripe__subscription_item_subscription_item_id.dd9153a54a"], "model.stripe.stg_stripe__invoice_line_item_tmp": ["model.stripe.stg_stripe__invoice_line_item"], "model.stripe.stg_stripe__credit_note_line_item_tmp": ["model.stripe.stg_stripe__credit_note_line_item"], "model.stripe.stg_stripe__invoice_tmp": ["model.stripe.stg_stripe__invoice"], "model.stripe.stg_stripe__payout_balance_transaction_tmp": ["model.stripe.stg_stripe__payout_balance_transaction"], "model.stripe.stg_stripe__dispute_tmp": ["model.stripe.stg_stripe__dispute"], "model.stripe.stg_stripe__refund_tmp": ["model.stripe.stg_stripe__refund"], "model.stripe.stg_stripe__account_tmp": ["model.stripe.stg_stripe__account"], "model.stripe.stg_stripe__balance_transaction_tmp": ["model.stripe.stg_stripe__balance_transaction"], "model.stripe.stg_stripe__subscription_discount_tmp": ["model.stripe.stg_stripe__subscription_discount"], "model.stripe.stg_stripe__charge_tmp": ["model.stripe.stg_stripe__charge"], "model.stripe.stg_stripe__discount_tmp": ["model.stripe.stg_stripe__discount"], "model.stripe.stg_stripe__product_tmp": ["model.stripe.stg_stripe__product"], "model.stripe.stg_stripe__transfer_tmp": ["model.stripe.stg_stripe__transfer"], "model.stripe.stg_stripe__customer_tmp": ["model.stripe.stg_stripe__customer"], "model.stripe.stg_stripe__coupon_tmp": ["model.stripe.stg_stripe__coupon"], "model.stripe.stg_stripe__fee_tmp": ["model.stripe.stg_stripe__fee"], "model.stripe.stg_stripe__subscription_item_tmp": ["model.stripe.stg_stripe__subscription_item"], "model.stripe.stg_stripe__credit_note_tmp": ["model.stripe.stg_stripe__credit_note"], "model.stripe.stg_stripe__payout_tmp": ["model.stripe.stg_stripe__payout"], "model.stripe.stg_stripe__card_tmp": ["model.stripe.stg_stripe__card"], "model.stripe.stg_stripe__payment_method_tmp": ["model.stripe.stg_stripe__payment_method"], "model.stripe.stg_stripe__subscription_tmp": ["model.stripe.stg_stripe__subscription"], "model.stripe.stg_stripe__price_plan_tmp": ["model.stripe.stg_stripe__price_plan"], "model.stripe.stg_stripe__payment_intent_tmp": ["model.stripe.stg_stripe__payment_intent"], "model.stripe.stg_stripe__payment_method_card_tmp": ["model.stripe.stg_stripe__payment_method_card"], "model.stripe.int_stripe__account_rolling_totals": ["model.stripe.int_stripe__account_partitions"], "model.stripe.int_stripe__account_daily": ["model.stripe.int_stripe__account_rolling_totals"], "model.stripe.int_stripe__date_spine": ["model.stripe.int_stripe__account_daily", "model.stripe.int_stripe__account_rolling_totals"], "model.stripe.int_stripe__deduped_subscription_item": ["model.stripe.stripe__line_item_enhanced", "model.stripe.stripe__subscription_details"], "model.stripe.int_stripe__account_partitions": ["model.stripe.stripe__daily_overview"], "model.stripe.int_stripe__subscription_discount": ["model.stripe.stripe__subscription_item_mrr_report"], "model.stripe.int_stripe__incomplete_charges": ["model.stripe.int_stripe__account_daily", "model.stripe.stripe__customer_overview"], "model.stripe.stripe__balance_change_from_activity_itemized_3": [], "model.stripe.stripe__activity_itemized_2": [], "model.stripe.stripe__payout_itemized_3": [], "model.stripe.stripe__ending_balance_reconciliation_itemized_4": [], "analysis.stripe.stripe__customer_mrr_analysis": [], "analysis.stripe.stripe__arr_snapshot_analysis": [], "test.stripe.not_null_stg_stripe__balance_transaction_balance_transaction_id.0ac20e778f": [], "test.stripe.not_null_stg_stripe__card_card_id.edadd3106a": [], "test.stripe.not_null_stg_stripe__charge_charge_id.8941bc704a": [], "test.stripe.not_null_stg_stripe__customer_customer_id.2e70421da0": [], "test.stripe.not_null_stg_stripe__fee_balance_transaction_id.725d4ac005": [], "test.stripe.not_null_stg_stripe__payment_intent_payment_intent_id.cb5b4d09eb": [], "test.stripe.not_null_stg_stripe__payment_method_card_payment_method_id.f246b11438": [], "test.stripe.not_null_stg_stripe__payment_method_payment_method_id.0a8907c471": [], "test.stripe.not_null_stg_stripe__payout_payout_id.6864a8acfc": [], "test.stripe.not_null_stg_stripe__refund_refund_id.7c6dcedec0": [], "test.stripe.not_null_stg_stripe__invoice_line_item_invoice_line_item_id.5b9c83b5f3": [], "test.stripe.not_null_stg_stripe__invoice_invoice_id.34cc0ff095": [], "test.stripe.not_null_stg_stripe__subscription_subscription_id.b242b1f7bc": [], "test.stripe.not_null_stg_stripe__subscription_item_subscription_item_id.dd9153a54a": [], "test.stripe.not_null_stg_stripe__credit_note_credit_note_id.d3e7f781dd": [], "test.stripe.not_null_stg_stripe__credit_note_line_item_credit_note_line_item_id.4a26fbafe7": [], "test.stripe.not_null_stg_stripe__account_account_id.374858379a": [], "source.stripe.stripe.balance_transaction": ["model.stripe.stg_stripe__balance_transaction_tmp"], "source.stripe.stripe.card": ["model.stripe.stg_stripe__card_tmp"], "source.stripe.stripe.charge": ["model.stripe.stg_stripe__charge_tmp"], "source.stripe.stripe.customer": ["model.stripe.stg_stripe__customer_tmp"], "source.stripe.stripe.dispute": ["model.stripe.stg_stripe__dispute_tmp"], "source.stripe.stripe.fee": ["model.stripe.stg_stripe__fee_tmp"], "source.stripe.stripe.payment_intent": ["model.stripe.stg_stripe__payment_intent_tmp"], "source.stripe.stripe.payment_method_card": ["model.stripe.stg_stripe__payment_method_card_tmp"], "source.stripe.stripe.payment_method": ["model.stripe.stg_stripe__payment_method_tmp"], "source.stripe.stripe.payout": ["model.stripe.stg_stripe__payout_tmp"], "source.stripe.stripe.payout_balance_transaction": ["model.stripe.stg_stripe__payout_balance_transaction_tmp"], "source.stripe.stripe.refund": ["model.stripe.stg_stripe__refund_tmp"], "source.stripe.stripe.invoice_line_item": ["model.stripe.stg_stripe__invoice_line_item_tmp"], "source.stripe.stripe.invoice": ["model.stripe.stg_stripe__invoice_tmp"], "source.stripe.stripe.subscription_history": [], "source.stripe.stripe.subscription": ["model.stripe.stg_stripe__subscription_tmp"], "source.stripe.stripe.subscription_item": ["model.stripe.stg_stripe__subscription_item_tmp"], "source.stripe.stripe.plan": ["model.stripe.stg_stripe__price_plan_tmp"], "source.stripe.stripe.credit_note": ["model.stripe.stg_stripe__credit_note_tmp"], "source.stripe.stripe.credit_note_line_item": ["model.stripe.stg_stripe__credit_note_line_item_tmp"], "source.stripe.stripe.price": [], "source.stripe.stripe.account": ["model.stripe.stg_stripe__account_tmp"], "source.stripe.stripe.transfer": ["model.stripe.stg_stripe__transfer_tmp"], "source.stripe.stripe.product": ["model.stripe.stg_stripe__product_tmp"], "source.stripe.stripe.discount": ["model.stripe.stg_stripe__discount_tmp"], "source.stripe.stripe.subscription_discount": ["model.stripe.stg_stripe__subscription_discount_tmp"], "source.stripe.stripe.coupon": ["model.stripe.stg_stripe__coupon_tmp"]}, "group_map": {}, "saved_queries": {}, "semantic_models": {}, "unit_tests": {}, "functions": {}}
\ No newline at end of file
diff --git a/integration_tests/ci/test_scenarios.yml b/integration_tests/ci/test_scenarios.yml
index a6889289..923f76af 100644
--- a/integration_tests/ci/test_scenarios.yml
+++ b/integration_tests/ci/test_scenarios.yml
@@ -48,6 +48,12 @@ test_scenarios:
stripe__standardized_billing_model_enabled: true
include_incremental: false
+ - name: "subscriptions without invoices"
+ vars:
+ stripe__using_subscriptions: true
+ stripe__using_invoices: false
+ include_incremental: false
+
- name: "MDLS"
vars:
fivetran_using_source_casing: true
diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml
index bdb1c681..b4d7dee5 100644
--- a/integration_tests/dbt_project.yml
+++ b/integration_tests/dbt_project.yml
@@ -2,7 +2,7 @@ config-version: 2
name: 'stripe_integration_tests'
-version: '1.8.0'
+version: '1.9.0'
profile: 'integration_tests'
diff --git a/models/stripe.yml b/models/stripe.yml
index de06092e..2026db9f 100644
--- a/models/stripe.yml
+++ b/models/stripe.yml
@@ -967,7 +967,10 @@ models:
description: "{{ doc('source_relation') }}"
- name: stripe__subscription_item_mrr_report
- description: Each record represents a subscription item for a given month with monthly recurring revenue (MRR) metrics and movement classification. Tracks MRR changes over time, classifying each month as new, expansion, contraction, churned, reactivation, or unchanged.
+ description: >
+ Each record represents a subscription item for a given month with monthly recurring revenue (MRR) metrics and movement classification. Tracks MRR changes over time, classifying each month as new, expansion, contraction, churned, reactivation, or unchanged.
+ Reconstructs historical MRR amount changes from invoice line items and anchors each item's timeline to its creation date. Requires `stripe__using_invoices`: true to build.
+ See the [DECISIONLOG](https://github.com/fivetran/dbt_stripe/blob/main/DECISIONLOG.md) for full details.
columns:
- name: source_relation
description: "{{ doc('source_relation') }}"
@@ -990,7 +993,7 @@ models:
- name: subscription_year
description: Year of the subscription period.
- name: month_contract_mrr
- description: Contracted monthly recurring revenue for this subscription item for this subscription month before discounts are applied. "{{ doc('convert_values') }}"
+ description: Contracted monthly recurring revenue for this subscription item for this subscription month before discounts are applied. Historical months use current price with historical quantity. "{{ doc('convert_values') }}"
- name: month_discount_applied
description: Discount amount applied to this subscription item for this month, allocated proportionally based on the item's share of the subscription's total contracted MRR. "{{ doc('convert_values') }}"
- name: month_billed_mrr
diff --git a/models/stripe__subscription_item_mrr_report.sql b/models/stripe__subscription_item_mrr_report.sql
index 5a8f4221..b681965c 100644
--- a/models/stripe__subscription_item_mrr_report.sql
+++ b/models/stripe__subscription_item_mrr_report.sql
@@ -1,4 +1,4 @@
-{{ config(enabled=var('stripe__using_subscriptions', True)) }}
+{{ config(enabled=var('stripe__using_subscriptions', True) and var('stripe__using_invoices', True)) }}
{% if execute and flags.WHICH in ('run', 'build') %}
@@ -8,7 +8,7 @@
cast(
{{ dbt.date_trunc(
'month',
- "coalesce(subscription_item.current_period_start, subscription.current_period_start)"
+ "coalesce(subscription_item.created_at, subscription.created_at)"
) }} as date
)
),
@@ -65,6 +65,16 @@ price_plan as (
),
+-- Actual billed quantity per period; provides quantity history subscription_item lacks. Prorations excluded.
+invoice_line_item as (
+
+ select *
+ from {{ ref('stg_stripe__invoice_line_item') }}
+ where subscription_item_id is not null
+ and not coalesce(proration, false)
+
+),
+
{% if var('stripe__using_coupons', True) and var('stripe__using_subscription_discounts', True) %}
subscription_discount as (
@@ -95,6 +105,40 @@ date_dimensions as (
),
+-- Anchor each billed quantity to its period_start month, keeping the latest line per month.
+-- Months the period spans beyond period_start are filled later by the carry-forward logic.
+invoiced_quantity_by_month as (
+
+ select
+ invoice_line_item.source_relation,
+ invoice_line_item.subscription_item_id,
+ date_dimensions.subscription_month,
+ invoice_line_item.quantity,
+ row_number() over (
+ partition by
+ invoice_line_item.source_relation,
+ invoice_line_item.subscription_item_id,
+ date_dimensions.subscription_month
+ order by invoice_line_item.period_start desc
+ ) as rn
+ from invoice_line_item
+ inner join date_dimensions
+ on date_dimensions.subscription_month = cast({{ dbt.date_trunc('month', 'invoice_line_item.period_start') }} as date)
+
+),
+
+invoiced_quantity_deduped as (
+
+ select
+ source_relation,
+ subscription_item_id,
+ subscription_month,
+ quantity
+ from invoiced_quantity_by_month
+ where rn = 1
+
+),
+
base as (
select
@@ -103,9 +147,10 @@ base as (
subscription_item.subscription_id,
subscription.customer_id,
subscription.status as subscription_status,
+ coalesce(subscription_item.created_at, subscription.created_at) as item_created_at,
coalesce(subscription_item.current_period_start, subscription.current_period_start) as current_period_start,
coalesce(subscription_item.current_period_end, subscription.current_period_end) as current_period_end,
- subscription_item.quantity,
+ subscription_item.quantity as current_quantity,
price_plan.product_id,
price_plan.price_plan_id,
price_plan.recurring_interval,
@@ -129,8 +174,10 @@ normalized as (
subscription_id,
customer_id,
subscription_status,
+ item_created_at,
current_period_start,
current_period_end,
+ current_quantity,
product_id,
price_plan_id,
recurring_interval,
@@ -175,7 +222,7 @@ subscription_item_periods as (
price_plan_id,
subscription_status,
currency,
- min(cast({{ dbt.date_trunc('month', 'current_period_start') }} as date)) as first_active_month,
+ min(cast({{ dbt.date_trunc('month', 'item_created_at') }} as date)) as first_active_month,
cast({{ dbt.dateadd('month', 3, 'max(cast(' ~ dbt.date_trunc('month', 'current_period_end') ~ ' as date))') }} as date) as last_month_to_track
from normalized
{{ dbt_utils.group_by(8) }}
@@ -203,28 +250,79 @@ all_item_months as (
),
+-- attach the invoiced quantity to each month, then carry the most recent invoiced
+-- quantity forward across any months missing an invoice (gap months)
+item_month_invoiced as (
+
+ select
+ all_item_months.*,
+ invoiced_quantity_deduped.quantity as invoiced_quantity
+ from all_item_months
+ left join invoiced_quantity_deduped
+ on all_item_months.source_relation = invoiced_quantity_deduped.source_relation
+ and all_item_months.subscription_item_id = invoiced_quantity_deduped.subscription_item_id
+ and all_item_months.subscription_month = invoiced_quantity_deduped.subscription_month
+
+),
+
+-- increment a group id each time an invoiced quantity appears; gap months inherit the prior group
+item_month_grouped as (
+
+ select
+ *,
+ sum(case when invoiced_quantity is not null then 1 else 0 end) over (
+ partition by source_relation, subscription_item_id
+ order by subscription_month
+ rows between unbounded preceding and current row
+ ) as invoiced_group
+ from item_month_invoiced
+
+),
+
+-- within each group the single invoiced value carries forward to the gap months
+item_month_carried as (
+
+ select
+ *,
+ max(invoiced_quantity) over (
+ partition by source_relation, subscription_item_id, invoiced_group
+ ) as carried_quantity
+ from item_month_grouped
+
+),
+
-- Join back to normalized to determine if subscription was active in each month
item_months as (
select
- all_item_months.source_relation,
- all_item_months.subscription_item_id,
- all_item_months.subscription_id,
- all_item_months.customer_id,
- all_item_months.product_id,
- all_item_months.price_plan_id,
- all_item_months.subscription_status,
- all_item_months.currency,
- all_item_months.subscription_year,
- all_item_months.subscription_month,
- coalesce(normalized.mrr, 0) as mrr
- from all_item_months
+ item_month_carried.source_relation,
+ item_month_carried.subscription_item_id,
+ item_month_carried.subscription_id,
+ item_month_carried.customer_id,
+ item_month_carried.product_id,
+ item_month_carried.price_plan_id,
+ item_month_carried.subscription_status,
+ item_month_carried.currency,
+ item_month_carried.subscription_year,
+ item_month_carried.subscription_month,
+ -- set once to stay DRY; reused in the mrr calculation below
+ {% set effective_quantity %}
+ case
+ when item_month_carried.subscription_month = cast({{ last_month }} as date)
+ then coalesce(normalized.current_quantity, 1)
+ else coalesce(item_month_carried.carried_quantity, normalized.current_quantity, 1)
+ end
+ {% endset %}
+ -- current month uses live quantity, history uses the carried-forward invoiced quantity
+ coalesce(normalized.mrr, 0)
+ * {{ dbt_utils.safe_divide(effective_quantity, "coalesce(normalized.current_quantity, 1)") }} as mrr
+ from item_month_carried
left join normalized
- on all_item_months.source_relation = normalized.source_relation
- and all_item_months.subscription_item_id = normalized.subscription_item_id
- and all_item_months.price_plan_id = normalized.price_plan_id
- and all_item_months.subscription_month >= cast({{ dbt.date_trunc('month', 'normalized.current_period_start') }} as date)
- and all_item_months.subscription_month < cast({{ dbt.date_trunc('month', 'normalized.current_period_end') }} as date)
+ on item_month_carried.source_relation = normalized.source_relation
+ and item_month_carried.subscription_item_id = normalized.subscription_item_id
+ and item_month_carried.price_plan_id = normalized.price_plan_id
+ and item_month_carried.subscription_month >= cast({{ dbt.date_trunc('month', 'normalized.item_created_at') }} as date)
+ and item_month_carried.subscription_month < cast({{ dbt.date_trunc('month', 'normalized.current_period_end') }} as date)
),