<?php
/**
 * Importability constants.
 *
 * @package Ealab\Deployer
 */

namespace EaLab\WP_Deployer\vendor\Ealab\Deployer\Import;

/**
 * Importability constants.
 */
interface Importability {
	/**
	 * The incoming item is based on the same production values as the local item.
	 */
	const BASED_ON_SAME_PRODUCTION_VALUES = 1 << 0;

	/**
	 * If set, the incoming item has the same last modification date as the local item.
	 */
	const SAME_LAST_MODIFICATION_DATE = 1 << 1;

	/**
	 * If set, the local item has been modified since the local last production sync.
	 */
	const LOCAL_ITEM_HAS_BEEN_MODIFIED = 1 << 2;

	/**
	 * If set, the incoming item has been modified since its last production sync.
	 */
	const INCOMING_ITEM_HAS_BEEN_MODIFIED = 1 << 3;

	/**
	 * If set, the local item exists.
	 */
	const LOCAL_ITEM_EXISTS = 1 << 4;

	/**
	 * If set, the item can be imported without conflict.
	 */
	const CAN_IMPORT = 1 << 5;

	/**
	 * The item has changes to import.
	 */
	const HAS_CHANGES_TO_IMPORT = 1 << 6;

	/**
	 * This is a special flag that indicates that the importability check was aborted.
	 *
	 * Use this when an importability check does not make sense.
	 *
	 * This is used when the user wanted to export changes on the production instance,
	 * and the production instance is the current instance. In this case, we don't want to
	 * show the diff/merge feature because it applies only to non-production instances.
	 */
	const ABORTED_CHECK = 1 << 7;

	/**
	 * The production instance is unreachable, so the importability cannot be checked.
	 *
	 * The user will have to perform the merge on the production instance.
	 */
	const UNREACHABLE_PRODUCTION_INSTANCE = 1 << 8;

	/**
	 * The item to import requires a new tracker to be installed.
	 */
	const REQUIRES_NEW_TRACKER = 1 << 9;

	/**
	 * The item to import is valid because a merge has been made by the user.
	 */
	const MERGE_IS_VALID = 1 << 10;

	/**
	 * The item to import requires a tracker update to enable diff/merge and imports.
	 */
	const TRACKER_CONFIG_MISMATCH = 1 << 11;
}
