/*
locals {
  notifications_worker_secrets = [
    "AUTH0_CLIENT_SECRET",
    "SENTRY_DSN"
  ]
}

data "aws_ecr_repository" "notifications_worker_ecr" {
  name = "rti/lambda/notifications-worker"
}

resource "aws_cloudwatch_log_group" "notifications_worker_log_group" {
  name              = "/aws/lambda/${local.name_prefix}-notifications_worker"
  retention_in_days = module.cloudwatch_logs_retention_by_env[local.env_prefix]

  tags = merge(
    local.common_tags,
    {
      project                  = "User Preferences",
      service                  = "CloudWatch",
      plat_env_project_service = "${local.aggregated_tag}_UP_CW"
    }
  )
}

resource "aws_secretsmanager_secret" "notifications_worker_secret" {
  for_each = toset(local.notifications_worker_secrets)

  name       = "${local.secrets_name_prefix}/notifications_worker/${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 "notifications_worker_role" {
  source = "../../../modules/iam/roles/lambda_role"

  name_prefix                = local.name_prefix
  name                       = "notifications_worker_role"
  allow_execution_inside_vpc = true

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

  policies_list = [
    data.aws_iam_policy.logging_policy.arn,
    data.aws_iam_policy.secrets-services-ro.arn,
    data.aws_iam_policy.notifications_consumer_policy.arn,
    data.aws_iam_policy.notifications_bucket_ro_policy.arn,
  ]
}

resource "aws_lambda_function" "notifications_worker_lambda" {
  function_name = "${local.name_prefix}-notifications_worker"
  image_uri     = "${data.aws_ecr_repository.notifications_worker_ecr.repository_url}:master"
  package_type  = "Image"
  role          = module.notifications_worker_role.role.arn
  description   = "Managed by Terraform."

  timeout     = 90
  memory_size = 256

  vpc_config {
    security_group_ids = [data.aws_security_group.lambda.id]
    subnet_ids         = data.aws_subnets.private_subnets.ids
  }

  environment {
    variables = {
      ENVIRONMENT                     = local.environment
      SENTRY_DSN                      = "${local.secrets_name_prefix}/notifications_worker/SENTRY_DSN"
      DD_API_KEY                      = "${local.secrets_name_prefix}/common/DD_API_KEY"
      DELPHI_API_CLIENT_ID            = "${local.secrets_name_prefix}/api/DELPHI_API_CLIENT_ID"
      DELPHI_API_CLIENT_SECRET        = "${local.secrets_name_prefix}/api/DELPHI_API_CLIENT_SECRET"
      DELPHI_API_URL                  = "https://delphi-api.delphiplatform.io/v3"
      USER_PREFERENCES_URL            = "http://user-preferences.prod.artistapp.local:8080"
      AUTH0_AUDIENCE                  = "https://prod-dna-apps.auth0.com/api/v2/"
      AUTH0_CLIENT_ID                 = "zSpLK4ab1COX0XHMluuBNEZzdar1g4mS"
      AUTH0_CLIENT_SECRET             = "${local.secrets_name_prefix}/notifications_worker/AUTH0_CLIENT_SECRET"
      AUTH0_MANAGEMENT_API            = "https://prod-dna-apps.auth0.com/"
      AUTH0_PERMISSION_CONTEXT        = "https://api.sma.stream"
      AUTH0_SUPERUSER_PERMISSION_NAME = "superuser"
    }
  }

  tags = merge(
    local.common_tags,
    {
      project                  = "User Preferences",
      service                  = "Lambda",
      plat_env_project_service = "${local.aggregated_tag}_UP_LMB",
      service_name             = "rti-notifications-worker",
    }
  )

  depends_on = [
    aws_secretsmanager_secret.notifications_worker_secret,
    aws_cloudwatch_log_group.notifications_worker_log_group,
    module.notifications_worker_role,
  ]

  lifecycle {
    ignore_changes = [
      image_uri
    ]
  }
}

resource "aws_lambda_event_source_mapping" "notifications_worker_lambda_sqs" {
  event_source_arn = data.aws_sqs_queue.notifications_queue.arn
  function_name    = aws_lambda_function.notifications_worker_lambda.arn
}
*/
