class BulkUploadErrorRowComponent < ViewComponent::Base
  attr_reader :bulk_upload_errors

  def initialize(bulk_upload_errors:)
    @bulk_upload_errors = sorted_errors(bulk_upload_errors)

    super
  end

  def row
    bulk_upload_errors.first.row
  end

  def tenant_code
    bulk_upload_errors.first.tenant_code
  end

  def purchaser_code
    bulk_upload_errors.first.purchaser_code
  end

  def property_ref
    bulk_upload_errors.first.property_ref
  end

  def question_for_field(field)
    bulk_upload.prefix_namespace::RowParser.question_for_field(field.to_sym)
  end

  def bulk_upload
    bulk_upload_errors.first.bulk_upload
  end

  def lettings?
    bulk_upload.log_type == "lettings"
  end

  def sales?
    bulk_upload.log_type == "sales"
  end

private

  def sorted_errors(errors)
    errors.sort_by { |e| e.cell.rjust(3, "0") }
  end
end