data "aws_route53_zone" "zone" {
  name = var.route53_zone_name
}

data "aws_route53_zone" "networking_zone" {
  count = local.same_account ? 0 : 1

  name = var.route53_zone_name

  provider = aws.dns
}

data "aws_instances" "instance" {
  depends_on = [aws_autoscaling_group.autoscaling_group]

  instance_tags = {
    Name = local.instance_name
  }
}

resource "aws_route53_record" "route53_record" {
  for_each = local.domain_names

  name    = each.value
  type    = "CNAME"
  zone_id = data.aws_route53_zone.zone.zone_id
  records = [aws_lb.application_load_balancer.dns_name]
  ttl     = 60
}

resource "aws_route53_record" "alb_route53_record" {
  for_each = local.same_account_domain_names
  provider = aws.dns

  name    = each.value
  type    = "CNAME"
  zone_id = data.aws_route53_zone.networking_zone.0.zone_id
  records = [aws_lb.application_load_balancer.dns_name]
  ttl     = 60
}

resource "aws_route53_record" "ec2_route53_record" {
  name    = "${local.environment}-${var.dev_box_id}.${var.subdomain}"
  type    = "A"
  zone_id = data.aws_route53_zone.zone.zone_id
  records = data.aws_instances.instance.private_ips
  ttl     = 60
}

resource "aws_route53_record" "ec2_private_route53_record" {
  provider = aws.dns
  count    = local.same_account ? 0 : 1

  name    = "${local.environment}-${var.dev_box_id}.${var.subdomain}"
  type    = "A"
  zone_id = data.aws_route53_zone.networking_zone.0.zone_id
  records = data.aws_instances.instance.private_ips
  ttl     = 60
}
