<?php

declare(strict_types=1);

namespace External\PompoBundle\Util\Watchdog;

use External\PompoBundle\DataGo\Synchronizer\StockSynchronizer;
use KupShop\WatchdogBundle\Util\Watchdog;
use Query\QueryBuilder;

class PompoWatchdog extends Watchdog
{
    /**
     * Předefinovávám `getInStoreField`, protože chci vracet skladovost pouze pro centrální sklad. Pokud je produkt skladem třeba
     * jen na jedný prodejně, tak to zákazníka nemusí zajímat, protože ta prodejna může být na druhý straně republiky.
     */
    public function getInStoreField(QueryBuilder $qb, string $productAlias = 'p', string $variationAlias = 'pv'): string
    {
        // Najoinuju si skladovost na centralnim skladu
        $qb->leftJoin($productAlias, 'stores_items', 'si_wd', "si_wd.id_product = {$productAlias}.id AND {$variationAlias}.id IS NULL AND si_wd.id_store = :wdStoreId")
            ->setParameter('wdStoreId', StockSynchronizer::STORE_ID);

        // Vracim skladovost na centralnim skladu
        return 'COALESCE(si_wd.quantity, 0)';
    }
}
