<?php

declare( strict_types=1 );

namespace Automattic\WooCommerce\GoogleListingsAndAds\Admin\Exports\Contracts;

defined( 'ABSPATH' ) || exit;

/**
 * Interface for building a row from an exportable entity.
 *
 * Implementations convert an entity object into an array of scalar values,
 * with each key representing a column in the final output (CSV, JSON, etc).
 */
interface ExportableRowBuilderInterface {
	/**
	 * Builds an exportable row from the given entity.
	 *
	 * @param mixed $entity The entity object (e.g., WC_Order, WP_Term).
	 * @return array<string, scalar>|null Associative array for one row, or null to skip.
	 */
	public function build_row( $entity ): ?array;
}