diff --git a/models/silver/deployment_timestamp.md b/models/descriptions/deployment_timestamp.md similarity index 100% rename from models/silver/deployment_timestamp.md rename to models/descriptions/deployment_timestamp.md diff --git a/models/silver/silver__nft_moments.sql b/models/silver/silver__nft_moments.sql new file mode 100644 index 0000000..ce6ccba --- /dev/null +++ b/models/silver/silver__nft_moments.sql @@ -0,0 +1,47 @@ +{{ config( + materialized = 'incremental', + incremental_strategy = 'delete+insert', + cluster_by = ['_inserted_timestamp::DATE'], + unique_key = "CONCAT_WS('-', tx_id, event_index)", + tags = ['nft'] +) }} + +WITH events AS ( + + SELECT + * + FROM + {{ ref('silver__events_final') }} + +{% if is_incremental() %} +WHERE + _inserted_timestamp >= ( + SELECT + MAX(_inserted_timestamp) + FROM + {{ this }} + ) +{% endif %} +), +moment_events AS ( + SELECT + * + FROM + events + WHERE + event_type IN ( + 'MomentPurchased', + 'MomentLocked', + 'MomentCreated', + 'MomentNFTBurned', + 'MomentListed', + 'MomentDestroyed', + 'MomentWithdrawn', + 'MomentMinted', + 'MomentNFTMinted' + ) +) +SELECT + * +FROM + moment_events diff --git a/models/streamline/streamline__all_topshot_moments_minted_metadata_needed.sql b/models/streamline/streamline__all_topshot_moments_minted_metadata_needed.sql index c44b17c..ab959ea 100644 --- a/models/streamline/streamline__all_topshot_moments_minted_metadata_needed.sql +++ b/models/streamline/streamline__all_topshot_moments_minted_metadata_needed.sql @@ -8,7 +8,7 @@ WITH mints AS ( event_contract, event_data :momentID :: STRING AS moment_id FROM - {{ ref('silver__events_final') }} + {{ ref('silver__nft_moments') }} WHERE event_contract = 'A.0b2a3299cc857e29.TopShot' AND event_type = 'MomentMinted' diff --git a/models/streamline/streamline__allday_moments_metadata_needed.sql b/models/streamline/streamline__allday_moments_metadata_needed.sql index c6e5fb5..b556f0b 100644 --- a/models/streamline/streamline__allday_moments_metadata_needed.sql +++ b/models/streamline/streamline__allday_moments_metadata_needed.sql @@ -8,7 +8,7 @@ WITH mints AS ( event_contract, event_data :id :: STRING AS moment_id FROM - {{ ref('silver__events_final') }} + {{ ref('silver__nft_moments') }} WHERE event_contract = 'A.e4cf4bdc1751c65d.AllDay' AND event_type = 'MomentNFTMinted'