data "aws_secretsmanager_secret" "db_secrets" {
  for_each = { for db in var.database_map : db.task_name => db.owner_secret }
  name     = each.value
}
module "db_task_def" {
  for_each = { for db in var.database_map : db.task_name => db }
  source   = "../../../modules/ecs/tasks/fargate_v3"

  env_prefix      = var.env_prefix
  project_group   = var.project_group
  family          = "${var.env_prefix}-${var.project_group}-${each.key}"
  container_name  = each.key
  container_image = "${each.value.repo_url}:${var.ecr_tag}"
  cpu             = 256
  memory          = 512

  awslogs_retention = 30

  task_role_arn = var.role_arn
  exec_role_arn = var.role_arn

  env_vars = [{
    name  = "LIQUIBASE_CHANGELOG",
    value = "/liquibase/db.changelog-master.xml"
  }]

  secrets = [
    {
      name      = "LIQUIBASE_USERNAME",
      valueFrom = "${data.aws_secretsmanager_secret.db_secrets[each.key].arn}:username::"
    },
    {
      name      = "LIQUIBASE_PASSWORD",
      valueFrom = "${data.aws_secretsmanager_secret.db_secrets[each.key].arn}:password::"
    },
  ]

  command = ["updateSQL"]

  common_tags = merge(var.common_tags, {
    project                  = "Infrastructure",
    service                  = "ECS",
    plat_env_project_service = "${var.aggregated_tag}_INFRA_ECS"
  })
}
