/*
locals {
  user_preferences_service_secrets_list = [
    "POSTGRES_PASSWORD",
    "SENTRY_DSN",
  ]

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

  user_preferences_env_vars = [
    {
      name  = "POSTGRES_HOST",
      value = data.aws_db_instance.user_preferences_db_instance.address
    },
    {
      name  = "POSTGRES_PORT",
      value = data.aws_db_instance.user_preferences_db_instance.port
    },
    {
      name  = "POSTGRES_USER",
      value = "up_admin"
    },
    {
      name  = "POSTGRES_DATABASE",
      value = "up_${local.env_prefix}"
    },
    {
      name  = "POSTGRES_DB",
      value = "up_${local.env_prefix}"
    },
    {
      name  = "PORT",
      value = "8080"
    }
  ]
}

data "aws_ecr_repository" "user_preferences_service_ecr" {
  name     = "rti/user-preferences-service"
  provider = aws.gdb-artistapp-dev
}

resource "aws_secretsmanager_secret" "user_preferences_service_secret" {
  for_each = toset(local.user_preferences_service_secrets_list)

  name       = "${local.secrets_name_prefix}/user_preferences/${each.value}"
  kms_key_id = data.aws_kms_key.secrets_general_key.id

  tags = merge(
    local.common_tags,
    {
      project                  = "Infrastructure",
      service                  = "Secrets Manager",
      plat_env_project_service = "${local.aggregated_tag}_INFRA_SCRT"
    }
  )
}

module "user_preferences_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}-user-preferences"
  container_name  = "user-preferences"
  container_image = "${data.aws_ecr_repository.user_preferences_service_ecr.repository_url}:master"
  cpu             = 1024
  memory          = 2048

  awslogs_retention = module.cloudwatch_logs_retention_by_env[local.env_prefix]

  task_role_arn = data.aws_iam_role.ecs_tasks_execution_role.arn
  exec_role_arn = data.aws_iam_role.ecs_tasks_execution_role.arn

  env_vars = local.user_preferences_env_vars
  secrets  = local.user_preferences_service_secrets_mapping

  datadog_enabled    = true
  dd_apm_enabled     = true
  dd_logs_injection  = true
  dd_container_image = "public.ecr.aws/datadog/agent:latest"
  dd_awslogs_group   = aws_cloudwatch_log_group.datadog-agent.name

  dd_secrets = [
    {
      name      = "DD_API_KEY",
      valueFrom = aws_secretsmanager_secret.common_secret["DD_API_KEY"].arn
    },
  ]

  dd_env_vars = [
    {
      name  = "DD_APM_IGNORE_RESOURCES",
      value = "GET /health"
    },
    {
      name  = "DD_TAGS",
      value = "service:artistapp-user-preferences application_family:rti"
    },
  ]

  port_mappings = [
    {
      containerPort = 8080
      hostPort      = 8080
      protocol      = "tcp"
    }
  ]

  common_tags = merge(
    local.common_tags,
    {
      project                  = "User Preferences",
      service                  = "ECS",
      plat_env_project_service = "${local.aggregated_tag}_UP_ECS"
    }
  )
}

module "user_preferences_service" {
  source = "../../../modules/ecs/services/service_taskless_v2"

  env_prefix    = local.env_prefix
  project       = "user-preferences"
  project_group = local.project_group

  cluster_arn   = data.aws_ecs_cluster.main.arn
  desired_count = 1

  security_groups = [data.aws_security_group.main.id]
  subnets         = data.aws_subnets.private_subnets.ids
  vpc_id          = data.aws_vpc.main.id

  task_definition_arn = module.user_preferences_task_def.arn

  sd_enabled   = true
  namespace_id = aws_service_discovery_private_dns_namespace.main.id

  enable_ecs_managed_tags = true

  common_tags = merge(
    local.common_tags,
    {
      project                  = "User Preferences",
      service                  = "ECS",
      plat_env_project_service = "${local.aggregated_tag}_UP_ECS",
      service_name             = "rti-user-preferences"
    }
  )
}
*/
