Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 1
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2/**
3 * Merge Strategy Interface
4 *
5 * Defines the contract for comparison data merge strategies.
6 *
7 * @package Automattic\Jetpack\PremiumAnalytics\Reports\Export\MergeStrategy
8 */
9
10declare( strict_types=1 );
11
12namespace Automattic\Jetpack\PremiumAnalytics\Reports\Export\MergeStrategy;
13
14defined( 'ABSPATH' ) || exit;
15
16use Automattic\Jetpack\PremiumAnalytics\Reports\Export\Csv_Report_Controller_Interface;
17
18/**
19 * Interface for merge strategies.
20 *
21 * Merge strategies determine how original and comparison period data
22 * are combined for CSV export.
23 *
24 * @since $$next-version$$
25 */
26interface Merge_Strategy_Interface {
27
28    /**
29     * Merge original and comparison data items.
30     *
31     * @param array                           $original_items   Items from original period.
32     * @param array                           $comparison_items Items from comparison period.
33     * @param string                          $prefix           Prefix for comparison field names.
34     * @param Csv_Report_Controller_Interface $controller       Controller for default values and config.
35     * @return array Merged items with comparison data.
36     */
37    public function merge( array $original_items, array $comparison_items, string $prefix, Csv_Report_Controller_Interface $controller ): array;
38}