<?php

namespace Modules\Vrc\Services\Contracts;

/**
 * VRC ↔ ERP notifications boundary (spec §6.12). Repair status / estimate /
 * reminder messages are dispatched through the ERP notification system; VRC
 * only decides *when* and renders the placeholders.
 */
interface NotificationServiceContract
{
    /**
     * Send a message to a contact via a channel (email|sms|whatsapp). Returns
     * true if dispatched. Implementations must be safe no-ops when the channel
     * is not configured in the ERP business settings.
     *
     * @param  array  $data  rendered fields: customer_name, ro_number, status, link, ...
     */
    public function send(int $businessId, int $contactId, string $channel, string $body, array $data = []): bool;
}
