#Commented out for deprecating fa from Looker

# view: facts_prod_fact_analytics_v2 {
#   sql_table_name: facts.prod.fact_analytics ;;

#   dimension: artistid {
#     view_label: "Artist"
#     label: "Artist ID"
#     type: number
#     sql: ${TABLE}.artistid ;;
#     value_format: "0"
#   }

#   dimension: catalogid {
#     type: number
#     sql: ${TABLE}.catalogid ;;
#     hidden: yes
#   }

#   dimension: containertypeid {
#     type: number
#     sql: ${TABLE}.containertypeid ;;
#     hidden: yes
#   }

#   dimension: countryid {
#     view_label: "Transaction Country"
#     label: "Country ID"
#     type: number
#     sql: ${TABLE}.countryid ;;
#     value_format: "0"
#   }

#   dimension: is_local_activity_label {
#     label: "Is Local Activity by Label"
#     type: yesno
#     view_label: "Transaction Country"
#     sql: ${TABLE}.countryid = ${orch_app_ar_vendor.country};;
#   }

#   measure: local_activity_units {
#     label: "Local Units by Label Country"
#     view_label: "Transaction Country"
#     type: sum
#     sql: CASE
#           WHEN (${TABLE}.countryid = ${orch_app_ar_vendor.country}) THEN ${TABLE}.units
#           ELSE 0
#         END;;
#   }

#   measure: non_local_activity_units {
#     label: "Non-Local Units by Label Country"
#     view_label: "Transaction Country"
#     type: sum
#     sql: CASE
#           WHEN (${TABLE}.countryid != ${orch_app_ar_vendor.country}) THEN ${TABLE}.units
#           ELSE 0
#         END;;
#   }
#   measure:international_reach {
#   label: "International Reach"
#   view_label: "Transaction Country"
#   description: "% of non-local streams"
#   type: number
#   sql: (${non_local_activity_units}/${units});;
#   }

#   dimension: currencyid {
#     type: number
#     sql: ${TABLE}.currencyid ;;
#     hidden: yes
#   }

#   dimension: dayid {
#     type: number
#     sql: ${TABLE}.dayid ;;
#     hidden: yes
#   }

#   dimension_group: download_activity_date {
#     view_label: "Date"
#     label: "Activity"
#     type: time
#     sql: ${TABLE}.download_activity_date ;;
#     timeframes: [year,
#       quarter,
#       month,
#       week,
#       date,
#       day_of_year,
#       day_of_week,
#       week_of_year,
#       month_name,
#       month_num,
#       fiscal_month_num,
#       fiscal_quarter,
#       fiscal_quarter_of_year,
#       fiscal_year]
#   }

#   dimension_group: Current {
#     view_label: "Xtra Date (Do NOT use)"
#     type: time
#     sql: current_date()  ;;
# #     timeframes: [
# #       day_of_year
# #     ]
#     hidden:  no
#   }

#   dimension: catalog_type {
#     type: string
#     label: "Catalog Type"
#     description: "Frontline (0-3 Months), Midline (4-17 Months), or Catalog (18+ Months)"
#     view_label: "Release"
#     sql: CASE
#             WHEN DATEDIFF(month, ${orch_app_ar_releases.release_date}, ${TABLE}.download_activity_date) < 4 THEN 'Frontline'
#             WHEN DATEDIFF(month, ${orch_app_ar_releases.release_date}, ${TABLE}.download_activity_date) BETWEEN 4 AND 17 THEN 'Midline'
#             WHEN DATEDIFF(month, ${orch_app_ar_releases.release_date}, ${TABLE}.download_activity_date) > 17 THEN 'Catalog'
#             WHEN ${orch_app_ar_releases.release_date} IS NULL THEN 'Catalog'
#           END ;;
#   }

#   dimension: days_since_release {
#     view_label: "Date"
#     description: "Calculates the difference in days between an album's Release Date and when activity occured (Activity Date)"
#     type: number
#     sql: IFF(SIGN(DATEDIFF('day', ${orch_app_ar_releases.release_date}, ${TABLE}.download_activity_date)) = -1,
#       1, (DATEDIFF('day', ${orch_app_ar_releases.release_date}, ${TABLE}.download_activity_date) + 1)) ;;
#   }

#   dimension: weeks_since_release {
#     view_label: "Date"
#     description: "Calculates the difference in weeks between an album's Release Date and when activity occured (Activity Date)"
#     type: number
#     sql: IFF(SIGN(DATEDIFF('day', ${orch_app_ar_releases.release_date}, ${TABLE}.download_activity_date)) = -1,
#       1, CEIL((DATEDIFF('day', ${orch_app_ar_releases.release_date}, ${TABLE}.download_activity_date) + 1) / 7)) ;;
#   }

#   dimension: months_since_release {
#     view_label: "Date"
#     description: "Calculates the difference in months between an album's Release Date and when activity occured (Activity Date)"
#     type: number
#     sql: IFF(SIGN(DATEDIFF('day', ${orch_app_ar_releases.release_date}, ${TABLE}.download_activity_date)) = -1,
#       1, CEIL((DATEDIFF('day', ${orch_app_ar_releases.release_date}, ${TABLE}.download_activity_date) + 1) / 28)) ;;
#   }

#   measure: first_week_units{
#     view_label: "Units"
#     description: "Calculates the 1st week of Units"
#     type: sum
#     sql:CASE
#           WHEN ((DATEDIFF('day', ${orch_app_ar_releases.release_date}, ${TABLE}.download_activity_date)) >= -1
#                   and (DATEDIFF('day', ${orch_app_ar_releases.release_date}, ${TABLE}.download_activity_date)) <= 6)
#                       THEN ${TABLE}.units
#           ELSE 0
#           END;;
#   }

#   dimension: feedid {
#     view_label: "Data Source"
#     label: "Feed ID"
#     type: number
#     sql: ${TABLE}.feedid ;;
#     value_format: "0"
#   }

#   dimension: formatid {
#     type: number
#     sql: ${TABLE}.formatid ;;
#     hidden: yes
#   }

#   dimension: freeunits {
#     type: number
#     sql: ${TABLE}.freeunits ;;
#     hidden: yes
#   }

#   dimension: genreid {
#     type: number
#     sql: ${TABLE}.genreid ;;
#     hidden: yes
#   }

#   dimension: imprintid {
#     type: number
#     sql: ${TABLE}.imprintid ;;
#     hidden: yes
#   }

#   dimension: isrcid {
#     type: number
#     sql: ${TABLE}.isrcid ;;
#     hidden: yes
#   }

#   dimension: labelid {
#     view_label: "Label"
#     label: "Label ID"
#     type: number
#     sql: ${TABLE}.labelid ;;
#     value_format: "0"
#   }

#   dimension: licensorid {
#     view_label: "Data Source"
#     label: "Licensor ID"
#     type: number
#     sql: ${TABLE}.licensorid ;;
#     value_format: "0"
#   }

#   measure: completion_rate {
#     view_label: "Units"
#     type: average
#     sql: IFF(${TABLE}.listenduration >= ${facts_prod_dim_track.duration}, 1, 0) ;;
#     value_format: "00.0%"
#   }

#   measure: listener_duration {
#     view_label: "User"
#     label: "Listener Duration"
#     description: "Length of stream in seconds"
#     type: sum
#     sql: ${TABLE}.listenduration ;;
#   }

#   dimension: paidunits {
#     type: number
#     sql: ${TABLE}.paidunits ;;
#     hidden: yes
#   }

#   dimension: playlistid {
#     view_label: "Playlist"
#     label: "Playlist ID"
#     type: number
#     sql: ${TABLE}.playlistid ;;
#     value_format: "0"
#   }

#   dimension: source_is_playlist {
#     view_label: "Playlist"
#     type: yesno
#     sql: IFF(${TABLE}.playlistid IS NULL OR LENGTH(${TABLE}.playlistid) = 0, FALSE, TRUE) ;;
#   }

#   dimension:  playlist_group {
#     type: string
#     label: "Playlist SME Group"
#     view_label: "Playlist"
#     sql: CASE
#             WHEN ${int_dev_smoore_spotify_owner_mappings.owner_group} IN ('spotify', 'sound of spotify', 'spotify charts') AND ${facts_prod_dim_playlist.playlistname} NOT LIKE '%This Is%' AND ${facts_prod_dim_playlist.playlistname} NOT LIKE '%最愛...%' THEN 'Spotify Playlist'
#             WHEN ${int_dev_smoore_spotify_owner_mappings.owner_group} IN ('filtr', 'sony music', 'sony corp') THEN 'SME / Filtr'
#             WHEN ${int_dev_smoore_spotify_owner_mappings.owner_group} IN ('warner / topsify', 'universal / digster') THEN 'Other Majors'
#             WHEN ${int_dev_smoore_spotify_owner_mappings.owner_group} IN ('spotify', 'sound of spotify', 'spotify charts') AND ${facts_prod_dim_playlist.playlistname} LIKE '%This Is%' OR ${facts_prod_dim_playlist.playlistname} LIKE '%最愛...%' THEN 'This Is Playlist'
#             WHEN ${facts_prod_dim_playlist.playlisturi} IN ('yourDailyDrive', 'totga2017','dailyMix','yourTopSongs2019','homeMix','tastebreakers2018','onRepeat','summerJams','yourTopSongs2017','releaseRadar','yourTopSongs2018','yearInMusic','discoverWeekly','repeatRewind','timeCapsule') THEN 'Algorithmic'
#             WHEN ${facts_prod_dim_playlist.playlistid} IS NULL THEN 'Smaller Playlist'
#             ELSE 'Other 3rd Party Playlists'
#           END ;;
#     hidden: no
#   }

#   dimension: processeddaytime {
#     type: date_time
#     sql: ${TABLE}.processeddaytime ;;
#     hidden: yes
#   }

# #   dimension: regioncode {
# #     type: string
# #     sql: ${TABLE}.regioncode ;;
# #   }

#   dimension: releaseid {
#     view_label: "Release"
#     label: "UPC"
#     type: number
#     sql: ${TABLE}.releaseid ;;
#     value_format: "0"
#   }

#   dimension: reportdate {
#     type: date
#     sql: ${TABLE}.reportdate ;;
#     hidden: yes
#   }

#   dimension: royalty {
#     type: number
#     sql: ${TABLE}.royalty ;;
#     hidden: yes
#   }

#   dimension: royaltydollar {
#     type: number
#     sql: ${TABLE}.royaltydollar ;;
#     hidden: yes
#   }

#   dimension: sourcetypeid {
#     type: number
#     sql: ${TABLE}.sourcetypeid ;;
#     hidden: yes
#   }


#   dimension: active_passive_collection {
#     type: string
#     label: "Active/Passive/Collection"
#     description: "Buckets showing whether the stream came from an active (i.e. search), passive (i.e. playlist), or collection"
#     view_label: "Source Of Stream"
#     drill_fields: [source_type_normalized]
#     sql:  CASE ${TABLE}.storeid
#                                     WHEN 286 THEN
#                                       CASE
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('artist', 'album', 'search', 'play_queue') THEN 'Active'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('others_playlist', 'other', 'chart', 'radio') THEN 'Passive'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('collection') THEN 'Collection'
#                                         ELSE 'Other'
#                                       END
#                                     WHEN 1 THEN
#                                       CASE
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'None' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Other' AND COALESCE(${facts_prod_dim_playlist.playlisttypename}, 'Not applicable') = 'Not applicable' THEN 'Active'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'None' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Search' AND COALESCE(${facts_prod_dim_playlist.playlisttypename}, 'Not applicable') = 'Not applicable' THEN 'Active'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'None' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Discovery' AND COALESCE(${facts_prod_dim_playlist.playlisttypename}, 'Not applicable') = 'Not applicable' THEN 'Active'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Playlist' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Other' AND ${facts_prod_dim_playlist.playlisttypename} = 'Favorites Mix' THEN 'Active'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Playlist' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Library' AND ${facts_prod_dim_playlist.playlisttypename} = 'Favorites Mix' THEN 'Active'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Playlist' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Search' AND ${facts_prod_dim_playlist.playlisttypename} = 'Favorites Mix' THEN 'Active'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Playlist' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Discovery' AND ${facts_prod_dim_playlist.playlisttypename} = 'Favorites Mix' THEN 'Active'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Playlist' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'MusicKit' AND ${facts_prod_dim_playlist.playlisttypename} = 'Favorites Mix' THEN 'Active'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Album' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Other' AND COALESCE(${facts_prod_dim_playlist.playlisttypename}, 'Not applicable') = 'Not applicable' THEN 'Active'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Album' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Search' AND COALESCE(${facts_prod_dim_playlist.playlisttypename}, 'Not applicable') = 'Not applicable' THEN 'Active'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Album' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Discovery' AND COALESCE(${facts_prod_dim_playlist.playlisttypename}, 'Not applicable') = 'Not applicable' THEN 'Active'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Album' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'MusicKit' AND COALESCE(${facts_prod_dim_playlist.playlisttypename}, 'Not applicable') = 'Not applicable' THEN 'Active'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'None' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Library' AND COALESCE(${facts_prod_dim_playlist.playlisttypename}, 'Not applicable') = 'Not applicable' THEN 'Collection'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Playlist' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'MusicKit' AND ${facts_prod_dim_playlist.playlisttypename} = 'Private User Playlist' THEN 'Collection'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Playlist' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Library' AND COALESCE(${facts_prod_dim_playlist.playlisttypename}, 'Not applicable') = 'Not applicable' THEN 'Collection'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Playlist' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Library' AND ${facts_prod_dim_playlist.playlisttypename} = 'Private User Playlist' THEN 'Collection'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Album' AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Library' AND COALESCE(${facts_prod_dim_playlist.playlisttypename}, 'Not applicable') = 'Not applicable' THEN 'Collection'
#                                         ELSE 'Passive'
#                                       END
#                                     WHEN 187 THEN
#                                       CASE
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('GENRE', 'SEARCH', 'SHARED_PLAYLIST') THEN 'Active'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('UNLIMITED_STATION', 'UNLIMITED_PLAYLIST', 'AUTO_PLAYLIST', 'PRIME_PLAYLIST', 'PRIME_STATION', 'SIMILARITY', 'GNO_PRIME_PLAYLIST', 'GNO_UNL_PLAYLIST', 'SIMILARITY_STATION') THEN 'Passive'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('USER_PLAYLIST', 'ARTIST', 'SONGS', 'ALBUM','TRACK') THEN 'Collection'
#                                         ELSE 'Other'
#                                         END
#                                     WHEN 708 THEN
#                                       CASE
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('Album Play','Album play','Track play','Artist Top Track Play','Composer Top Track Play', 'Play from All Artist Tracks', 'Play from All Composer Tracks', 'Interactive') THEN 'Active'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('Autoplay from Album','Autoplay from All Artist Tracks','Autoplay from All Composer Tracks','Autoplay from Artist Top Tracks','Autoplay from Artist Tracks','Autoplay from Composer Top Tracks','Autoplay from Composer Tracks','Autoplay from Downloaded Tracks','Autoplay from Playlist','Autoplay from Station Samples','Autoplay from Track','Unknown Play Source','Playlist Play','Station','Station Play','Station Sample Track Play','Thumbed Up Track Play') THEN 'Passive'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('Autoplay from Collection Tracks','Autoplay from Thumbed Up Tracks','Collection Tracks Play','Downloaded Tracks Play') THEN 'Collection'
#                                         ELSE 'Other'
#                                         END
#                                     WHEN 1405 THEN
#                                       CASE
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('Search Results Page', 'Artist Profile Page','Content pages (for content provider-delivered album / track / playlist products outside of the collection)','Promotional areas curated by the provider (such as a recommended music page or "Browse" area)') THEN 'Active'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('User-Created playlists, and other user-curated areas (where selected tracks, albums, favorites, etc. are saved)') THEN 'Collection'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypeid} IN (177, 179, 182, 183, 184, 185, 186) THEN 'Passive'
#                                         ELSE 'Other'
#                                         END
#                                     WHEN 1505 THEN
#                                       CASE
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('Playlist') THEN 'Collection'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('Other') AND ${facts_prod_dim_playlist.playlistname} IS NOT NULL THEN 'Passive'
#                                         ELSE 'Other'
#                                         END
#                                         END;;
#   }


#   dimension: source_type_normalized {
#     type: string
#     label: "Source Name"
#     description: "Normalized source names for analysis"
#     view_label: "Source Of Stream"
#     drill_fields: [facts_prod_dim_sourcetype.sourcetypename, facts_prod_dim_containertype.containertypename, facts_prod_dim_playlist.playlisttype]
#     sql:  CASE ${TABLE}.storeid
#                                     WHEN 286 THEN
#                                       CASE
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'album' THEN 'Album'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'artist' THEN 'Artist'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'chart' THEN 'Chart'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'radio' AND ${facts_prod_dim_playlist.playlisturi} != 'dailyMix' THEN 'Radio Station'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'radio' AND ${facts_prod_dim_playlist.playlisturi} = 'dailyMix' THEN 'Daily Mix'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'others_playlist' AND ${facts_prod_dim_playlist.playlisturi} NOT IN ('discoverWeekly', 'releaseRadar')  THEN 'Playlist'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'others_playlist' AND ${facts_prod_dim_playlist.playlisturi} = 'discoverWeekly' THEN 'Discover Weekly'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'others_playlist' AND ${facts_prod_dim_playlist.playlisturi} = 'releaseRadar' THEN 'Release Radar'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'play_queue' THEN 'Play Queue'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'collection' THEN 'Collection'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'other' THEN 'Other'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'search' THEN 'Search'
#                                         ELSE 'Other'
#                                       END
#                                     WHEN 1 THEN
#                                       CASE
#                                         WHEN ${facts_prod_dim_containertype.containertypename} IN ('Album','None') AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Library' THEN 'Non-Playlist Collection'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} IN ('Playlist') AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Library' THEN 'Playlist Collection'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} IN ('Album', 'None') AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Discovery' THEN 'Platform Discovery'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} IN ('Playlist') AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Discovery' THEN 'Playlist Discovery'
#                                         WHEN ${facts_prod_dim_containertype.containertypename} != 'Radio Station' AND ${facts_prod_dim_sourcetype.sourcetypename} IN ('Search', 'External', 'Now Playing') THEN ${facts_prod_dim_sourcetype.sourcetypename}
#                                         WHEN ${facts_prod_dim_containertype.containertypename} = 'Radio Station' THEN 'Radio Station'
#                                         ELSE 'Other'
#                                       END
#                                     WHEN 187 THEN
#                                       CASE
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('UNLIMITED_PLAYLIST', 'AUTO_PLAYLIST', 'PRIME_PLAYLIST', 'GNO_PRIME_PLAYLIST', 'GNO_UNL_PLAYLIST') THEN 'Playlist'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('UNLIMITED_STATION', 'PRIME_STATION', 'SIMILARITY', 'SIMILARITY_STATION') THEN 'Radio Station'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'ALBUM' THEN 'Album'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'ARTIST' THEN 'Artist'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('RECENTLY ADDED', 'USER PLAYLIST') THEN 'Collection'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('TRACK', 'SONGS') THEN 'Collection'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'GENRE' THEN 'Genre'
#                                         ELSE 'Other'
#                                         END
#                                     WHEN 708 THEN
#                                       CASE
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('Album Play','Album play','Autoplay from Album') THEN 'Album'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('Artist Top Track Play','Autoplay from All Artist Tracks','Autoplay from All Composer Tracks','Autoplay from Artist Top Tracks','Autoplay from Artist Tracks','Autoplay from Composer Top Tracks') THEN 'Artist'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('Autoplay from Collection Tracks', 'Downloaded Tracks Play','Collection Tracks Play', 'Autoplay from Downloaded Tracks') THEN 'Album'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('Autoplay from Playlist','Playlist Play') THEN 'Playlist'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('Autoplay from Track','Track Play','Autoplay from Thumbed Up Tracks','Thumbed Up Track Play') THEN 'Track'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} = 'Station Play' THEN 'Radio Station'
#                                         ELSE 'Other'
#                                         END
#                                     WHEN 1405 THEN
#                                       CASE
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypeid} IN (173) THEN 'Search'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypeid} IN (174) THEN 'Artist'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypeid} IN (175, 183, 184, 185, 186) THEN 'Other'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypeid} IN (178) THEN 'Recommended'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypeid} IN (176) THEN 'User Collection'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypeid} IN (177) THEN '3rd Party'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypeid} IN (179) THEN 'Recent Activity'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypeid} IN (182) THEN 'Charts or Algorithmic'

#                                         ELSE 'Other'
#                                         END
#                                     WHEN 1505 THEN
#                                       CASE
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('Playlist') THEN 'Playlist Collection'
#                                         WHEN ${facts_prod_dim_sourcetype.sourcetypename} IN ('Other') AND ${facts_prod_dim_playlist.playlistname} IS NOT NULL THEN 'Playlist'
#                                         ELSE 'Other'
#                                         END
#                                         END;;
#   }

#   dimension: stagingrawid {
#     type: number
#     sql: ${TABLE}.stagingrawid ;;
#     hidden: yes
#   }

#   dimension: storeid {
#     view_label: "Store"
#     label: "Store ID"
#     type: number
#     sql: ${TABLE}.storeid ;;
#     value_format: "0"
#   }

#   dimension: storeuserid {
#     type: number
#     sql: ${TABLE}.storeuserid ;;
#     hidden: yes
#   }

#   dimension: storeuserid_varchar {
#     type: string
#     sql: ${TABLE}.storeuserid_varchar ;;
#     hidden: yes
#   }

#   dimension: subaccountid {
#     view_label: "Subaccount"
#     label: "Subaccount ID"
#     type: number
#     sql: ${TABLE}.subaccountid ;;
#     value_format: "0"
#   }

#   dimension: subscriptionpaytierid {
#     type: number
#     sql: ${TABLE}.subscriptionpaytierid ;;
#     hidden: yes
#   }

#   dimension: subscriptiontypeid {
#     type: number
#     sql: ${TABLE}.subscriptiontypeid ;;
#     hidden: yes
#   }

#   dimension: trackid {
#     type: number
#     sql: ${TABLE}.trackid ;;
#     hidden: yes
#   }

#   dimension: transactiontypeid {
#     view_label: "Transaction Type"
#     label: "Transaction Type ID"
#     type: number
#     sql: ${TABLE}.transactiontypeid ;;
#     value_format: "0"
#   }

#   dimension: userid {
#     type: string
#     view_label: "User"
#     label: "User ID"
#     sql: ${TABLE}.storeuserid_varchar ;;
#   }

#   measure: units {
#     view_label: "Units"
#     type: sum
#     sql: ${TABLE}.units ;;
#   }

#   measure: unit_percentage {
#     type: percent_of_total
#     label: "Units (Percentage)"
#     view_label: "Units"
#     sql: ${units} ;;
#   }




#   measure: billboard_consumption_units_track {
#     view_label: "Units"
#     description: "Chart conversion units as calculated by Nielsen/Billboard. Does not include YouTube Ad-supported."
#     type: sum
#     sql: CASE
#       WHEN ${TABLE}.transactiontypeid = 1 THEN (${TABLE}.units / 125)
#       WHEN ${TABLE}.transactiontypeid = 10 AND ${TABLE}.storeid != 453 THEN (${TABLE}.units / 375)
#       WHEN ${TABLE}.transactiontypeid = 48 AND ${TABLE}.storeid = 187 THEN (${TABLE}.units / 125)
#       WHEN ${TABLE}.transactiontypeid = 19 THEN ${TABLE}.units
#       ELSE 0 END ;;
#     label: "Billboard Consumption Units (Track)"
#     value_format: "#,##0"
#   }

#   measure: billboard_consumption_units_album {
#     view_label: "Units"
#     description: "Chart conversion units as calculated by Nielsen/Billboard. Does not include YouTube Ad-supported."
#     type: sum
#     sql: CASE
#       WHEN ${TABLE}.transactiontypeid = 1 THEN (${TABLE}.units / 1250)
#       WHEN ${TABLE}.transactiontypeid = 10 AND ${TABLE}.storeid != 453 THEN (${TABLE}.units / 3750)
#       WHEN ${TABLE}.transactiontypeid = 48 AND ${TABLE}.storeid = 187 THEN (${TABLE}.units / 1250)
#       WHEN ${TABLE}.transactiontypeid = 19 THEN (${TABLE}.units / 10)
#       WHEN ${TABLE}.transactiontypeid = 23 THEN ${TABLE}.units
#       WHEN ${TABLE}.transactiontypeid = 49 THEN ${TABLE}.units
#       WHEN ${TABLE}.transactiontypeid = 50 THEN ${TABLE}.units
#       ELSE 0 END ;;
#     label: "Billboard Consumption Units (Album)"
#     value_format: "#,##0"
#   }

#   measure: legacy_consumption_units_track {
#     view_label: "Units"
#     description: "Units conversion to track total consumption (1 download = 1 / 150 streams =) Does not include YouTube Ad-supported"
#     type: sum
#     sql: CASE
#       WHEN ${TABLE}.transactiontypeid IN (1,10) AND ${TABLE}.storeid != 453 THEN (${TABLE}.units / 150)
#       WHEN ${TABLE}.transactiontypeid = 48 AND ${TABLE}.storeid = 187 THEN (${TABLE}.units / 150)
#       WHEN ${TABLE}.transactiontypeid = 19 THEN ${TABLE}.units
#       ELSE 0 END ;;
#     label: "Legacy Consumption Units (Track)"
#     value_format: "#,##0"
#   }


#   measure: legacy_consumption_units_album {
#     view_label: "Units"
#     description: "Units conversion to track total consumption (1 download = 1 / 1500 streams = 1). Does not include YouTube Ad-supported"
#     type: sum
#     sql: CASE
#       WHEN ${TABLE}.transactiontypeid IN (1,10) AND ${TABLE}.storeid != 453 THEN (${TABLE}.units / 1500)
#       WHEN ${TABLE}.transactiontypeid = 48 AND ${TABLE}.storeid = 187 THEN (${TABLE}.units / 1500)
#       WHEN ${TABLE}.transactiontypeid = 19 THEN (${TABLE}.units / 10)
#       WHEN ${TABLE}.transactiontypeid = 23 THEN ${TABLE}.units
#       WHEN ${TABLE}.transactiontypeid = 49 THEN ${TABLE}.units
#       WHEN ${TABLE}.transactiontypeid = 50 THEN ${TABLE}.units
#       ELSE 0 END ;;
#     label: "Legacy Consumption Units (Album)"
#     value_format: "#,##0"
#   }

# #  measure: OCC_consumption_units_track {
# #    view_label: "Units"
# #    description: "Chart conversion units as calculated by OCC. For the UK"
# #    type: sum
# #    sql: CASE
# #          WHEN ${TABLE}.transactiontypeid IN (19) THEN ${TABLE}.units
# #          WHEN ${TABLE}.transactiontypeid IN (1, 17, 48, 16) THEN (${TABLE}.units  / 100)
# #          WHEN ${TABLE}.transactiontypeid IN (9, 10, 31, 32, 37, 38) THEN  (${TABLE}.units  / 600)
# #          ELSE 0 END;;
# #    label: "OCC Consumption Units (Track)"
# #    value_format: "#,##0"
# #  }
# #CODE THAT USES ADDITIONAL LOGIC
# #CASE
# #         WHEN ${TABLE}.transactiontypeid IN (19) THEN ${TABLE}.units
# #         WHEN ${TABLE}.transactiontypeid IN (1, 17, 48, 16) AND DATEDIFF(date,${orch_app_ar_releases.release_date}, ${TABLE}.download_activity_date) < 64 THEN (${TABLE}.units  / 100)
# #         WHEN ${TABLE}.transactiontypeid IN (1, 17, 48, 16) AND DATEDIFF(date,${orch_app_ar_releases.release_date},  ${TABLE}.download_activity_date) > 63 THEN (${TABLE}.units  / 200)
# #          WHEN ${TABLE}.transactiontypeid IN (9, 10, 31, 32, 37, 38) AND DATEDIFF(date,${orch_app_ar_releases.release_date},  ${TABLE}.download_activity_date) < 64 THEN (${TABLE}.units  / 600)
# #         WHEN ${TABLE}.transactiontypeid IN (9, 10, 31, 32, 37, 38) AND DATEDIFF(date,${orch_app_ar_releases.release_date},  ${TABLE}.download_activity_date) > 63 THEN (${TABLE}.units  / 1200
# #         ELSE 0 END;;

#   measure: users {
#     view_label: "User"
#     description: "Spotify assigns users a new UserID each month, i.e. this field will only be accurate when looking at individual calendar months."
#     label: "Number of Users"
#     type: count_distinct
#     sql: ${TABLE}.storeuserid_varchar ;;
#   }

#   measure: streams_per_user {
#     view_label: "User"
#     description: "Spotify assigns users a new UserID each month, i.e. this field will only be accurate when looking at individual calendar months."
#     label: "Streams Per User"
#     type: number
#     sql: round(${units}/${users},2) ;;

#   }


#   measure: release_day_listeners {
#     view_label: "User"
#     label: "Release Day Listeners"
#     type: count_distinct
#     sql: CASE
#               WHEN((DATEDIFF('day', ${orch_app_ar_releases.release_date}, ${TABLE}.download_activity_date)) = 0)
#                       THEN ${TABLE}.storeuserid_varchar
#         ELSE NULL
#         END
#           ;;
#   }

# #  measure: new_user {
# #    view_label: "User"
# #    label: "Number of New Users"
# #    type: count_distinct
# #    sql_distinct_key: ${TABLE}.storeuserid_varchar ;;
# #  }

#   measure: number_of_artists {
#     view_label: "Artist"
#     type: count_distinct
#     sql: ${TABLE}.artistid;;
#   }

#   dimension: uuid {
#     type: string
#     sql: ${TABLE}.uuid ;;
#     primary_key: yes
#     hidden: yes
#   }

#   dimension: region_code {
#     type: string
#     sql: ${TABLE}.regioncode ;;
#     hidden: yes
#   }

#   dimension: osid {
#     sql: ${TABLE}.osid ;;
#     hidden: yes
#   }

#   dimension: deviceid {
#     sql: ${TABLE}.deviceid ;;
#     hidden: yes
#   }

#   dimension: voice_activated {
#     type: yesno
#     label: "Voice Activated"
#     view_label: "Source Of Stream"
#     sql: (${facts_prod_dim_device.devicedesc} = 'Smart Speaker' AND ${facts_prod_dim_store.store_id} = 187)
#     OR (${facts_prod_dim_store.store_id} = 1 AND ${facts_prod_dim_sourcetype.sourcetypename} = 'Voice')
#     OR (${facts_prod_dim_store.store_id} = 1 AND ${facts_prod_dim_device.devicedesc} = 'Voice Activated');;
#   }

# #   dimension: zipid {
# #     type: number
# #     sql: ${TABLE}.zipid ;;
# #   }

# filter: units_breakdown_country_filter {
#   view_label: "Territory vs ROW"
#   type: string
# }

# measure: units_breakdown_country_units_in_territory {
#   view_label: "Territory vs ROW"
#   type: sum
#   sql: CASE WHEN {% condition units_breakdown_country_filter %} ${transaction_country.country_code} {% endcondition %} THEN units ELSE NULL END;;
# }

#   measure: units_breakdown_country_units_not_in_territory {
#     view_label: "Territory vs ROW"
#     type: sum
#     sql: CASE WHEN {% condition units_breakdown_country_filter %} ${transaction_country.country_code} {% endcondition %} THEN NULL ELSE units END;;
#   }


# }
