<?php

namespace App\Notification\NotificationBody;

use App\Notification\NotificationBody;
use App\Notification\Stringifiable;

class ListNotificationBody extends NotificationBody {

    private array $content;

    public function __construct(array $content) {
        $this->content = $content;
    }

    /**
     * @inheritDoc
     */
    public function toMarkdownString(): string {
        $string = "";
        foreach ($this->content as $item) {
            $string .= "- ". $this->getTextFromContent($item) . "\n";
        }
        return $string;
    }

    /**
     * @inheritDoc
     */
    public function toString(): string {
        $string = "";
        foreach ($this->content as $item) {
            $string .= $this->getTextFromContent($item) . "\n";
        }
        return $string;
    }

    public function getTextFromContent(string|Stringifiable $content): string {
        if ($content instanceof Stringifiable) {
            return $content->toString();
        }
        return $content;
    }
}
