<?php
/**
 * Launch validation module service bundle.
 *
 * @package ScheduledChanges
 */

namespace ScheduledChanges\Validation;

/**
 * Holds validation services owned by the lifecycle validation module.
 */
final class ValidationServices {
	private PlanValidator $validator;
	private DryRunService $dry_run;
	private ValidationEnvironment $environment;
	private OperationGraphValidator $graphs;

	public function __construct(
		PlanValidator $validator,
		DryRunService $dry_run,
		ValidationEnvironment $environment,
		OperationGraphValidator $graphs
	) {
		$this->validator   = $validator;
		$this->dry_run     = $dry_run;
		$this->environment = $environment;
		$this->graphs      = $graphs;
	}

	public function validator(): PlanValidator {
		return $this->validator;
	}

	public function dryRun(): DryRunService {
		return $this->dry_run;
	}

	public function environment(): ValidationEnvironment {
		return $this->environment;
	}

	public function graphs(): OperationGraphValidator {
		return $this->graphs;
	}
}
