#!/usr/bin/env bash
# onx-mysql-import — SQL dosyasını mevcut veritabanına import et
# Input:  {"db_name":"onx_xxx_mydb","sql_file":"/tmp/onx_cpanel_xxx/mysql/mydb.sql"}
# Output: {"db_name":"...","sql_file":"...","imported":true,"duration_seconds":N}

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

require_root
require_cmd mysql
onx_json_input

# ─── Parse input ─────────────────────────────────────────────────────────────
DB_NAME="$(onx_json_field db_name)"
SQL_FILE="$(onx_json_field sql_file)"

[[ -z "$DB_NAME" ]]  && onx_die 1 "db_name zorunlu"
[[ -z "$SQL_FILE" ]] && onx_die 1 "sql_file zorunlu"

# Validate DB name
[[ "$DB_NAME" =~ ^onx_[a-z0-9]+_[a-z0-9_]+$ ]] \
    || onx_die 1 "Geçersiz db_name: '${DB_NAME}' (^onx_[a-z0-9]+_[a-z0-9_]+\$ bekleniyor)"

# Validate SQL file path
SQL_REAL="$(realpath -e "$SQL_FILE" 2>/dev/null)" \
    || onx_die 1 "SQL dosyası bulunamadı: $SQL_FILE"

[[ "$SQL_REAL" == /tmp/* || "$SQL_REAL" == /var/lib/onox/* ]] \
    || onx_die 1 "sql_file güvenli alanda değil: $SQL_REAL"

[[ -f "$SQL_REAL" ]] || onx_die 1 "sql_file bir dosya değil: $SQL_REAL"

# ─── Check DB exists ─────────────────────────────────────────────────────────
DB_EXISTS="$(mysql -e "SHOW DATABASES LIKE '${DB_NAME}';" 2>/dev/null | grep -c "${DB_NAME}" || echo 0)"
[[ "$DB_EXISTS" -gt 0 ]] || onx_die 2 "Veritabanı mevcut değil: ${DB_NAME}. Önce onx-db-create ile oluşturun."

# ─── Import ──────────────────────────────────────────────────────────────────
START_TS="$(date +%s)"

onx_log "mysql-import: db=${DB_NAME} sql=${SQL_REAL} start"

mysql "${DB_NAME}" < "$SQL_REAL" \
    || onx_die 3 "mysql import başarısız: db=${DB_NAME} file=${SQL_REAL}"

END_TS="$(date +%s)"
DURATION=$((END_TS - START_TS))

onx_log "mysql-import: db=${DB_NAME} sql=${SQL_REAL} done duration=${DURATION}s"
json_ok "{\"db_name\":\"${DB_NAME}\",\"sql_file\":\"${SQL_REAL}\",\"imported\":true,\"duration_seconds\":${DURATION}}"
