#######################################
## Adjustment File Ingestion Trigger ##
#######################################

# EventBridge rule to trigger Adjustment Workflow
# Triggered by Outbox Message Event "file_upload_complete" for adjustments
resource "aws_cloudwatch_event_rule" "adjustment_file_trigger" {
  name        = "${var.environment}-adjustment-file-trigger"
  description = "Trigger adjustment file workflow on file_upload_complete event"

  event_pattern = jsonencode({
    source      = ["abacus.outbox"]
    detail-type = ["file_upload.completed"]
    detail = {
      metadata = {
        target_type = ["file_upload"]
      }
      data = {
        upload_type = ["adjustments"]
      }
    }
  })

  tags = local.common_tags
}

# EventBridge target to invoke Step Functions
resource "aws_cloudwatch_event_target" "adjustment_file_workflow_target" {
  rule      = aws_cloudwatch_event_rule.adjustment_file_trigger.name
  target_id = "AdjustmentFileStepFunctions"
  arn       = aws_sfn_state_machine.adjustment_file_workflow.arn
  role_arn  = aws_iam_role.eventbridge_sfn_role.arn

  retry_policy {
    maximum_event_age_in_seconds = 86400
    maximum_retry_attempts       = 3
  }
}
