<?php

/**
 * Matomo - free/libre analytics platform
 *
 * @link    https://matomo.org
 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 */

namespace Piwik\Archive\ArchiveInvalidator;

use Piwik\Date;

/**
 * Information about the result of an archive invalidation operation.
 */
class InvalidationResult
{
    /**
     * Dates that couldn't be invalidated because they are earlier than the configured log
     * deletion limit.
     *
     * @var array
     */
    public $warningDates = [];

    /**
     * Dates that were successfully invalidated.
     *
     * @var array
     */
    public $processedDates = [];

    /**
     * The day of the oldest log entry.
     *
     * @var Date|bool
     */
    public $minimumDateWithLogs = false;

    /**
     * @return string[]
     */
    public function makeOutputLogs(): array
    {
        $output = [];
        if ($this->warningDates) {
            $output[] = 'Warning: the following Dates have not been invalidated, because they are earlier than your Log Deletion limit: ' .
                implode(", ", $this->warningDates) .
                "\n The last day with logs is " . $this->minimumDateWithLogs . ". " .
                "\n Please disable 'Delete old Logs' or set it to a higher deletion threshold (eg. 180 days or 365 years).'.";
        }

        $output[] = "Success. The following dates were invalidated successfully: " . implode(", ", $this->processedDates);
        return $output;
    }
}
