locals {
  vpc_subnets = [for subnet in var.subnets : "10.${var.cidr_second_octet}.${subnet}.0/24"]

  #vpc_subnets = formatlist("10.%v.%v.0/24", var.cidr_second_octet, var.subnets)
  access_type = var.is_public ? "public" : "private"
}

# Create subnets
resource "aws_subnet" "main" {
  count = length(var.subnets)

  # get different AZ for each subnets
  availability_zone       = element(var.availability_zones, (count.index % length(var.availability_zones)))
  cidr_block              = element(local.vpc_subnets, count.index)
  vpc_id                  = var.vpc_id
  map_public_ip_on_launch = false

  tags = merge(
    var.common_tags,
    {
      "Name" = format(
        "%v-subnet-%v%v-%02v",
        var.name_prefix,
        local.access_type,
        var.custom_identifier,
        count.index + 1,
      )
    },
  )
}

