import type { PosReceiptData } from '../types/pos';
import { formatMoney } from './posStock';

export function buildReceiptText(receipt: PosReceiptData, clinicName = 'Clinic'): string {
  const order = receipt.order;
  const lines = [
    clinicName,
    'OFFICIAL RECEIPT',
    '------------------------------',
    `Order: ${order.order_number}`,
  ];

  if (order.customer_display) lines.push(`Customer: ${order.customer_display}`);
  if (order.patient_display) lines.push(`Patient: ${order.patient_display}`);
  lines.push('');

  for (const line of receipt.lines || []) {
    lines.push(`${line.name} x${line.quantity}  ${formatMoney(line.line_total)}`);
  }

  lines.push('------------------------------');
  lines.push(`Subtotal: ${formatMoney(order.subtotal)}`);
  if (Number(order.discount) > 0) lines.push(`Discount: -${formatMoney(order.discount)}`);
  lines.push(`Tax: ${formatMoney(order.tax_amount)}`);
  lines.push(`TOTAL: ${formatMoney(order.total)}`);
  lines.push('');

  for (const p of receipt.payments || []) {
    lines.push(`${p.payment_mode}: ${formatMoney(p.amount)}`);
  }

  lines.push('');
  lines.push(new Date().toLocaleString());

  return lines.join('\n');
}
