// Return the authenticated member's recent Helcim card transactions.
// No status gate — historical reads are safe for any auth'd status.
// On Helcim errors, returns { transactions: [], error: 'unavailable' } (HTTP 200)
// so the client can render fallback copy without a crash.
import { requireAuth } from '../../utils/auth.js'
import { getHelcimCustomer, listHelcimCustomerTransactions } from '../../utils/helcim.js'

export default defineEventHandler(async (event) => {
  const member = await requireAuth(event)

  if (!member.helcimCustomerId) {
    return { transactions: [] }
  }

  try {
    const customerData = await getHelcimCustomer(member.helcimCustomerId)
    const customerCode = customerData?.customerCode

    if (!customerCode) {
      console.error('[payment-history] Helcim customer missing customerCode', {
        helcimCustomerId: member.helcimCustomerId
      })
      return { transactions: [], error: 'unavailable' }
    }

    const transactions = await listHelcimCustomerTransactions(customerCode)
    return { transactions }
  } catch (error) {
    console.error('[payment-history] Helcim lookup failed', {
      helcimCustomerId: member.helcimCustomerId,
      error: error?.message || error
    })
    return { transactions: [], error: 'unavailable' }
  }
})
