<?php

declare(strict_types=1);

namespace App\Domain\Meta\Interface;

/**
 * Interface für Domain-Objekte, die ihre eigenen Meta-Daten bereitstellen können
 */
interface MetaAware
{
    /**
     * Gibt den Meta-Titel zurück
     */
    public function getMetaTitle(): string;

    /**
     * Gibt die Meta-Beschreibung zurück
     */
    public function getMetaDescription(): string;

    /**
     * Gibt Meta-Keywords zurück
     */
    public function getMetaKeywords(): array;

    /**
     * Gibt das Open Graph Bild zurück
     */
    public function getOgImage(): ?string;

    /**
     * Gibt den Open Graph Typ zurück (optional)
     */
    public function getOgType(): string;

    /**
     * Gibt die kanonische URL zurück (optional)
     */
    public function getCanonicalUrl(): ?string;
}
