<?php

declare(strict_types=1);

namespace App\Framework\Sitemap;

use DateTimeImmutable;

final readonly class SitemapEntry
{
    public function __construct(
        public string $url,
        public DateTimeImmutable $lastmod,
        public string $changefreq = 'monthly',
        public float $priority = 0.5
    ) {
    }

    public function toXml(): string
    {
        return sprintf(
            '<url><loc>%s</loc><lastmod>%s</lastmod><changefreq>%s</changefreq><priority>%.1f</priority></url>',
            htmlspecialchars($this->url),
            $this->lastmod->format('Y-m-d'),
            $this->changefreq,
            $this->priority
        );
    }
}
