locals {
  cypress_table_details = [
    { schema = "PROD_OWS_TIMED_RELEASE_OWS_TIMED_RELEASE_SCHEDULE", table = "TIMED_RELEASE", write_privileges = false },
    { schema = "ART_RELATIONS_PROD_ART_RELATIONS", table = "RELEASES", write_privileges = false },
    { schema = "QA", table = "TIMED_RELEASES_STORE_LINKS", write_privileges = true },
    { schema = "PROD_OWS_TIMED_RELEASE_OWS_TIMED_RELEASE_SCHEDULE", table = "TIMED_RELEASES_STORE_LINKS", write_privileges = true },
  ]
}

module "table_database_role_INGESTION_TRACK_LOG" {
  for_each = toset(["PROD_INTEGRATIONS_BULK_UPLOAD"])

  source = "git@github.com:theorchard/terraform-snowflake.git//modules/roles/table_access?ref=7.7.9"

  database = var.database_name
  schema   = each.value
  table    = "INGESTION_TRACK_LOG"
}


module "table_database_roles_schema_PROD_OWS_PODCAST_OWS_PODCAST" {
  for_each = toset([
    "EPISODE",
    "NETWORK",
    "PODCAST",
    "SHOW_FAMILY",
  ])

  source = "git@github.com:theorchard/terraform-snowflake.git//modules/roles/table_access?ref=7.7.9"

  database = var.database_name
  schema   = "PROD_OWS_PODCAST_OWS_PODCAST"
  table    = each.value
}

# Role for cucumber-cypress-tests suite to query timed releases for deezer scraper
module "table_database_role_CYPRESS_TIMED_RELEASE" {
  for_each = {
    for detail in local.cypress_table_details : "${detail.schema}_${detail.table}" => detail
  }

  source = "git@github.com:theorchard/terraform-snowflake.git//modules/roles/table_access?ref=7.7.9"

  database                = var.database_name
  schema                  = each.value.schema
  table                   = each.value.table
  enable_write_privileges = each.value.write_privileges
}

module "beatroot_report" {
  for_each = toset([
    "SUBACCOUNT",
    "TRACK",
    "RELEASES",
    "PROJECT",
    "VENDOR",
  ])

  source = "git@github.com:theorchard/terraform-snowflake.git//modules/roles/table_access?ref=7.7.9"

  database = var.database_name
  schema   = "ART_RELATIONS_PROD_ART_RELATIONS"
  table    = each.value
}

module "table_database_role_PROD_OWS_ASSETS_OWS_ASSETS" {
  for_each = toset([
    "HIVE_SEGMENT",
    "HIVE_TASK",
    "ASSET_FINAL",
    "ASSET_UPLOAD",
  ])

  source = "git@github.com:theorchard/terraform-snowflake.git//modules/roles/table_access?ref=7.7.9"

  database = var.database_name
  schema   = "PROD_OWS_ASSETS_OWS_ASSETS"
  table    = each.value
}
