<?php

namespace Easymailing\App\Core\Provider\Woocommerce\Model;

/**
 * Fases de la sincronización batch.
 *
 * Cada fase se envía al API de Easymailing y se espera a que termine
 * antes de encolar la siguiente, para evitar race conditions entre
 * recursos dependientes (productos → categorías, variantes → productos,
 * órdenes → productos/variantes/customers).
 */
class BatchSynchronizationPhase
{
	const NOT_STARTED = 0;
	const STORES_CATEGORIES_CUSTOMERS = 1;
	const PRODUCTS = 2;
	const VARIANTS = 3;
	const ORDERS = 4;
	const DONE = 5;

	const TOTAL_PHASES = 4;

	public static function getLabel(int $phase): string
	{
		switch ($phase) {
			case self::STORES_CATEGORIES_CUSTOMERS:
				return __('Sincronizando categorías y clientes', 'easymailing');
			case self::PRODUCTS:
				return __('Sincronizando productos', 'easymailing');
			case self::VARIANTS:
				return __('Sincronizando variantes', 'easymailing');
			case self::ORDERS:
				return __('Sincronizando pedidos', 'easymailing');
			default:
				return '';
		}
	}
}
