locals {
  # define AZ in region id
  availability_zones = formatlist("%v%v", var.aws_region_id, ["a", "b", "c"])
  name_prefix        = lower("${var.platform["prefix"]}-${var.platform["name"]}")
  env_prefix         = lower(var.platform["prefix"])
  account_id         = data.aws_caller_identity.current.account_id
  platform           = lower(var.platform["name"])
  aggregated_tag     = "${var.platform.short_platform_name}_${var.platform.prefix}"

  ro_accounts = [
    module.aws_accounts_list.accounts["gdb-delphi-dev"],
    module.aws_accounts_list.accounts["gdb-delphi-prod"],
    module.aws_accounts_list.accounts["gdb-apollo-prod"]
  ]
  rw_accounts = [module.aws_accounts_list.accounts["gdb-infra-dev"]]

  common_tags = {
    platform          = var.platform["name"]
    environment       = var.platform["environment"]
    platform_with_env = "${var.platform["name"]} ${var.platform["environment"]}"
    managed_by        = "Terraform"
  }

  portal_tags = merge(
    local.common_tags,
    {
      project                  = "Portal",
      service                  = "ECR",
      plat_env_project_service = upper("${local.aggregated_tag}_PRL_ECR")
    }
  )

  repositories = {
    "${local.platform}-admin-panel"                                   = "ecs"
    "${local.platform}-go"                                            = "ecs"
    "${local.platform}/ago-pytest"                                    = "ecs"
    "${local.platform}/api"                                           = "ecs"
    "${local.platform}/apple-charts-entries-notifications-job"        = "ecs"
    "${local.platform}/apple-charts-exits-notifications-job"          = "ecs"
    "${local.platform}/apple-charts-moves-notifications-job"          = "ecs"
    "${local.platform}/apple_playlists_additions_notifications_job"   = "ecs"
    "${local.platform}/apple_playlists_update_notifications_job"      = "ecs"
    "${local.platform}/charts-monitoring"                             = "ecs"
    "${local.platform}/copy-track-playlist-history-last-week"         = "ecs"
    "${local.platform}/data_cleaner_job"                              = "ecs"
    "${local.platform}/db-migrations"                                 = "ecs"
    "${local.platform}/dsp-api"                                       = "ecs"
    "${local.platform}/gate-api"                                      = "ecs"
    "${local.platform}/global_track_priorities_tracks_job"            = "ecs"
    "${local.platform}/new-music-friday-tracks-job"                   = "ecs"
    "${local.platform}/personalized-playlists-update"                 = "ecs"
    "${local.platform}/read-push-messages"                            = "ecs"
    "${local.platform}/scheduled-task-dotnet"                         = "ecs"
    "${local.platform}/spotify-charts-entries-notifications-job"      = "ecs"
    "${local.platform}/spotify-charts-exits-notifications-job"        = "ecs"
    "${local.platform}/spotify-charts-moves-notifications-job"        = "ecs"
    "${local.platform}/spotify_playlists_additions_notifications_job" = "ecs"
    "${local.platform}/spotify_playlists_update_notifications_job"    = "ecs"
    "${local.platform}/traefik"                                       = "ecs"
    "${local.platform}/ui-test-playwright"                            = "ecs"
    "${local.platform}/update_hot_hits_history_job"                   = "ecs"
    "${local.platform}/update_playlist_digest"                        = "ecs"
    "${local.platform}/update_streams_cache"                          = "ecs"
    "${local.platform}/update_track_playlist_history"                 = "ecs"
    "${local.platform}/user-data"                                     = "ecs"
    "${local.platform}/user-data-sqitch"                              = "ecs"
    "${local.platform}/vendor-api"                                    = "ecs"
    "${local.platform}/vendors-charts-availability"                   = "ecs"
    "python"                                                          = "ecs"
    "wiremock"                                                        = "ecs"
    "traefik"                                                         = "ecs"
  }

  lambda_repositories = {
    "${local.platform}/lambda/aggregate-and-copy-data-from-snowflake-to-mysql" = "lambda"
    "${local.platform}/lambda/apple-top-playlists-aggregation"                 = "lambda"
    "${local.platform}/lambda/auth0-unblock-bruteforce-users"                  = "lambda"
    "${local.platform}/lambda/backfill-missing-charts-data"                    = "lambda"
    "${local.platform}/lambda/charts-feed-messages"                            = "lambda"
    "${local.platform}/lambda/charts-messages"                                 = "lambda"
    "${local.platform}/lambda/charts-push-messages"                            = "lambda"
    "${local.platform}/lambda/clear-notifications"                             = "lambda"
    "${local.platform}/lambda/copy-auth0-logs-to-cloudwatch"                   = "lambda"
    "${local.platform}/lambda/delphi-events"                                   = "lambda"
    "${local.platform}/lambda/download-spotify-charts"                         = "lambda"
    "${local.platform}/lambda/handle-user-changes"                             = "lambda"
    "${local.platform}/lambda/juno-email-messages"                             = "lambda"
    "${local.platform}/lambda/juno-filters-messages"                           = "lambda"
    "${local.platform}/lambda/juno-monitoring"                                 = "lambda"
    "${local.platform}/lambda/messages-views"                                  = "lambda"
    "${local.platform}/lambda/playlists-messages"                              = "lambda"
    "${local.platform}/lambda/playlists-sync"                                  = "lambda"
    "${local.platform}/lambda/retrieve-and-save-mobile-versions"               = "lambda"
    "${local.platform}/lambda/save-push-receipts"                              = "lambda"
    "${local.platform}/lambda/send-push-messages"                              = "lambda"
    "${local.platform}/lambda/send-push-notifications"                         = "lambda"
    "${local.platform}/lambda/track-visit-events-handling"                     = "lambda"
    "${local.platform}/lambda/update-market-vendors"                           = "lambda"
    "${local.platform}/lambda/vendor-image-caching"                            = "lambda"
  }
}
