resource "google_bigtable_instance" "ca_instance_hdd" {
  //stage is too long for the instance name
  name                = "delphi-consumer-analytics-hdd"
  display_name        = "consumer-analytics-hdd"
  deletion_protection = false

  cluster {
    cluster_id   = "stg-delphi-ca-hdd-${local.region_zones[1]}"
    zone         = local.region_zones[1]
    num_nodes    = 7
    storage_type = "HDD"

    autoscaling_config {
      cpu_target     = 65
      max_nodes      = 12
      min_nodes      = 7
      storage_target = 14336
    }
  }

  lifecycle {
    ignore_changes = [cluster[0].num_nodes]
  }
}

resource "google_bigtable_table" "hdd_spotify" {
  provider      = google-beta
  name          = "spotify"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "metrics"
  }

  column_family {
    family = "validation"
  }
}

resource "google_bigtable_gc_policy" "hdd_spotify_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_spotify.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_spotify_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_spotify.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_spotify_meta_gc
  ]
}

resource "google_bigtable_gc_policy" "hdd_spotify_validation_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_spotify.name
  column_family = "validation"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_spotify_metrics_gc,
  ]
}

resource "google_bigtable_table" "hdd_amazon_music" {
  provider      = google-beta
  name          = "amazon_music"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "metrics"
  }

  column_family {
    family = "cf1"
  }

  column_family {
    family = "validation"
  }
}

resource "google_bigtable_gc_policy" "hdd_amazon_music_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_amazon_music.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_amazon_music_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_amazon_music.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_amazon_music_meta_gc
  ]
}

resource "google_bigtable_gc_policy" "hdd_amazon_music_cf1_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_amazon_music.name
  column_family = "cf1"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_amazon_music_metrics_gc
  ]
}

resource "google_bigtable_gc_policy" "hdd_amazon_music_validation_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_amazon_music.name
  column_family = "validation"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_amazon_music_cf1_gc
  ]
}

resource "google_bigtable_table" "hdd_apple_music" {
  provider      = google-beta
  name          = "apple_music"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "metrics"
  }

  column_family {
    family = "cf1"
  }

  column_family {
    family = "validation"
  }
}

resource "google_bigtable_gc_policy" "hdd_apple_music_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_apple_music.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_apple_music_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_apple_music.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_apple_music_meta_gc
  ]
}

resource "google_bigtable_gc_policy" "hdd_apple_music_cf1_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_apple_music.name
  column_family = "cf1"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_apple_music_metrics_gc
  ]
}

resource "google_bigtable_gc_policy" "hdd_apple_music_validation_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_apple_music.name
  column_family = "validation"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_apple_music_cf1_gc
  ]
}

resource "google_bigtable_table" "hdd_chartmetric" {
  name          = "chartmetric"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "metrics"
  }
}

resource "google_bigtable_gc_policy" "hdd_chartmetric_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_chartmetric.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_chartmetric_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_chartmetric.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_chartmetric_meta_gc
  ]
}

resource "google_bigtable_table" "hdd_playlists" {
  name          = "playlists"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "pos"
  }

  column_family {
    family = "metrics"
  }
}

resource "google_bigtable_gc_policy" "hdd_playlists_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_playlists.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_playlists_pos_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_playlists.name
  column_family = "pos"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_playlists_meta_gc
  ]
}

resource "google_bigtable_gc_policy" "hdd_playlists_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_playlists.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_playlists_pos_gc
  ]
}

resource "google_bigtable_table" "hdd_youtube" {
  provider      = google-beta
  name          = "youtube"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "metrics"
  }

  column_family {
    family = "validation"
  }
}

resource "google_bigtable_gc_policy" "hdd_youtube_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_youtube.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_youtube_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_youtube.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_youtube_meta_gc
  ]
}

resource "google_bigtable_gc_policy" "hdd_validation_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_youtube.name
  column_family = "validation"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_youtube_metrics_gc
  ]
}

resource "google_bigtable_table" "hdd_tiktok" {
  name          = "tiktok"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "metrics"
  }

  column_family {
    family = "validation"
  }
}

resource "google_bigtable_gc_policy" "hdd_tiktok_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_tiktok.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_tiktok_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_tiktok.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_tiktok_meta_gc
  ]
}

resource "google_bigtable_gc_policy" "hdd_tiktok_validation_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_tiktok.name
  column_family = "validation"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_tiktok_metrics_gc
  ]
}

#DAPD-1667
resource "google_bigtable_table" "hdd_playlist_tracks" {
  name          = "playlist_tracks"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "metrics"
  }
}

resource "google_bigtable_gc_policy" "hdd_playlist_tracks_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_playlist_tracks.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_playlist_tracks_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_playlist_tracks.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_playlist_tracks_meta_gc
  ]
}

resource "google_bigtable_table" "hdd_apple_fact_public_playlist_daily" {
  name          = "apple_fact_public_playlist_daily"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "metrics"
  }
}

resource "google_bigtable_gc_policy" "hdd_apple_fact_public_playlist_daily_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_apple_fact_public_playlist_daily.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_apple_fact_public_playlist_daily_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_apple_fact_public_playlist_daily.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_apple_fact_public_playlist_daily_meta_gc
  ]
}

resource "google_bigtable_table" "hdd_spotify_fact_public_playlist_daily" {
  name          = "spotify_fact_public_playlist_daily"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "metrics"
  }
}

resource "google_bigtable_gc_policy" "hdd_spotify_fact_public_playlist_daily_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_spotify_fact_public_playlist_daily.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_spotify_fact_public_playlist_daily_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_spotify_fact_public_playlist_daily.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_spotify_fact_public_playlist_daily_meta_gc
  ]
}

resource "google_bigtable_table" "hdd_brand_tagging_track_id" {
  name          = "brand_tagging_track_id"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "metrics"
  }
}

resource "google_bigtable_gc_policy" "hdd_brand_tagging_track_id_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_brand_tagging_track_id.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_brand_tagging_track_id_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_brand_tagging_track_id.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_brand_tagging_track_id_meta_gc
  ]
}

resource "google_bigtable_table" "hdd_spotify_fact_playlist_followers_daily" {
  name          = "spotify_fact_playlist_followers_daily"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "metrics"
  }
}

resource "google_bigtable_gc_policy" "hdd_spotify_fact_playlist_followers_daily_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_spotify_fact_playlist_followers_daily.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_spotify_fact_playlist_followers_daily_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_spotify_fact_playlist_followers_daily.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_spotify_fact_playlist_followers_daily_meta_gc
  ]
}

resource "google_bigtable_table" "hdd_brand_tagging_upc" {
  name          = "brand_tagging_upc"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "metrics"
  }
}

resource "google_bigtable_gc_policy" "hdd_brand_tagging_upc_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_brand_tagging_upc.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_brand_tagging_upc_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_brand_tagging_upc.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_brand_tagging_upc_meta_gc
  ]
}

resource "google_bigtable_table" "hdd_fact_tiktok_top_isrc_sounds_weekly" {
  name          = "fact_tiktok_top_isrc_sounds_weekly"
  instance_name = google_bigtable_instance.ca_instance_hdd.name

  column_family {
    family = "meta"
  }

  column_family {
    family = "metrics"
  }
}

resource "google_bigtable_gc_policy" "hdd_fact_tiktok_top_isrc_sounds_weekly_meta_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_fact_tiktok_top_isrc_sounds_weekly.name
  column_family = "meta"

  max_version {
    number = 1
  }
}

resource "google_bigtable_gc_policy" "hdd_fact_tiktok_top_isrc_sounds_weekly_metrics_gc" {
  instance_name = google_bigtable_instance.ca_instance_hdd.name
  table         = google_bigtable_table.hdd_fact_tiktok_top_isrc_sounds_weekly.name
  column_family = "metrics"

  max_version {
    number = 1
  }

  depends_on = [
    google_bigtable_gc_policy.hdd_fact_tiktok_top_isrc_sounds_weekly_meta_gc
  ]
}


import {
  to = google_bigtable_table.hdd_spotify
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/spotify"
}
import {
  to = google_bigtable_table.hdd_amazon_music
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/amazon_music"
}
import {
  to = google_bigtable_table.hdd_apple_music
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/apple_music"
}
import {
  to = google_bigtable_table.hdd_chartmetric
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/chartmetric"
}
import {
  to = google_bigtable_table.hdd_playlists
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/playlists"
}
import {
  to = google_bigtable_table.hdd_youtube
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/youtube"
}
import {
  to = google_bigtable_table.hdd_tiktok
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/tiktok"
}
import {
  to = google_bigtable_table.hdd_playlist_tracks
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/playlist_tracks"
}
import {
  to = google_bigtable_table.hdd_apple_fact_public_playlist_daily
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/apple_fact_public_playlist_daily"
}
import {
  to = google_bigtable_table.hdd_spotify_fact_public_playlist_daily
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/spotify_fact_public_playlist_daily"
}
import {
  to = google_bigtable_table.hdd_brand_tagging_track_id
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/brand_tagging_track_id"
}
import {
  to = google_bigtable_table.hdd_spotify_fact_playlist_followers_daily
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/spotify_fact_playlist_followers_daily"
}
import {
  to = google_bigtable_table.hdd_brand_tagging_upc
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/brand_tagging_upc"
}
import {
  to = google_bigtable_table.hdd_fact_tiktok_top_isrc_sounds_weekly
  id = "projects/delphi-prod/instances/delphi-consumer-analytics-hdd/tables/fact_tiktok_top_isrc_sounds_weekly"
}
