#!/usr/bin/env bash
# onx-timezone-set — sistem saat dilimini değiştir (timedatectl).
# Input:  {"timezone":"Europe/Istanbul"}
# Output: {"timezone":"Europe/Istanbul","previously":"UTC","ok":true}

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/_lib/common.sh"

require_root
require_cmd timedatectl
onx_json_input

TIMEZONE="$(onx_json_field timezone '')"
[[ -n "$TIMEZONE" ]] || onx_die 1 "timezone zorunlu"

# Geçerli IANA saat dilimi mi? (timedatectl list-timezones'a karşı doğrula)
if ! timedatectl list-timezones 2>/dev/null | grep -qxF "$TIMEZONE"; then
    onx_die 1 "Gecersiz saat dilimi: '${TIMEZONE}'"
fi

PREV="$(timedatectl show -p Timezone --value 2>/dev/null)"

timedatectl set-timezone "$TIMEZONE" || onx_die 3 "timedatectl set-timezone basarisiz"

onx_log "timezone-set: from=${PREV:-?} to=${TIMEZONE}"
PREV_ESC="${PREV//\"/\\\"}"
json_ok "{\"timezone\":\"${TIMEZONE}\",\"previously\":\"${PREV_ESC}\",\"ok\":true}"
