#!/usr/bin/env bash
#
# onx-mailbox-password — Mailbox password değiştir (SHA512-CRYPT hash dön).
# DB update'i Laravel MailboxProvisioner email_accounts'a kendisi yapıyor.
#
# Stdin (JSON):
#   {"email": "user@example.com", "password": "<plaintext>"}
#   alternatif: {"email": "...", "new_password": "..."} (eski format compat)
#
# Stdout (JSON):
#   {"email": "...", "password_hash": "{SHA512-CRYPT}$6$..."}

INPUT=$(cat 2>/dev/null || echo '{}')
EMAIL=$(echo "$INPUT" | jq -r '.email // ""')
PASSWORD=$(echo "$INPUT" | jq -r '.password // .new_password // ""')

[[ -z "$EMAIL" ]] && { echo '{"error":"email gerekli"}' >&2; exit 1; }
[[ -z "$PASSWORD" ]] && { echo '{"error":"password gerekli"}' >&2; exit 1; }
[[ ! "$EMAIL" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ ]] && { echo '{"error":"geçersiz email"}' >&2; exit 1; }

command -v doveadm >/dev/null 2>&1 || { echo '{"error":"doveadm yok"}' >&2; exit 2; }

HASH=$(doveadm pw -s SHA512-CRYPT -p "$PASSWORD" 2>/dev/null)
[[ -z "$HASH" ]] && { echo '{"error":"hash failed"}' >&2; exit 3; }

echo "{\"email\":\"$EMAIL\",\"password_hash\":\"$HASH\"}"
exit 0
