<?php

namespace Dalten\RuianToUir\Formatter;

use Dalten\RuianToUir\Converter\Result\RemoveRecord;
use Dalten\RuianToUir\Converter\Result\ResultInterface;

/**
 * Formatter, který převádí hodnoty do formátu název1=hodnota1;název2=hodnota2.
 */
class PlainText implements FormatterInterface
{
    /**
     * Převádí hodnoty do formátu TypPoložky;AKCE;název1=hodnota1;název2=hodnota2.
     *
     * @param ResultInterface $data pole převedených dat
     *
     * @return string zformátovaný řádek
     */
    public function format(ResultInterface $data): string
    {
        $output = [];
        if ($data instanceof RemoveRecord) {
            $converterName = $data->getItemType();
            $output[] = $data->getItemType();
            $output[] = 'DEL';
            $output[] = 'identifier='.$data->getIdentifier();
        } else {
            $output[] = $data->getItemType();
            $output[] = 'ADD';
            foreach ($data->getData() as $name => $value) {
                $output[] = \sprintf('%s=%s', $name, $value);
            }
        }

        return implode(';', $output);
    }
}
