import { createHmac, timingSafeEqual } from 'crypto'
import { SITE_URL } from '@/lib/seo'

export function paymentReminderSmsText(order: { order_number: string; trans_id: string }) {
  return `Dobrý den,

u objednávky #${order.order_number} jsme zaznamenali neúspěšný pokus o dokončení platby.

Rádi bychom se ujistili, že je vše v pořádku. Pokud jste při dokončení objednávky narazili na problém, rádi Vám pomůžeme.

Objednávku můžete dokončit prostřednictvím tohoto odkazu:
https://payments.comgate.cz/${order.trans_id}

Děkujeme a přejeme hezký den.

S pozdravem
Marek
zákaznická podpora
vystrikejto.cz`
}

export function smsAppUrl(phone: string, message: string) {
  const normalized = phone.replace(/[^\d+]/g, '')
  return `sms:${normalized}&body=${encodeURIComponent(message)}`
}

function smsSecret() {
  return (process.env.TELEGRAM_BOT_TOKEN || process.env.TELEGRAM_BOT_API || process.env.NEXTAUTH_SECRET || '').trim()
}

export function signSmsReminder(orderId: number) {
  return createHmac('sha256', smsSecret()).update(`sms-reminder:${orderId}`).digest('hex').slice(0, 24)
}

export function verifySmsReminder(orderId: number, token: string) {
  const expected = signSmsReminder(orderId)
  if (!token || token.length !== expected.length) return false
  return timingSafeEqual(Buffer.from(token), Buffer.from(expected))
}

export function buildSmsReminderUrl(orderId: number) {
  const params = new URLSearchParams({
    o: String(orderId),
    s: signSmsReminder(orderId),
  })
  return `${SITE_URL}/api/sms-reminder?${params.toString()}`
}
