# ======================================================
# Hardcoded Fallbacks
# Mirror of policies.json built-in policies.
# Used when policies.json lookup fails.
# ======================================================

declare -gA _POLICY_TUNNEL_MODE=(
  [default]="split"
  [guest]="split"
  [trusted]="split"
  [server]="split"
  [iot]="split"
)

declare -gA _POLICY_DEFAULT_RULE=(
  [default]=""
  [guest]="guest"
  [trusted]=""
  [server]=""
  [iot]=""
)

declare -gA _POLICY_STRICT_RULE=(
  [default]="false"
  [guest]="true"
  [trusted]="false"
  [server]="false"
  [iot]="false"
)

declare -gA _POLICY_AUTO_APPLY=(
  [default]="true"
  [guest]="true"
  [trusted]="true"
  [server]="true"
  [iot]="true"
)

function policy::_hardcoded_field() {
  local name="${1:-}" field="${2:-}"
  case "$field" in
    tunnel_mode)  echo "${_POLICY_TUNNEL_MODE[$name]:-split}"  ;;
    default_rule) echo "${_POLICY_DEFAULT_RULE[$name]:-}"      ;;
    strict_rule)  echo "${_POLICY_STRICT_RULE[$name]:-false}"  ;;
    auto_apply)   echo "${_POLICY_AUTO_APPLY[$name]:-true}"    ;;
    *)            echo ""                                       ;;
  esac
}