# locals =====================================================================

data "aws_availability_zones" "available" { state = "available" }

locals {
  region_abbr = split("-", data.aws_availability_zones.available.zone_ids[0])[0]

  module_tags = {
    managed-by  = "terraform"
    module-name = "networking:nacl"
  }

  # Flatten all ingress rules across all NACLs into a list of {nacl_key, rule}
  ingress_rules = flatten([
    for nacl_key, nacl in var.network_acls : [
      for rule in nacl.ingress_rules : {
        nacl_key = nacl_key
        rule     = rule
      }
    ]
  ])

  # Keyed by "nacl_key-rule_number" — unique and stable across applies
  ingress_map = {
    for item in local.ingress_rules :
    "${item.nacl_key}-${item.rule.rule_number}" => item
  }

  # Flatten all egress rules across all NACLs into a list of {nacl_key, rule}
  egress_rules = flatten([
    for nacl_key, nacl in var.network_acls : [
      for rule in nacl.egress_rules : {
        nacl_key = nacl_key
        rule     = rule
      }
    ]
  ])

  # Keyed by "nacl_key-rule_number" — unique and stable across applies
  egress_map = {
    for item in local.egress_rules :
    "${item.nacl_key}-${item.rule.rule_number}" => item
  }
}
