<?php  namespace App\Services\ImportersAndHandlers;  use App\Models\Category; use Illuminate\Support\Facades\Log; use App\Services\Support\ErpHandler; use Illuminate\Validation\Validator; use Illuminate\Database\Eloquent\Collection; use App\Contracts\ImportableSyncableItemInterface;  abstract class ImportAndSyncTemplateHandler { 	protected int $importedItemsCount = 0; 	protected int $failedImportsCount = 0; 	protected array $failedImports = []; 	protected int $syncedItemsCount = 0; 	protected int $failedSyncItemsCount = 0; 	protected array $failedSyncs = [];  	public function __construct(protected ErpHandler $erpHandler){}  	abstract public function start(?string $groupCode = null): void;  	abstract protected function createValidatorInstance(mixed ...$fieldsToValidate): Validator;  	abstract protected function updateOrCreateItem(mixed ...$productFields): ImportableSyncableItemInterface;  	protected function logStatistics(): void{}  	protected function getCategories(): Collection{}  	protected function getStock(): array{}  	protected function getProducts(): array{}  	protected function getPrices(): array{}  	protected function updateCategoryRelation(ImportableSyncableItemInterface $item, string $category_id): void{} }