locals {
  service = "humand-backoffice"
}

module "this" {
  source = "../../rest_server"

  service = local.service

  aws_account   = var.env_config.aws_account
  env           = var.env_config.env
  humand_vpc_id = var.env_config.humand_vpc_id
  cluster_name  = var.env_config.public_cluster_name
  cidr_block    = var.env_config.cidr_block

  docker_image = var.docker_image

  node_type = "backoffice"

  task_policies = {
    RdsPolicy               = aws_iam_policy.rds_policy.arn
    S3Policy                = aws_iam_policy.s3_policy.arn
    SNSPolicy               = aws_iam_policy.sns_policy.arn
    SQSPolicy               = aws_iam_policy.sqs_policy.arn
    EventBridgePolicy       = aws_iam_policy.event_bridge_policy.arn
    SESPolicy               = aws_iam_policy.ses_policy.arn
    LambdaPolicy            = aws_iam_policy.lambda_policy.arn
    OpenSearchPolicy        = aws_iam_policy.opensearch_policy.arn
    LearningSchedulerPolicy = data.terraform_remote_state.learning_service.outputs.learning_scheduler_queue_scheduler_groups_policy_arn
  }

  cpu    = var.cpu
  memory = var.memory

  tasks_iam_role_arn = "arn:aws:iam::${var.env_config.aws_account}:role/${local.service}-task-role"
  ingress_lb_tg      = var.ingress_lb_tg

  secrets_overrides = var.secret_overrides
  environment_overrides = merge(var.environment_overrides, {
    INSTANCE_DUPLICATION_BUCKET        = var.instance_duplication_bucket
    INSTANCE_DUPLICATION_SNS_TOPIC_ARN = var.instance_duplication_sns_topic_arn
  })

  fargate_spot_weight = floor(1000 * var.spot_ratio)
  fargate_weight      = 1000 - floor(1000 * var.spot_ratio)

  sns_topic_arns = var.sns_topic_arns

  # Autoscaling configuration
  enable_autoscaling             = var.enable_autoscaling
  autoscaling_min_capacity       = var.autoscaling_min_capacity
  autoscaling_max_capacity       = var.autoscaling_max_capacity
  cpu_target_utilization_percent = var.cpu_target_utilization_percent
  scale_in_cooldown              = var.scale_in_cooldown
  scale_out_cooldown             = var.scale_out_cooldown
}
