locals {
  # Data sources with both manual changes allowed and destroy protection
  datasources_ignore_and_protect = {
    for ds in var.datasources : ds.name => ds
    if lookup(ds, "keep_manual_changes", false) && lookup(ds, "prevent_destroy_on_recreate", false)
  }

  # Data sources with only manual changes allowed
  datasources_ignore_only = {
    for ds in var.datasources : ds.name => ds
    if lookup(ds, "keep_manual_changes", false) && !lookup(ds, "prevent_destroy_on_recreate", false)
  }

  # Data sources with only destroy protection enabled
  datasources_protect_only = {
    for ds in var.datasources : ds.name => ds
    if !lookup(ds, "keep_manual_changes", false) && lookup(ds, "prevent_destroy_on_recreate", false)
  }

  # Standard data sources without any special lifecycle management
  datasources_standard = {
    for ds in var.datasources : ds.name => ds
    if !lookup(ds, "keep_manual_changes", false) && !lookup(ds, "prevent_destroy_on_recreate", false)
  }
}
