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

use Core\service\queue\contract\QueueHandlerInterface;

/**
 * Payment Completed Handler
 * @package Applications\sample\modules\pay\queue
 */
class PaymentCompletedHandler implements QueueHandlerInterface
{
    /**
     * 获取队列主题名称
     * @return string
     */
    public function topic(): string
    {
        return 'sample.order.paid';
    }


    /**
     * 处理支付完成事件
     * @param array $payload 事件载荷数据
     * @return void
     */
    public function handle(array $payload): void
    {
        $log = sprintf(
            '[%s] 支付完成通知: order_id=%d, user_id=%d, article_id=%d',
            date('Y-m-d H:i:s'),
            $payload['order_id'] ?? 0,
            $payload['user_id'] ?? 0,
            $payload['article_id'] ?? 0
        );
        trace($log, 'sample');
    }
}
