<?php

declare(strict_types=1);

namespace App\Framework\Notification\Interfaces;

use App\Framework\Notification\Notification;

/**
 * Interface for notification channels that support location sharing
 *
 * Implement this interface if your channel can send geographic locations
 */
interface SupportsLocationSharing
{
    /**
     * Send notification with location
     *
     * @param Notification $notification The notification to send
     * @param float $latitude Latitude coordinate
     * @param float $longitude Longitude coordinate
     * @param string|null $title Optional location title/name
     * @param string|null $address Optional address
     */
    public function sendWithLocation(
        Notification $notification,
        float $latitude,
        float $longitude,
        ?string $title = null,
        ?string $address = null
    ): void;
}
