module "dead_letter_queue" {
  source = "../../../modules/sqs/"

  name_prefix       = local.name_prefix
  name              = "dead-letter"
  kms_master_key_id = data.aws_kms_key.default_sqs_key.id

  common_tags = merge(
    local.common_tags,
    {
      project                  = "Portal",
      service                  = "SQS",
      plat_env_project_service = "${local.aggregated_tag}_PRL_SQS"
    }
  )
}

module "push_notifications_queue" {
  source = "../../../modules/sqs/"

  name_prefix                = local.name_prefix
  name                       = "push-notifications"
  visibility_timeout_seconds = "360"
  dead_letter_queue          = module.dead_letter_queue.queue.arn
  max_receive_count          = 50
  kms_master_key_id          = data.aws_kms_key.default_sqs_key.id


  common_tags = merge(
    local.common_tags,
    {
      project                  = "Portal",
      service                  = "SQS",
      plat_env_project_service = "${local.aggregated_tag}_PRL_SQS"
    }
  )
}

resource "aws_sqs_queue_policy" "push_notifications_sqs_policy" {
  queue_url = module.push_notifications_queue.queue.id

  policy = <<POLICY
{
   "Version": "2012-10-17",
   "Id": "Queue1_Policy_UUID",
   "Statement": [{
      "Sid":"SendMessage",
      "Effect": "Allow",
      "Principal": {
         "AWS": [
            "${module.aws_account_list.accounts["gdb-apollo-prod"]}"
         ]
      },
      "Action": "sqs:SendMessage",
      "Resource": "${module.push_notifications_queue.queue.arn}"
   }]
}
POLICY
}


module "track_visit_queue" {
  source = "../../../modules/sqs/"

  name_prefix                = local.name_prefix
  name                       = "track-visit"
  visibility_timeout_seconds = "120"
  receive_wait_time_seconds  = "0"
  kms_master_key_id          = data.aws_kms_key.default_sqs_key.id

  common_tags = merge(
    local.common_tags,
    {
      project                  = "Portal",
      service                  = "SQS",
      plat_env_project_service = "${local.aggregated_tag}_PRL_SQS"
    }
  )
}
