data "aws_secretsmanager_secret" "sentry_dsn" {
  name = "${var.environment}/${var.service_name}/SENTRY_DSN"
}

data "aws_secretsmanager_secret_version" "sentry_dsn" {
  secret_id = data.aws_secretsmanager_secret.sentry_dsn.id
}

module "daemon_switchboard_consumer_environment" {
  source = "git@github.com:theorchard/terraform-fargate.git//?ref=1.1.6"

  environment                      = var.environment
  service_name                     = var.service_name
  aws_region                       = var.aws_region
  commit_sha                       = "latest"
  container_port                   = "9000"
  task_type                        = "worker"
  desired_task_count               = 0
  task_cpu                         = 512
  task_memory                      = 1024
  maximum_capacity                 = 4
  minimum_capacity                 = 0
  scale_up_adjustment              = 1
  scale_down_adjustment            = -1
  vpc_id                           = "vpc-0d77e477e6712e351"
  datadog_function_destination_arn = "arn:aws:lambda:us-east-1:437795906767:function:DatadogLambdaFunction"
  iam_managed_policy_attachments = [
    aws_iam_policy.consumer_secrets_manager_policy.arn,
    aws_iam_policy.consumer_assume_role_policy.arn,
    "arn:aws:iam::437795906767:policy/SES-SendOnly",
  ]
  fargate_service_subnets = [
    "subnet-0039792f783ab75fd",
    "subnet-0dd9a0984ce97daf3",
  ]

  environment_variables = [
    {
      Environment = var.environment
    },
    {
      DATADOG_ENV = "${var.environment}-${var.service_name}"
    },
    {
      DD_LOGS_INJECTION = "true"
    },
    {
      LOGGER_DSN = "https://${var.environment}-fluentd-applications.theorchard.io:8888/application"
    },
    {
      SENTRY_DSN = data.aws_secretsmanager_secret_version.sentry_dsn.secret_string
    },
    {
      KAFKA_ARN = var.switchboard_kafka_arn
    },
    {
      GRAPHQL_URL = "https://qa-graphql-switchboard.theorchard.io/graphql-product"
    },
    {
      SWITCHBOARD_GRAPHQL_URL = var.switchboard_graphql_url
    },
    {
      SWITCHBOARD_ROLE_ARN = "arn:aws:iam::662302927201:role/qa-orchard-access"
    },
    {
      SWITCHBOARD_SECRET_ARN = "arn:aws:secretsmanager:us-east-1:662302927201:secret:qa-system-jwt-secret-FH9GOn"
    },
    {
      RECIPIENT_EMAIL_ADDRESSES = var.recipient_email_addresses
    },
    {
      FROM_EMAIL_ADDRESS = var.from_email_address
    },
    {
      DDEX_INGEST_EVENTS_EMAIL_GROUP = var.ddex_ingest_events_email_group
    }
  ]
}


# sentry
module "sme_analytics_consumer_sentry_project" {
  source       = "git@github.com:theorchard/terraform-sentry//?ref=1.0.0"
  service_name = "${var.service_name}-sme-analytics"
  environment  = var.environment
  team         = var.environment
  platform     = "python"
}

module "daemon_switchboard_consumer_sme_analytics" {
  source = "git@github.com:theorchard/terraform-fargate.git//?ref=1.1.6"

  environment                      = var.environment
  service_name                     = "${var.service_name}-sme-analytics"
  aws_region                       = var.aws_region
  commit_sha                       = "latest"
  container_port                   = "9000"
  task_type                        = "worker"
  desired_task_count               = 1
  task_cpu                         = 512
  task_memory                      = 1024
  maximum_capacity                 = 4
  minimum_capacity                 = 1
  scale_up_adjustment              = 1
  scale_down_adjustment            = -1
  vpc_id                           = "vpc-0d77e477e6712e351"
  datadog_function_destination_arn = "arn:aws:lambda:us-east-1:437795906767:function:DatadogLambdaFunction"
  iam_managed_policy_attachments = [
    aws_iam_policy.consumer_secrets_manager_policy.arn,
    aws_iam_policy.consumer_assume_role_policy.arn,
    "arn:aws:iam::437795906767:policy/SES-SendOnly",
  ]
  # qa-graphql-private subnets
  fargate_service_subnets = [
    "subnet-0dd9a0984ce97daf3",
    "subnet-0039792f783ab75fd",
  ]

  environment_variables = [
    {
      Environment = var.environment
    },
    {
      DATADOG_ENV = "${var.environment}-${var.service_name}-sme-analytics"
    },
    {
      DD_LOGS_INJECTION = "true"
    },
    {
      LOGGER_DSN = "https://${var.environment}-fluentd-applications.theorchard.io:8888/application"
    },
    {
      KAFKA_ARN = var.analytics_ingest_switchboard_kafka_arn
    },
    {
      GRAPHQL_URL = "https://qa-graphql-switchboard.theorchard.io/graphql-product"
    },
    {
      SWITCHBOARD_GRAPHQL_URL = var.switchboard_graphql_url
    },
    {
      SWITCHBOARD_ROLE_ARN = "arn:aws:iam::662302927201:role/qa-orchard-access"
    },
    {
      SWITCHBOARD_SECRET_ARN = "arn:aws:secretsmanager:us-east-1:662302927201:secret:qa-system-jwt-secret-FH9GOn"
    },
    {
      RECIPIENT_EMAIL_ADDRESSES = var.recipient_email_addresses
    },
    {
      FROM_EMAIL_ADDRESS = var.from_email_address
    },
    {
      KAFKA_INBOUND = "sme-analytics-ingest-qa"
    },
    {
      KAFKA_IS_LOCAL = "True"
    }
  ]

  secrets = [
    {
      SENTRY_DSN = "${var.environment}/${var.service_name}-sme-analytics/SENTRY_DSN"
    },
  ]
}
