#!/usr/bin/env bash
# onx-db-create — MariaDB veritabanı oluştur
# Input:  {"db_name":"onx_xxx_app","charset":"utf8mb4","collation":"utf8mb4_unicode_ci"}
# Output: {"db_name":...,"created":true,"charset":...,"size_kb":0}

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

require_root
require_cmd mysql
onx_json_input

DB_NAME="$(onx_json_field db_name)"
CHARSET="$(onx_json_field charset 'utf8mb4')"
COLLATION="$(onx_json_field collation 'utf8mb4_unicode_ci')"

[[ -z "$DB_NAME" ]] && onx_die 1 "db_name zorunlu"
[[ "$DB_NAME" =~ ^onx_[a-z0-9]+_[a-z0-9_]+$ ]] || \
    onx_die 1 "Gecersiz db_name: '${DB_NAME}' (^onx_[a-z0-9]+_[a-z0-9_]+\$ bekleniyor)"
[[ "$CHARSET" =~ ^[a-z0-9_]+$ ]]   || onx_die 1 "Gecersiz charset: '${CHARSET}'"
[[ "$COLLATION" =~ ^[a-z0-9_]+$ ]] || onx_die 1 "Gecersiz collation: '${COLLATION}'"

onx_log "db-create: db=${DB_NAME} charset=${CHARSET} collation=${COLLATION}"

mysql_exec "" "CREATE DATABASE IF NOT EXISTS \`${DB_NAME}\` CHARACTER SET ${CHARSET} COLLATE ${COLLATION};" \
    || onx_die 3 "CREATE DATABASE basarisiz: ${DB_NAME}"

json_ok "{\"db_name\":\"${DB_NAME}\",\"created\":true,\"charset\":\"${CHARSET}\",\"collation\":\"${COLLATION}\",\"size_kb\":0}"
