<?php

namespace Acms\Services\Logger;

/**
 * リクエスト内で永続化された監査ログの ID を共有するためのコンテキスト。
 *
 * 監査ログの DB 保存ハンドラ（DatabaseHandler）が採番した ID を、
 * 同一リクエスト内のメール通知ハンドラ（EmailHandler）へ受け渡すために使う。
 * Monolog の各ハンドラはレコードを共有できないため、両ハンドラに同一インスタンスを
 * 注入して橋渡しする。
 */
class AuditLogContext
{
    /**
     * 直近に永続化された監査ログの ID
     * @var int|null
     */
    private ?int $currentLogId = null;

    /**
     * 永続化された監査ログの ID を記録する
     * @param int|null $logId
     * @return void
     */
    public function setCurrentLogId(?int $logId): void
    {
        $this->currentLogId = $logId;
    }

    /**
     * 直近に永続化された監査ログの ID を取得する
     * @return int|null
     */
    public function getCurrentLogId(): ?int
    {
        return $this->currentLogId;
    }
}
