# Get current account ID and global accounts list
data "aws_caller_identity" "current" {}

module "aws_accounts_list" {
  source = "../../modules/iam/aws_accounts_list"
}

locals {
  # define AZ in region id
  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}_${upper(var.platform.prefix)}"

  ro_accounts = [
    module.aws_accounts_list.accounts["gdb-whitelist-prod"],
    local.account_id,
  ]

  rw_accounts = [
    module.aws_accounts_list.accounts["gdb-infra-dev"],
  ]

  common_tags = {
    project                  = "Portal",
    service                  = "ECR",
    plat_env_project_service = upper("${var.platform.short_platform_name}_${var.platform.prefix}_PRL_ECR")
  }

  repositories = [
    "dna/api",
    "dna/api-db-migrations",
    "dna/cms",
    "dna/etl-data-ingest",
    "dna/pytest",
    "dna/web",
  ]

  lambda_repositories = [
    "dna/lambda/search-index-init"
  ]
}

module "dna_ecr" {
  for_each = toset(local.repositories)
  source   = "../../modules/ecr/repository_v4"

  repo_name   = each.key
  ro_accounts = local.ro_accounts
  rw_accounts = local.rw_accounts
  common_tags = local.common_tags
}

module "dna_lambda_ecr" {
  for_each = toset(local.lambda_repositories)
  source   = "../../modules/ecr/repository_v4"

  repo_name   = each.key
  lambda      = true
  ro_accounts = local.ro_accounts
  rw_accounts = local.rw_accounts
  common_tags = local.common_tags
}
