locals {
  env = {
    default = {
      service_name      = "conflict-detection-service"
      container_port    = 9305
      env_account       = terraform.workspace
      region            = "us-east-1"
      health_check_path = "/actuator/health"
      iam_suffix        = ""
      use_common_rds    = true
    }

    nf-sandbox = {
      subdomain           = "sandbox.netfoundry.io"
      deploy_env_name     = "sandbox"
      spring_config_label = "develop"
      task_count          = 1
      role_arn            = "arn:aws:iam::721086286010:role/ops-mgmt-admin"
    }

    nf-staging-int = {
      subdomain           = "staging.netfoundry.io"
      deploy_env_name     = "staging"
      spring_config_label = "staging"
      task_count          = 1
      role_arn            = "arn:aws:iam::560269805515:role/ops-mgmt-admin"
    }

    nf-prod-int = {
      subdomain           = "production.netfoundry.io"
      deploy_env_name     = "production"
      spring_config_label = "production"
      task_count          = 1
      role_arn            = "arn:aws:iam::745435643501:role/ops-mgmt-admin"
      use_common_rds      = false
    }
  }

  environmentvars = contains(keys(local.env), terraform.workspace) ? terraform.workspace : "default"
  workspace       = merge(local.env["default"], local.env[local.environmentvars])
  environment = local.workspace["deploy_env_name"]


  conflict_detection_vars = {
    image_url               = "745435643501.dkr.ecr.us-east-1.amazonaws.com/conflict-detection:${data.aws_ssm_parameter.container_image.value}"
    container_name          = local.workspace["service_name"]
    container_port          = local.workspace["container_port"]
    log_group_region        = local.workspace["region"]
    log_group_name          = module.conflict_detection.cwlog_group_name
    spring_profiles_active  = local.workspace["deploy_env_name"]
    aws_default_region      = local.workspace["region"]
    deploy_env              = local.workspace["deploy_env_name"]
    rabbit_mq_endpoints  = data.terraform_remote_state.central_mq.outputs.central_rabbitmq_endpoints
    rabbit_mq_username  = data.terraform_remote_state.central_mq.outputs.central_rabbitmq_mopuser
    rabbit_mq_secret_arn  = data.terraform_remote_state.central_mq.outputs.central_rabbitmq_secret_arn
    auth0_client_id         = auth0_client.client.client_id
    auth0_client_secret_arn = aws_ssm_parameter.auth_client_secret.arn
    deploy_environment      = local.workspace["deploy_env_name"]
    es_host                  = data.terraform_remote_state.mop_core.outputs.es_host
    redis_cluster_address = data.terraform_remote_state.mop_core.outputs.redis_address
    spring_elasticsearch_username = "${data.aws_secretsmanager_secret.elasticsearch_conflict_detection_credentials.arn}:username::"
    spring_elasticsearch_password = "${data.aws_secretsmanager_secret.elasticsearch_conflict_detection_credentials.arn}:password::"
    es_micrometer_username = "${data.aws_secretsmanager_secret.es_micrometer_creds.arn}:username::"
    es_micrometer_password = "${data.aws_secretsmanager_secret.es_micrometer_creds.arn}:password::"
  }

  cost_bucket_tags = {
    cost_environment = local.workspace["deploy_env_name"] == "production" ? "production" : "non-production"
    cost_team_owner  = "MOPPLT"
    cost_category    = "MOPINT"
    nf_node_type     = "MOP"
  }
}

data "aws_secretsmanager_secret" "elasticsearch_conflict_detection_credentials"{
  name = "elasticsearch_conflict_detection_credentials"
}

data "aws_secretsmanager_secret" "es_micrometer_creds"{
  name = "es_micrometer_creds"
}