<?php

declare(strict_types=1);

namespace ReallySimplePlugins\RSS\Core\Features\Vulnerability\Interfaces;

use ReallySimplePlugins\RSS\Core\Features\Vulnerability\Dtos\VulnerabilitySnapshotDto;

/**
 * Defines persistence operations for vulnerability snapshot state.
 *
 * Constraints: Read/write access only; no business logic.
 */
interface VulnerabilitySnapshotRepositoryInterface
{
    /**
     * Returns the previously stored vulnerability snapshot, if any.
     */
    public function getPrevious(): ?VulnerabilitySnapshotDto;

    /**
     * Persists the current vulnerability snapshot.
     */
    public function saveCurrent(VulnerabilitySnapshotDto $vulnerabilitySnapshotDto): void;

    /**
     * Removes any stored snapshot data.
     */
    public function clear(): void;
}
