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

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
  config = {
    "retention.ms" = "86400000"
  }
}

resource "kafka_topic" "event_knrAccountCreation" {
  name               = "event.knrAccountCreation"
  replication_factor = 3
  partitions         = 1
  config = {
    "retention.ms" = "86400000"
  }
}

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

resource "kafka_topic" "gda_account_creation_success" {
  name               = "event.gdaAccountCreation.success"
  replication_factor = 3
  partitions         = 1
  config = {
    "max.message.bytes" = "15728640"
    "retention.ms"      = "86400000"
  }
}

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" = "604800000"
  }
}

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

resource "kafka_topic" "event_gda_approval" {
  name               = "event.gdaApproval"
  replication_factor = 3
  partitions         = 1
  config = {
    "retention.ms" = tostring(var.kafka_default_retention_ms)
  }
}

resource "kafka_topic" "event_gda_signup" {
  name               = "event.gdaSignup"
  replication_factor = 3
  partitions         = 1
  config = {
    "retention.ms" = tostring(var.kafka_default_retention_ms)
  }
}

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"
  }
}

resource "kafka_topic" "event_altafonte_user_creation" {
  name               = "event.altafonteUserCreation"
  replication_factor = 3
  partitions         = 1
  config = {
    "max.message.bytes" = "15728640"
    "retention.ms"      = "86400000"
  }
}

resource "kafka_topic" "dlq_altafonte_user_creation" {
  name               = "dlq.altafonteUserCreation"
  replication_factor = 3
  partitions         = 1
  config = {
    "max.message.bytes" = "15728640"
    "retention.ms"      = "86400000"
  }
}
