resource "cloudflare_worker_script" "this" {
  name       = format("maintenance-%s-%s", replace(var.cloudflare_zone, ".", "-"), uuid())
  content    = file("${path.module}/maintenance.js")
  account_id = var.account_id

  plain_text_binding {
    name = "ALLOWED_IPS"
    text = var.allowed_ips
  }

  plain_text_binding {
    name = "ALLOWED_PATH"
    text = var.allowed_path
  }
}

data "cloudflare_zones" "this" {
  filter {
    name = var.cloudflare_zone
  }
}

resource "cloudflare_worker_route" "this" {
  count       = var.enabled != false ? length(var.patterns) : 0
  zone_id     = lookup(data.cloudflare_zones.this.zones[0], "id")
  pattern     = var.patterns[count.index]
  script_name = cloudflare_worker_script.this.name
}
