# Terraform backends cannot contain interpolations
terraform {
  backend "s3" {
    bucket  = "orcd-terraform-state"
    key     = "prod/kafka-infra/kafka-cluster-artist-diy/topics/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }

  required_providers {
    kafka = {
      source  = "mongey/kafka"
      version = ">= 0.2.10"
    }
  }
}

provider "kafka" {
  bootstrap_servers = var.bootstrap_servers
  tls_enabled       = true
}

resource "kafka_topic" "event_awal_plus_account_creation" {
  name               = "event.awalPlusAccountCreation"
  replication_factor = 3
  partitions         = 1
}

resource "kafka_topic" "dlq_awal_plus_approval" {
  name               = "dlq.awalPlusApproval"
  replication_factor = 3
  partitions         = 1
}

resource "kafka_topic" "event_knr_account_creation" {
  name               = "event.knrAccountCreation"
  replication_factor = 3
  partitions         = 1
}

resource "kafka_topic" "dlq_knr_approval" {
  name               = "dlq.knrApproval"
  replication_factor = 3
  partitions         = 1
}

resource "kafka_topic" "event_gda_signup_topic" {
  name               = "event.gdaSignup"
  replication_factor = 3
  partitions         = 1
  config = {
    "retention.ms" = "2592000000" # 30 days retention for messages default is 7 days
  }
}

resource "kafka_topic" "event_gda_submit_application" {
  name               = "event.gdaSubmitApplication"
  replication_factor = 3
  partitions         = 1
}


resource "kafka_topic" "event_gda_approval" {
  name               = "event.gdaApproval"
  replication_factor = 3
  partitions         = 1
  config = {
    "retention.ms" = "-1"
  }
}

resource "kafka_topic" "dlq_gda_signup" {
  name               = "dlq.gdaSignup"
  replication_factor = 3
  partitions         = 1
  config = {
    "retention.ms" = "-1"
  }
}

resource "kafka_topic" "gda_account_creation_redeem_voucher_topic" {
  name               = "event.gda.redeemVoucher"
  replication_factor = 3
  partitions         = 1
}

resource "kafka_topic" "gda_leads_topic" {
  name               = "event.gdaLeads"
  replication_factor = 3
  partitions         = 1
}

resource "kafka_topic" "gda_leads_offset_topic" {
  name               = "event.gdaLeads.offsets"
  replication_factor = 3
  partitions         = 1
  config = {
    "retention.ms"  = "-1"
  }
}

resource "kafka_topic" "gda_unqualified_leads_offset_topic" {
  name               = "event.gdaUnqualifiedLeads.offsets"
  replication_factor = 3
  partitions         = 1
  config = {
    "retention.ms"  = "-1"
  }
}

resource "kafka_topic" "account_events_topic" {
  name               = "event.accounts"
  replication_factor = 3
  partitions         = 1
  config = {
    "retention.ms"  = "-1"
  }
}

resource "kafka_topic" "subaccount_events_topic" {
  name               = "event.subaccounts"
  replication_factor = 3
  partitions         = 1
  config = {
    "retention.ms"  = "-1"
  }
}

resource "kafka_topic" "event_gda_approval_with_delay" {
  name               = "event.gdaApproval.offsetsWithDelay"
  replication_factor = 3
  partitions         = 1
  config = {
    "retention.ms" = "-1"
  }
}

resource "kafka_topic" "event_gda_approval_without_delay" {
  name               = "event.gdaApproval.offsetsWithoutDelay"
  replication_factor = 3
  partitions         = 1
  config = {
    "retention.ms" = "-1"
  }
}

resource "kafka_topic" "event_gda_approval_external_test" {
  name               = "event.gdaApproval.offsetsExternalTest"
  replication_factor = 3
  partitions         = 1
  config = {
    "retention.ms" = "-1"
  }
}
