data "aws_ecr_repository" "daily_data_alert_ecr" {
  name = "delphi/daily-data-alert"
}

module "daily_data_alert_role" {
  source = "../../../modules/iam/roles/ecs_task_role"

  name        = "daily_data_alert"
  name_prefix = local.name_prefix

  policies_list = [
    data.aws_iam_policy.secrets-services-ro.arn,
    data.aws_iam_policy.logging.arn,
  ]
}

module "daily_data_alert_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}-daily-data-alert"
  container_name  = "daily-data-alert"
  container_image = "${data.aws_ecr_repository.daily_data_alert_ecr.repository_url}:develop"
  cpu             = 512
  memory          = 1024

  awslogs_retention = 30

  task_role_arn = module.daily_data_alert_role.role.arn
  exec_role_arn = data.aws_iam_role.standard_exec.arn

  env_vars = [
    {
      name  = "ENVIRONMENT"
      value = local.env_prefix
    },
    {
      name  = "SLACK_CHANNEL_ID"
      value = "C05RZN6H7GR" // #slack-api-public-test
    },
    {
      name  = "MAIL_SERVER"
      value = "email-smtp.us-east-1.amazonaws.com"
    },
    {
      name  = "MAIL_PORT"
      value = 587
    },
    {
      name  = "MAIL_FROM"
      value = "no-reply@data-alert.delphiplatform.io" // TODO: validate domain
    },
    {
      name  = "MAIL_TO",
      value = "delphi_admins@sonymusic.com"
    },
    {
      name  = "MAIL_BCC",
      value = ""
    },
  ]
  secrets = [
    {
      name      = "SLACK_TOKEN"
      valueFrom = "arn:aws:secretsmanager:${var.aws_region_id}:${local.account_id}:secret:delphi/${local.env_prefix}/slack_notifications/SLACK_API_TOKEN"
    }
  ]

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