class TechnologyPaymentDecorator < ApplicationDecorator
  def status_badge
    if paid?
      h.content_tag :span, "Paid", class: "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800"
    else
      h.content_tag :span, "Outstanding", class: "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-red-100 text-red-800"
    end
  end

  def payment_type_display
    return "N/A" if payment_type.blank?
    payment_type.titleize
  end

  def transaction_id_display
    return "N/A" if transaction_id.blank?
    transaction_id
  end

  def payment_last4_display
    return "N/A" if payment_last4.blank?
    "****#{payment_last4}"
  end

  def created_date
    return "Outstanding" if created_at.nil?
    created_at.strftime("%m/%d/%Y")
  end

  def created_time
    return "N/A" if created_at.nil?
    created_at.strftime("%I:%M %p")
  end

  def full_student_name
    return "N/A" unless student
    "#{student.first_name} #{student.last_name}".strip
  end

  def full_family_name
    return "N/A" unless family
    family.name
  end

  def student_grade
    return "N/A" unless student
    student.grade&.name || "N/A"
  end

  def family_email
    return "N/A" unless family
    family.contacts.first&.email || "N/A"
  end

  def family_phone
    return "N/A" unless family
    family.contacts.first&.phone || "N/A"
  end

  def export_row
    [
      created_date,
      full_student_name,
      full_family_name,
      formatted_amount
    ]
  end
end
