$invalidationReasons */ public function __construct( public string $state, public string $freshnessPolicy, public ?string $fingerprint, public ?string $generatedAt, public array $invalidationReasons, public bool $rerunRequired, public string $displaySummary, ) { if (! in_array($this->state, [ self::STATE_NOT_GENERATED, self::STATE_CURRENT, self::STATE_STALE, self::STATE_INVALIDATED, ], true)) { throw new InvalidArgumentException('Unsupported preview integrity state.'); } } public function isCurrent(): bool { return $this->state === self::STATE_CURRENT; } /** * @return array{ * state: string, * freshness_policy: string, * fingerprint: ?string, * generated_at: ?string, * invalidation_reasons: list, * rerun_required: bool, * display_summary: string * } */ public function toArray(): array { return [ 'state' => $this->state, 'freshness_policy' => $this->freshnessPolicy, 'fingerprint' => $this->fingerprint, 'generated_at' => $this->generatedAt, 'invalidation_reasons' => $this->invalidationReasons, 'rerun_required' => $this->rerunRequired, 'display_summary' => $this->displaySummary, ]; } }