<?php

namespace MintyPHP\Service\Audit;

/**
 * No-op user lifecycle audit used when the audit module is disabled.
 */
final class NullUserLifecycleAudit implements UserLifecycleAuditInterface
{
    public function logDeactivate(
        string $runUuid,
        string $triggerType,
        array $policy,
        ?int $actorUserId,
        array $targetUser,
        string $status = 'success',
        ?string $reasonCode = null
    ): bool {
        return false;
    }

    public function logDeleteWithSnapshot(
        string $runUuid,
        string $triggerType,
        array $policy,
        ?int $actorUserId,
        array $targetUser
    ): int|false {
        return false;
    }

    public function logDeleteFailure(
        string $runUuid,
        string $triggerType,
        array $policy,
        ?int $actorUserId,
        array $targetUser,
        string $reasonCode
    ): bool {
        return false;
    }

    public function logRestore(
        string $runUuid,
        string $triggerType,
        array $policy,
        ?int $actorUserId,
        array $targetUser,
        string $status = 'success',
        ?string $reasonCode = null
    ): bool {
        return false;
    }

    public function markDeleteEventRestored(int $auditId, int $restoredByUserId, int $restoredUserId): bool
    {
        return false;
    }

    public function updateStatus(int $id, string $status, ?string $reasonCode = null): bool
    {
        return false;
    }

    public function findDeleteEventForRestore(int $id, bool $forUpdate = false): ?array
    {
        return null;
    }

    public function decryptSnapshot(array $event): ?array
    {
        return null;
    }
}
