# Generator Defaults
#
# Default values and configurations for infrastructure generation.

let contracts = import "contracts.ncl" in

{
  # Default gap analysis report
  default_gap_report | contracts.GapAnalysisReport = {
    declaration_name = "",
    declaration_version = "0.0.0",
    gaps = [],
    total_errors = 0,
    total_warnings = 0,
    total_info = 0,
    completeness_score = 1.0,
  },

  # Default merge result
  default_merge_result | contracts.MergeResult = {
    success = true,
    changes = [],
    preserved_customizations = [],
    conflicts = [],
    warning_messages = [],
  },

  # Default deployment config
  default_deployment | contracts.DeploymentConfig = {
    mode = "multiuser",
    servers = [],
    ha_enabled = false,
  },

  # Default validation rule
  default_validation | contracts.ValidationRule = {
    required = false,
  },

  # Default changelog
  default_changelog | contracts.Changelog = {
    entries = [],
  },

  # Helper: Create default metadata
  default_metadata | not_exported = fun name version => {
    name = name,
    version = version,
  } | contracts.Metadata,

  # Helper: Create default taskserv requirement
  default_taskserv | not_exported = fun name => {
    name = name,
    profile = "default",
    required = false,
    confidence = 1.0,
  } | contracts.TaskservRequirement,

  # Helper: Create default gap
  default_gap | not_exported = fun kind message => {
    kind = kind,
    severity = "warning",
    message = message,
  } | contracts.Gap,

  # Helper: Create default question
  default_question | not_exported = fun id message => {
    id = id,
    kind = "text",
    message = message,
    validation = default_validation,
    ai_suggest = false,
  } | contracts.Question,
}
