<?php

/**
 * Kylin Activity 辅助函数
 *
 * 提供全局 activity() 函数，用于快速记录活动日志。
 *
 * 使用示例：
 *  activity()->performedOn($order)->log('订单已创建');
 *  activity('payment')->causedBy($user)->log('支付成功');
 */

use Kylin\Activity\ActivityLogger;
use Kylin\Activity\PendingActivityLog;

if (! function_exists('activity')) {
    /**
     * 获取活动日志记录器
     *
     * @param  string|null  $logName  日志名称（null 则使用默认名称）
     * @return ActivityLogger
     */
    function activity(?string $logName = null): ActivityLogger
    {
        /** @var PendingActivityLog $log */
        $log = app(PendingActivityLog::class);

        if ($logName) {
            $log->useLog($logName);
        }

        return $log->logger();
    }
}
