<?php
// +----------------------------------------------------------------------
// | onezan-admin 快速开发的管理平台
// +----------------------------------------------------------------------
// | 官方网址：https://www.onezan.cn
// +----------------------------------------------------------------------
// | onezan团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: 543885307@qq.com
// +----------------------------------------------------------------------
namespace app\service\domain\notification\driver;


/**
 * Notification Driver Interface
 * @package app\service\domain\notification\driver
 */
interface NotificationDriverInterface
{
    /**
     * 发送通知消息
     * @param array $to 接收方信息（email/phone/openid等）
     * @param string $templateId 模板ID
     * @param array $data 模板变量数据
     * @param array $config 驱动配置
     * @return array
     */
    public function send(array $to, string $templateId, array $data, array $config): array;

    /**
     * 返回驱动类型标识
     * @return string
     */
    public function driverType(): string;

    /**
     * 返回驱动显示名称
     * @return string
     */
    public function name(): string;
}