# Management Groups Module
# Creates Azure Management Groups hierarchy according to Well-Architected Framework

# Root Management Group (assumes it exists)
data "azurerm_management_group" "root" {
  name = var.root_management_group_id
}

# Production Management Group
resource "azurerm_management_group" "production" {
  name                       = "Production"
  display_name               = "Production"
  parent_management_group_id = data.azurerm_management_group.root.id
  
  subscription_ids = var.production_subscription_ids
}

# Non-Production Management Group
resource "azurerm_management_group" "non_production" {
  name                       = "Non-Production"
  display_name               = "Non-Production"
  parent_management_group_id = data.azurerm_management_group.root.id
  
  subscription_ids = var.non_production_subscription_ids
}

# Shared Services Management Group
resource "azurerm_management_group" "shared_services" {
  name                       = "SharedServices"
  display_name               = "Shared Services"
  parent_management_group_id = data.azurerm_management_group.root.id
  
  subscription_ids = var.shared_services_subscription_ids
}

# Sandbox Management Group
resource "azurerm_management_group" "sandbox" {
  name                       = "Sandbox"
  display_name               = "Sandbox"
  parent_management_group_id = data.azurerm_management_group.root.id
  
  subscription_ids = var.sandbox_subscription_ids
}

# Outputs
output "production_management_group_id" {
  value = azurerm_management_group.production.id
}

output "non_production_management_group_id" {
  value = azurerm_management_group.non_production.id
}

output "shared_services_management_group_id" {
  value = azurerm_management_group.shared_services.id
}

output "sandbox_management_group_id" {
  value = azurerm_management_group.sandbox.id
}

