<?php

declare(strict_types=1);

namespace App\Framework\Notification\ValueObjects;

/**
 * Notification Type Interface
 *
 * Contract for all notification type implementations.
 * Allows different domains to define their own notification types.
 */
interface NotificationTypeInterface
{
    /**
     * Get the string representation of the notification type
     */
    public function toString(): string;

    /**
     * Get human-readable display name
     */
    public function getDisplayName(): string;

    /**
     * Check if this notification type is critical
     */
    public function isCritical(): bool;
}
