
locals {
  db_migrations_common_secrets = {
    LIQUIBASE_USERNAME = aws_secretsmanager_secret.apollo_api_secret["MYSQL_DB_USER"]
    LIQUIBASE_PASSWORD = aws_secretsmanager_secret.apollo_api_secret["MYSQL_DB_PASS"]
  }

  db_migrations_secrets_mapping = [
    for k, v in local.db_migrations_common_secrets :
    {
      name      = k,
      valueFrom = "arn:aws:secretsmanager:${var.aws_region_id}:${local.account_id}:secret:${v["name"]}"
    }
  ]

  db_migrations_env_vars = [
    {
      name  = "LIQUIBASE_URL",
      value = "jdbc:mysql://${module.domains[local.env_prefix]["main-db-rw"]}/dbSony_dbo"
    }
  ]
}

data "aws_ecr_repository" "apollo_db_migrations_ecr" {
  name = "${local.project_group}/db-migrations"
}

module "db_migrations_task_def" {
  source = "../../../modules/ecs/tasks/fargate_v3"

  env_prefix      = local.env_prefix
  project_group   = local.project_group
  family          = "${local.env_prefix}-${local.project_group}-liquibase"
  container_name  = "liquibase"
  container_image = "${data.aws_ecr_repository.apollo_db_migrations_ecr.repository_url}:${local.docker_image_env_tag[local.env_prefix]}"
  cpu             = 256
  memory          = 512

  awslogs_retention = module.cloudwatch_logs_retention_by_env[local.env_prefix]

  task_role_arn = data.aws_iam_role.standard_exec.arn
  exec_role_arn = data.aws_iam_role.standard_exec.arn

  secrets  = local.db_migrations_secrets_mapping
  env_vars = local.db_migrations_env_vars

  command = ["update"]

  common_tags = merge(
    local.common_tags,
    {
      project                  = "Portal",
      service                  = "ECS",
      plat_env_project_service = "${local.aggregated_tag}_PRL_ECS"
    }
  )
}
