Error 500 Internal Server Error

GET https://dvz.all.baks.dev/catalog/westlake/westlake_z507_zupersnow/model

Forwarded to ErrorController (b43dee)

Query Metrics

31 Database Queries
17 Different statements
1497.75 ms Query time
1 Invalid entities
2 Managed entities

Queries

Group similar statements

# Time Info
1 180.83 ms
SELECT product.id AS product_id, product.event AS product_event, product_trans.name AS product_name, product_info.url AS product_url, product_info.sort AS product_sort, product_active.active as product_active, product_active.active_from as product_active_from, product_active.active_to as product_active_to, category_offer.card AS category_offer_card , category_offer.reference AS product_offer_reference, category_variation.card AS category_variation_card, category_variation.reference as product_variation_reference, category_modification.card AS category_modification_card , category_modification.reference as product_modification_reference, JSON_AGG( DISTINCT product_invariable.id) AS invariable, 
                CASE
    
                    WHEN product_modification_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_modification_images' , '/', product_modification_image.name)
                    WHEN product_variation_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_variation_images' , '/', product_variation_image.name)
                    WHEN product_offer_images.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_offer_images' , '/', product_offer_images.name)
                    WHEN product_photo.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_photo' , '/', product_photo.name)
                    ELSE NULL
                   
                END AS product_image
            , 
            COALESCE(
                product_modification_image.ext,
                product_variation_image.ext,
                product_offer_images.ext,
                product_photo.ext
            ) AS product_image_ext, 
            COALESCE(
                product_modification_image.cdn,
                product_variation_image.cdn,
                product_offer_images.cdn,
                product_photo.cdn
            ) AS product_image_cdn, category_info.url AS category_url, category_trans.name AS category_name, 
            COALESCE(
                NULLIF(MIN(product_modification_price.price), 0),
                NULLIF(MIN(product_variation_price.price), 0),
                NULLIF(MIN(product_offer_price.price), 0),
                NULLIF(MIN(product_price.price), 0),
                0
            ) AS product_price
		, 
            CASE

			   WHEN MIN(product_modification_price.price) IS NOT NULL
			   THEN product_modification_price.currency

			   WHEN MIN(product_variation_price.price) IS NOT NULL
			   THEN product_variation_price.currency

			   WHEN MIN(product_offer_price.price) IS NOT NULL
			   THEN product_offer_price.currency

			   WHEN MIN(product_price.price) IS NOT NULL
			   THEN product_price.currency

			   ELSE NULL

			END AS product_currency
		, project_profile_discount.value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category.event = product.event AND product_event_category.category IN (?) LEFT JOIN product_trans product_trans ON product_trans.event = product.event AND product_trans.local = ? LEFT JOIN product_info product_info ON product_info.product = product.id LEFT JOIN product_active product_active ON product_active.event = product.event LEFT JOIN product_price product_price ON product_price.event = product.event AND product_price.price > 0 LEFT JOIN product_offer product_offer ON product_offer.event = product.event INNER JOIN users_profile project_profile ON 
                        project_profile.id = ? LEFT JOIN product_category category ON category.id = product_event_category.category LEFT JOIN product_category_info category_info ON category_info.event = category.event AND category_info.active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans.event = category.event AND category_trans.local = ? LEFT JOIN product_category_offers category_offer ON category_offer.id = product_offer.category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price.offer = product_offer.id AND product_offer_price.price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity.offer = product_offer.id LEFT JOIN product_variation product_variation ON product_variation.offer = product_offer.id LEFT JOIN product_variation_images product_variation_image ON 
                product_variation_image.variation = product_variation.id AND
                product_variation_image.root = true
			 LEFT JOIN product_offer_images product_offer_images ON 
			product_variation_image.name IS NULL AND
			product_offer_images.offer = product_offer.id AND
			product_offer_images.root = true
			 LEFT JOIN product_photo product_photo ON 
                product_offer_images.name IS NULL AND
                product_photo.event = product.event AND
                product_photo.root = true
			 LEFT JOIN product_category_variation category_variation ON category_variation.id = product_variation.category_variation LEFT JOIN product_modification product_modification ON product_modification.variation = product_variation.id LEFT JOIN product_invariable product_invariable ON 
                                    product_invariable.product = product.id
                                    AND
                                        CASE
                                            WHEN product_offer.const IS NOT NULL THEN product_invariable.offer = product_offer.const
                                            ELSE product_invariable.offer IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_variation.const IS NOT NULL THEN product_invariable.variation = product_variation.const
                                            ELSE product_invariable.variation IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_modification.const IS NOT NULL THEN product_invariable.modification = product_modification.const
                                            ELSE product_invariable.modification IS NULL
                                        END
                                 LEFT JOIN product_variation_price product_variation_price ON product_variation_price.variation = product_variation.id AND product_variation_price.price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity.variation = product_variation.id LEFT JOIN product_category_modification category_modification ON category_modification.id = product_modification.category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price.modification = product_modification.id AND product_modification_price.price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity.modification = product_modification.id LEFT JOIN product_modification_images product_modification_image ON 
                product_modification_image.modification = product_modification.id AND
                product_modification_image.root = true
			 LEFT JOIN user_profile_discount project_profile_discount ON 
                        project_profile_discount.event = project_profile.event WHERE (COALESCE(
                NULLIF(product_modification_price.price, 0),
                NULLIF(product_variation_price.price, 0),
                NULLIF(product_offer_price.price, 0),
                NULLIF(product_price.price, 0),
                0
            ) > 0) AND (
            CASE
                WHEN product_modification_quantity.quantity IS NOT NULL THEN (product_modification_quantity.quantity - product_modification_quantity.reserve)
                WHEN product_variation_quantity.quantity IS NOT NULL THEN (product_variation_quantity.quantity - product_variation_quantity.reserve)
                WHEN product_offer_quantity.quantity IS NOT NULL THEN (product_offer_quantity.quantity - product_offer_quantity.reserve)
                WHEN product_price.quantity  IS NOT NULL THEN (product_price.quantity - product_price.reserve)
                ELSE 0
            END > 0
        ) GROUP BY product_price.currency, product_offer_price.currency, product_variation_price.currency, product_modification_price.currency, product.id, product.event, product_trans.name, product_info.url, product_info.sort, product_active.active, product_active.active_from, product_active.active_to, category_offer.card, category_offer.reference, category_variation.card, category_variation.reference, category_modification.card, category_modification.reference, product_modification_image.name, product_variation_image.name, product_offer_images.name, product_photo.name, product_modification_image.ext, product_variation_image.ext, product_offer_images.ext, product_photo.ext, product_modification_image.cdn, product_variation_image.cdn, product_offer_images.cdn, product_photo.cdn, category_info.url, category_trans.name, project_profile_discount.value ORDER BY product_info.sort DESC, SUM(product_modification_quantity.reserve) DESC, SUM(product_variation_quantity.reserve) DESC, SUM(product_offer_quantity.reserve) DESC, SUM(product_price.reserve) DESC, SUM(product_modification_quantity.quantity) DESC, SUM(product_variation_quantity.quantity) DESC, SUM(product_offer_quantity.quantity) DESC, SUM(product_price.quantity) DESC LIMIT 6
Parameters:
[
  BaksDev\Products\Category\Type\Id\CategoryProductUid {#934
    __toString(): "01876af0-ddfc-70c3-ab25-5f85f55a9907"
  }
  "ru"
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
]
2 127.86 ms
SELECT product.id AS product_id, product.event AS product_event, product_trans.name AS product_name, product_info.url AS product_url, product_info.sort AS product_sort, product_active.active as product_active, product_active.active_from as product_active_from, product_active.active_to as product_active_to, category_offer.card AS category_offer_card , category_offer.reference AS product_offer_reference, category_variation.card AS category_variation_card, category_variation.reference as product_variation_reference, category_modification.card AS category_modification_card , category_modification.reference as product_modification_reference, JSON_AGG( DISTINCT product_invariable.id) AS invariable, 
                CASE
    
                    WHEN product_modification_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_modification_images' , '/', product_modification_image.name)
                    WHEN product_variation_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_variation_images' , '/', product_variation_image.name)
                    WHEN product_offer_images.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_offer_images' , '/', product_offer_images.name)
                    WHEN product_photo.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_photo' , '/', product_photo.name)
                    ELSE NULL
                   
                END AS product_image
            , 
            COALESCE(
                product_modification_image.ext,
                product_variation_image.ext,
                product_offer_images.ext,
                product_photo.ext
            ) AS product_image_ext, 
            COALESCE(
                product_modification_image.cdn,
                product_variation_image.cdn,
                product_offer_images.cdn,
                product_photo.cdn
            ) AS product_image_cdn, category_info.url AS category_url, category_trans.name AS category_name, 
            COALESCE(
                NULLIF(MIN(product_modification_price.price), 0),
                NULLIF(MIN(product_variation_price.price), 0),
                NULLIF(MIN(product_offer_price.price), 0),
                NULLIF(MIN(product_price.price), 0),
                0
            ) AS product_price
		, 
            CASE

			   WHEN MIN(product_modification_price.price) IS NOT NULL
			   THEN product_modification_price.currency

			   WHEN MIN(product_variation_price.price) IS NOT NULL
			   THEN product_variation_price.currency

			   WHEN MIN(product_offer_price.price) IS NOT NULL
			   THEN product_offer_price.currency

			   WHEN MIN(product_price.price) IS NOT NULL
			   THEN product_price.currency

			   ELSE NULL

			END AS product_currency
		, project_profile_discount.value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category.event = product.event AND product_event_category.category IN (?) LEFT JOIN product_trans product_trans ON product_trans.event = product.event AND product_trans.local = ? LEFT JOIN product_info product_info ON product_info.product = product.id LEFT JOIN product_active product_active ON product_active.event = product.event LEFT JOIN product_price product_price ON product_price.event = product.event AND product_price.price > 0 LEFT JOIN product_offer product_offer ON product_offer.event = product.event INNER JOIN users_profile project_profile ON 
                        project_profile.id = ? LEFT JOIN product_category category ON category.id = product_event_category.category LEFT JOIN product_category_info category_info ON category_info.event = category.event AND category_info.active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans.event = category.event AND category_trans.local = ? LEFT JOIN product_category_offers category_offer ON category_offer.id = product_offer.category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price.offer = product_offer.id AND product_offer_price.price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity.offer = product_offer.id LEFT JOIN product_variation product_variation ON product_variation.offer = product_offer.id LEFT JOIN product_variation_images product_variation_image ON 
                product_variation_image.variation = product_variation.id AND
                product_variation_image.root = true
			 LEFT JOIN product_offer_images product_offer_images ON 
			product_variation_image.name IS NULL AND
			product_offer_images.offer = product_offer.id AND
			product_offer_images.root = true
			 LEFT JOIN product_photo product_photo ON 
                product_offer_images.name IS NULL AND
                product_photo.event = product.event AND
                product_photo.root = true
			 LEFT JOIN product_category_variation category_variation ON category_variation.id = product_variation.category_variation LEFT JOIN product_modification product_modification ON product_modification.variation = product_variation.id LEFT JOIN product_invariable product_invariable ON 
                                    product_invariable.product = product.id
                                    AND
                                        CASE
                                            WHEN product_offer.const IS NOT NULL THEN product_invariable.offer = product_offer.const
                                            ELSE product_invariable.offer IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_variation.const IS NOT NULL THEN product_invariable.variation = product_variation.const
                                            ELSE product_invariable.variation IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_modification.const IS NOT NULL THEN product_invariable.modification = product_modification.const
                                            ELSE product_invariable.modification IS NULL
                                        END
                                 LEFT JOIN product_variation_price product_variation_price ON product_variation_price.variation = product_variation.id AND product_variation_price.price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity.variation = product_variation.id LEFT JOIN product_category_modification category_modification ON category_modification.id = product_modification.category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price.modification = product_modification.id AND product_modification_price.price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity.modification = product_modification.id LEFT JOIN product_modification_images product_modification_image ON 
                product_modification_image.modification = product_modification.id AND
                product_modification_image.root = true
			 LEFT JOIN user_profile_discount project_profile_discount ON 
                        project_profile_discount.event = project_profile.event WHERE (COALESCE(
                NULLIF(product_modification_price.price, 0),
                NULLIF(product_variation_price.price, 0),
                NULLIF(product_offer_price.price, 0),
                NULLIF(product_price.price, 0),
                0
            ) > 0) AND (
            CASE
                WHEN product_modification_quantity.quantity IS NOT NULL THEN (product_modification_quantity.quantity - product_modification_quantity.reserve)
                WHEN product_variation_quantity.quantity IS NOT NULL THEN (product_variation_quantity.quantity - product_variation_quantity.reserve)
                WHEN product_offer_quantity.quantity IS NOT NULL THEN (product_offer_quantity.quantity - product_offer_quantity.reserve)
                WHEN product_price.quantity  IS NOT NULL THEN (product_price.quantity - product_price.reserve)
                ELSE 0
            END > 0
        ) GROUP BY product_price.currency, product_offer_price.currency, product_variation_price.currency, product_modification_price.currency, product.id, product.event, product_trans.name, product_info.url, product_info.sort, product_active.active, product_active.active_from, product_active.active_to, category_offer.card, category_offer.reference, category_variation.card, category_variation.reference, category_modification.card, category_modification.reference, product_modification_image.name, product_variation_image.name, product_offer_images.name, product_photo.name, product_modification_image.ext, product_variation_image.ext, product_offer_images.ext, product_photo.ext, product_modification_image.cdn, product_variation_image.cdn, product_offer_images.cdn, product_photo.cdn, category_info.url, category_trans.name, project_profile_discount.value ORDER BY product_info.sort DESC, SUM(product_modification_quantity.reserve) DESC, SUM(product_variation_quantity.reserve) DESC, SUM(product_offer_quantity.reserve) DESC, SUM(product_price.reserve) DESC, SUM(product_modification_quantity.quantity) DESC, SUM(product_variation_quantity.quantity) DESC, SUM(product_offer_quantity.quantity) DESC, SUM(product_price.quantity) DESC LIMIT 6
Parameters:
[
  BaksDev\Products\Category\Type\Id\CategoryProductUid {#999
    __toString(): "018f4f55-53d4-7b35-bda7-fad6b852f2f6"
  }
  "ru"
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
]
3 111.03 ms
SELECT product.id AS product_id, product.event AS product_event, product_trans.name AS product_name, product_info.url AS product_url, product_info.sort AS product_sort, product_active.active as product_active, product_active.active_from as product_active_from, product_active.active_to as product_active_to, category_offer.card AS category_offer_card , category_offer.reference AS product_offer_reference, category_variation.card AS category_variation_card, category_variation.reference as product_variation_reference, category_modification.card AS category_modification_card , category_modification.reference as product_modification_reference, JSON_AGG( DISTINCT product_invariable.id) AS invariable, 
                CASE
    
                    WHEN product_modification_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_modification_images' , '/', product_modification_image.name)
                    WHEN product_variation_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_variation_images' , '/', product_variation_image.name)
                    WHEN product_offer_images.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_offer_images' , '/', product_offer_images.name)
                    WHEN product_photo.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_photo' , '/', product_photo.name)
                    ELSE NULL
                   
                END AS product_image
            , 
            COALESCE(
                product_modification_image.ext,
                product_variation_image.ext,
                product_offer_images.ext,
                product_photo.ext
            ) AS product_image_ext, 
            COALESCE(
                product_modification_image.cdn,
                product_variation_image.cdn,
                product_offer_images.cdn,
                product_photo.cdn
            ) AS product_image_cdn, category_info.url AS category_url, category_trans.name AS category_name, 
            COALESCE(
                NULLIF(MIN(product_modification_price.price), 0),
                NULLIF(MIN(product_variation_price.price), 0),
                NULLIF(MIN(product_offer_price.price), 0),
                NULLIF(MIN(product_price.price), 0),
                0
            ) AS product_price
		, 
            CASE

			   WHEN MIN(product_modification_price.price) IS NOT NULL
			   THEN product_modification_price.currency

			   WHEN MIN(product_variation_price.price) IS NOT NULL
			   THEN product_variation_price.currency

			   WHEN MIN(product_offer_price.price) IS NOT NULL
			   THEN product_offer_price.currency

			   WHEN MIN(product_price.price) IS NOT NULL
			   THEN product_price.currency

			   ELSE NULL

			END AS product_currency
		, project_profile_discount.value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category.event = product.event AND product_event_category.category IN (?) LEFT JOIN product_trans product_trans ON product_trans.event = product.event AND product_trans.local = ? LEFT JOIN product_info product_info ON product_info.product = product.id LEFT JOIN product_active product_active ON product_active.event = product.event LEFT JOIN product_price product_price ON product_price.event = product.event AND product_price.price > 0 LEFT JOIN product_offer product_offer ON product_offer.event = product.event INNER JOIN users_profile project_profile ON 
                        project_profile.id = ? LEFT JOIN product_category category ON category.id = product_event_category.category LEFT JOIN product_category_info category_info ON category_info.event = category.event AND category_info.active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans.event = category.event AND category_trans.local = ? LEFT JOIN product_category_offers category_offer ON category_offer.id = product_offer.category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price.offer = product_offer.id AND product_offer_price.price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity.offer = product_offer.id LEFT JOIN product_variation product_variation ON product_variation.offer = product_offer.id LEFT JOIN product_variation_images product_variation_image ON 
                product_variation_image.variation = product_variation.id AND
                product_variation_image.root = true
			 LEFT JOIN product_offer_images product_offer_images ON 
			product_variation_image.name IS NULL AND
			product_offer_images.offer = product_offer.id AND
			product_offer_images.root = true
			 LEFT JOIN product_photo product_photo ON 
                product_offer_images.name IS NULL AND
                product_photo.event = product.event AND
                product_photo.root = true
			 LEFT JOIN product_category_variation category_variation ON category_variation.id = product_variation.category_variation LEFT JOIN product_modification product_modification ON product_modification.variation = product_variation.id LEFT JOIN product_invariable product_invariable ON 
                                    product_invariable.product = product.id
                                    AND
                                        CASE
                                            WHEN product_offer.const IS NOT NULL THEN product_invariable.offer = product_offer.const
                                            ELSE product_invariable.offer IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_variation.const IS NOT NULL THEN product_invariable.variation = product_variation.const
                                            ELSE product_invariable.variation IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_modification.const IS NOT NULL THEN product_invariable.modification = product_modification.const
                                            ELSE product_invariable.modification IS NULL
                                        END
                                 LEFT JOIN product_variation_price product_variation_price ON product_variation_price.variation = product_variation.id AND product_variation_price.price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity.variation = product_variation.id LEFT JOIN product_category_modification category_modification ON category_modification.id = product_modification.category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price.modification = product_modification.id AND product_modification_price.price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity.modification = product_modification.id LEFT JOIN product_modification_images product_modification_image ON 
                product_modification_image.modification = product_modification.id AND
                product_modification_image.root = true
			 LEFT JOIN user_profile_discount project_profile_discount ON 
                        project_profile_discount.event = project_profile.event WHERE (COALESCE(
                NULLIF(product_modification_price.price, 0),
                NULLIF(product_variation_price.price, 0),
                NULLIF(product_offer_price.price, 0),
                NULLIF(product_price.price, 0),
                0
            ) > 0) AND (
            CASE
                WHEN product_modification_quantity.quantity IS NOT NULL THEN (product_modification_quantity.quantity - product_modification_quantity.reserve)
                WHEN product_variation_quantity.quantity IS NOT NULL THEN (product_variation_quantity.quantity - product_variation_quantity.reserve)
                WHEN product_offer_quantity.quantity IS NOT NULL THEN (product_offer_quantity.quantity - product_offer_quantity.reserve)
                WHEN product_price.quantity  IS NOT NULL THEN (product_price.quantity - product_price.reserve)
                ELSE 0
            END > 0
        ) GROUP BY product_price.currency, product_offer_price.currency, product_variation_price.currency, product_modification_price.currency, product.id, product.event, product_trans.name, product_info.url, product_info.sort, product_active.active, product_active.active_from, product_active.active_to, category_offer.card, category_offer.reference, category_variation.card, category_variation.reference, category_modification.card, category_modification.reference, product_modification_image.name, product_variation_image.name, product_offer_images.name, product_photo.name, product_modification_image.ext, product_variation_image.ext, product_offer_images.ext, product_photo.ext, product_modification_image.cdn, product_variation_image.cdn, product_offer_images.cdn, product_photo.cdn, category_info.url, category_trans.name, project_profile_discount.value ORDER BY product_info.sort DESC, SUM(product_modification_quantity.reserve) DESC, SUM(product_variation_quantity.reserve) DESC, SUM(product_offer_quantity.reserve) DESC, SUM(product_price.reserve) DESC, SUM(product_modification_quantity.quantity) DESC, SUM(product_variation_quantity.quantity) DESC, SUM(product_offer_quantity.quantity) DESC, SUM(product_price.quantity) DESC LIMIT 6
Parameters:
[
  BaksDev\Products\Category\Type\Id\CategoryProductUid {#1050
    __toString(): "01905ea6-805e-7a56-b53c-da41c19f9e38"
  }
  "ru"
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
]
4 84.90 ms
SELECT product.id AS product_id, product.event AS product_event, product_trans.name AS product_name, product_info.url AS product_url, product_info.sort AS product_sort, product_active.active as product_active, product_active.active_from as product_active_from, product_active.active_to as product_active_to, category_offer.card AS category_offer_card , category_offer.reference AS product_offer_reference, category_variation.card AS category_variation_card, category_variation.reference as product_variation_reference, category_modification.card AS category_modification_card , category_modification.reference as product_modification_reference, JSON_AGG( DISTINCT product_invariable.id) AS invariable, 
                CASE
    
                    WHEN product_modification_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_modification_images' , '/', product_modification_image.name)
                    WHEN product_variation_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_variation_images' , '/', product_variation_image.name)
                    WHEN product_offer_images.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_offer_images' , '/', product_offer_images.name)
                    WHEN product_photo.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_photo' , '/', product_photo.name)
                    ELSE NULL
                   
                END AS product_image
            , 
            COALESCE(
                product_modification_image.ext,
                product_variation_image.ext,
                product_offer_images.ext,
                product_photo.ext
            ) AS product_image_ext, 
            COALESCE(
                product_modification_image.cdn,
                product_variation_image.cdn,
                product_offer_images.cdn,
                product_photo.cdn
            ) AS product_image_cdn, category_info.url AS category_url, category_trans.name AS category_name, 
            COALESCE(
                NULLIF(MIN(product_modification_price.price), 0),
                NULLIF(MIN(product_variation_price.price), 0),
                NULLIF(MIN(product_offer_price.price), 0),
                NULLIF(MIN(product_price.price), 0),
                0
            ) AS product_price
		, 
            CASE

			   WHEN MIN(product_modification_price.price) IS NOT NULL
			   THEN product_modification_price.currency

			   WHEN MIN(product_variation_price.price) IS NOT NULL
			   THEN product_variation_price.currency

			   WHEN MIN(product_offer_price.price) IS NOT NULL
			   THEN product_offer_price.currency

			   WHEN MIN(product_price.price) IS NOT NULL
			   THEN product_price.currency

			   ELSE NULL

			END AS product_currency
		, project_profile_discount.value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category.event = product.event AND product_event_category.category IN (?) LEFT JOIN product_trans product_trans ON product_trans.event = product.event AND product_trans.local = ? LEFT JOIN product_info product_info ON product_info.product = product.id LEFT JOIN product_active product_active ON product_active.event = product.event LEFT JOIN product_price product_price ON product_price.event = product.event AND product_price.price > 0 LEFT JOIN product_offer product_offer ON product_offer.event = product.event INNER JOIN users_profile project_profile ON 
                        project_profile.id = ? LEFT JOIN product_category category ON category.id = product_event_category.category LEFT JOIN product_category_info category_info ON category_info.event = category.event AND category_info.active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans.event = category.event AND category_trans.local = ? LEFT JOIN product_category_offers category_offer ON category_offer.id = product_offer.category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price.offer = product_offer.id AND product_offer_price.price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity.offer = product_offer.id LEFT JOIN product_variation product_variation ON product_variation.offer = product_offer.id LEFT JOIN product_variation_images product_variation_image ON 
                product_variation_image.variation = product_variation.id AND
                product_variation_image.root = true
			 LEFT JOIN product_offer_images product_offer_images ON 
			product_variation_image.name IS NULL AND
			product_offer_images.offer = product_offer.id AND
			product_offer_images.root = true
			 LEFT JOIN product_photo product_photo ON 
                product_offer_images.name IS NULL AND
                product_photo.event = product.event AND
                product_photo.root = true
			 LEFT JOIN product_category_variation category_variation ON category_variation.id = product_variation.category_variation LEFT JOIN product_modification product_modification ON product_modification.variation = product_variation.id LEFT JOIN product_invariable product_invariable ON 
                                    product_invariable.product = product.id
                                    AND
                                        CASE
                                            WHEN product_offer.const IS NOT NULL THEN product_invariable.offer = product_offer.const
                                            ELSE product_invariable.offer IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_variation.const IS NOT NULL THEN product_invariable.variation = product_variation.const
                                            ELSE product_invariable.variation IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_modification.const IS NOT NULL THEN product_invariable.modification = product_modification.const
                                            ELSE product_invariable.modification IS NULL
                                        END
                                 LEFT JOIN product_variation_price product_variation_price ON product_variation_price.variation = product_variation.id AND product_variation_price.price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity.variation = product_variation.id LEFT JOIN product_category_modification category_modification ON category_modification.id = product_modification.category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price.modification = product_modification.id AND product_modification_price.price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity.modification = product_modification.id LEFT JOIN product_modification_images product_modification_image ON 
                product_modification_image.modification = product_modification.id AND
                product_modification_image.root = true
			 LEFT JOIN user_profile_discount project_profile_discount ON 
                        project_profile_discount.event = project_profile.event WHERE (COALESCE(
                NULLIF(product_modification_price.price, 0),
                NULLIF(product_variation_price.price, 0),
                NULLIF(product_offer_price.price, 0),
                NULLIF(product_price.price, 0),
                0
            ) > 0) AND (
            CASE
                WHEN product_modification_quantity.quantity IS NOT NULL THEN (product_modification_quantity.quantity - product_modification_quantity.reserve)
                WHEN product_variation_quantity.quantity IS NOT NULL THEN (product_variation_quantity.quantity - product_variation_quantity.reserve)
                WHEN product_offer_quantity.quantity IS NOT NULL THEN (product_offer_quantity.quantity - product_offer_quantity.reserve)
                WHEN product_price.quantity  IS NOT NULL THEN (product_price.quantity - product_price.reserve)
                ELSE 0
            END > 0
        ) GROUP BY product_price.currency, product_offer_price.currency, product_variation_price.currency, product_modification_price.currency, product.id, product.event, product_trans.name, product_info.url, product_info.sort, product_active.active, product_active.active_from, product_active.active_to, category_offer.card, category_offer.reference, category_variation.card, category_variation.reference, category_modification.card, category_modification.reference, product_modification_image.name, product_variation_image.name, product_offer_images.name, product_photo.name, product_modification_image.ext, product_variation_image.ext, product_offer_images.ext, product_photo.ext, product_modification_image.cdn, product_variation_image.cdn, product_offer_images.cdn, product_photo.cdn, category_info.url, category_trans.name, project_profile_discount.value ORDER BY product_info.sort DESC, SUM(product_modification_quantity.reserve) DESC, SUM(product_variation_quantity.reserve) DESC, SUM(product_offer_quantity.reserve) DESC, SUM(product_price.reserve) DESC, SUM(product_modification_quantity.quantity) DESC, SUM(product_variation_quantity.quantity) DESC, SUM(product_offer_quantity.quantity) DESC, SUM(product_price.quantity) DESC LIMIT 6
Parameters:
[
  BaksDev\Products\Category\Type\Id\CategoryProductUid {#1098
    __toString(): "0190ef25-1d90-79d0-8d42-1c2baf9319c2"
  }
  "ru"
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
]
5 84.55 ms
SELECT product.id AS product_id, product.event AS product_event, product_trans.name AS product_name, product_info.url AS product_url, product_info.sort AS product_sort, product_active.active as product_active, product_active.active_from as product_active_from, product_active.active_to as product_active_to, category_offer.card AS category_offer_card , category_offer.reference AS product_offer_reference, category_variation.card AS category_variation_card, category_variation.reference as product_variation_reference, category_modification.card AS category_modification_card , category_modification.reference as product_modification_reference, JSON_AGG( DISTINCT product_invariable.id) AS invariable, 
                CASE
    
                    WHEN product_modification_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_modification_images' , '/', product_modification_image.name)
                    WHEN product_variation_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_variation_images' , '/', product_variation_image.name)
                    WHEN product_offer_images.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_offer_images' , '/', product_offer_images.name)
                    WHEN product_photo.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_photo' , '/', product_photo.name)
                    ELSE NULL
                   
                END AS product_image
            , 
            COALESCE(
                product_modification_image.ext,
                product_variation_image.ext,
                product_offer_images.ext,
                product_photo.ext
            ) AS product_image_ext, 
            COALESCE(
                product_modification_image.cdn,
                product_variation_image.cdn,
                product_offer_images.cdn,
                product_photo.cdn
            ) AS product_image_cdn, category_info.url AS category_url, category_trans.name AS category_name, 
            COALESCE(
                NULLIF(MIN(product_modification_price.price), 0),
                NULLIF(MIN(product_variation_price.price), 0),
                NULLIF(MIN(product_offer_price.price), 0),
                NULLIF(MIN(product_price.price), 0),
                0
            ) AS product_price
		, 
            CASE

			   WHEN MIN(product_modification_price.price) IS NOT NULL
			   THEN product_modification_price.currency

			   WHEN MIN(product_variation_price.price) IS NOT NULL
			   THEN product_variation_price.currency

			   WHEN MIN(product_offer_price.price) IS NOT NULL
			   THEN product_offer_price.currency

			   WHEN MIN(product_price.price) IS NOT NULL
			   THEN product_price.currency

			   ELSE NULL

			END AS product_currency
		, project_profile_discount.value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category.event = product.event AND product_event_category.category IN (?) LEFT JOIN product_trans product_trans ON product_trans.event = product.event AND product_trans.local = ? LEFT JOIN product_info product_info ON product_info.product = product.id LEFT JOIN product_active product_active ON product_active.event = product.event LEFT JOIN product_price product_price ON product_price.event = product.event AND product_price.price > 0 LEFT JOIN product_offer product_offer ON product_offer.event = product.event INNER JOIN users_profile project_profile ON 
                        project_profile.id = ? LEFT JOIN product_category category ON category.id = product_event_category.category LEFT JOIN product_category_info category_info ON category_info.event = category.event AND category_info.active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans.event = category.event AND category_trans.local = ? LEFT JOIN product_category_offers category_offer ON category_offer.id = product_offer.category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price.offer = product_offer.id AND product_offer_price.price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity.offer = product_offer.id LEFT JOIN product_variation product_variation ON product_variation.offer = product_offer.id LEFT JOIN product_variation_images product_variation_image ON 
                product_variation_image.variation = product_variation.id AND
                product_variation_image.root = true
			 LEFT JOIN product_offer_images product_offer_images ON 
			product_variation_image.name IS NULL AND
			product_offer_images.offer = product_offer.id AND
			product_offer_images.root = true
			 LEFT JOIN product_photo product_photo ON 
                product_offer_images.name IS NULL AND
                product_photo.event = product.event AND
                product_photo.root = true
			 LEFT JOIN product_category_variation category_variation ON category_variation.id = product_variation.category_variation LEFT JOIN product_modification product_modification ON product_modification.variation = product_variation.id LEFT JOIN product_invariable product_invariable ON 
                                    product_invariable.product = product.id
                                    AND
                                        CASE
                                            WHEN product_offer.const IS NOT NULL THEN product_invariable.offer = product_offer.const
                                            ELSE product_invariable.offer IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_variation.const IS NOT NULL THEN product_invariable.variation = product_variation.const
                                            ELSE product_invariable.variation IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_modification.const IS NOT NULL THEN product_invariable.modification = product_modification.const
                                            ELSE product_invariable.modification IS NULL
                                        END
                                 LEFT JOIN product_variation_price product_variation_price ON product_variation_price.variation = product_variation.id AND product_variation_price.price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity.variation = product_variation.id LEFT JOIN product_category_modification category_modification ON category_modification.id = product_modification.category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price.modification = product_modification.id AND product_modification_price.price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity.modification = product_modification.id LEFT JOIN product_modification_images product_modification_image ON 
                product_modification_image.modification = product_modification.id AND
                product_modification_image.root = true
			 LEFT JOIN user_profile_discount project_profile_discount ON 
                        project_profile_discount.event = project_profile.event WHERE (COALESCE(
                NULLIF(product_modification_price.price, 0),
                NULLIF(product_variation_price.price, 0),
                NULLIF(product_offer_price.price, 0),
                NULLIF(product_price.price, 0),
                0
            ) > 0) AND (
            CASE
                WHEN product_modification_quantity.quantity IS NOT NULL THEN (product_modification_quantity.quantity - product_modification_quantity.reserve)
                WHEN product_variation_quantity.quantity IS NOT NULL THEN (product_variation_quantity.quantity - product_variation_quantity.reserve)
                WHEN product_offer_quantity.quantity IS NOT NULL THEN (product_offer_quantity.quantity - product_offer_quantity.reserve)
                WHEN product_price.quantity  IS NOT NULL THEN (product_price.quantity - product_price.reserve)
                ELSE 0
            END > 0
        ) GROUP BY product_price.currency, product_offer_price.currency, product_variation_price.currency, product_modification_price.currency, product.id, product.event, product_trans.name, product_info.url, product_info.sort, product_active.active, product_active.active_from, product_active.active_to, category_offer.card, category_offer.reference, category_variation.card, category_variation.reference, category_modification.card, category_modification.reference, product_modification_image.name, product_variation_image.name, product_offer_images.name, product_photo.name, product_modification_image.ext, product_variation_image.ext, product_offer_images.ext, product_photo.ext, product_modification_image.cdn, product_variation_image.cdn, product_offer_images.cdn, product_photo.cdn, category_info.url, category_trans.name, project_profile_discount.value ORDER BY product_info.sort DESC, SUM(product_modification_quantity.reserve) DESC, SUM(product_variation_quantity.reserve) DESC, SUM(product_offer_quantity.reserve) DESC, SUM(product_price.reserve) DESC, SUM(product_modification_quantity.quantity) DESC, SUM(product_variation_quantity.quantity) DESC, SUM(product_offer_quantity.quantity) DESC, SUM(product_price.quantity) DESC LIMIT 6
Parameters:
[
  BaksDev\Products\Category\Type\Id\CategoryProductUid {#1146
    __toString(): "0190ef2a-66cd-70ea-b793-2eb962175a4c"
  }
  "ru"
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
]
6 83.62 ms
SELECT product.id AS product_id, product.event AS product_event, product_trans.name AS product_name, product_info.url AS product_url, product_info.sort AS product_sort, product_active.active as product_active, product_active.active_from as product_active_from, product_active.active_to as product_active_to, category_offer.card AS category_offer_card , category_offer.reference AS product_offer_reference, category_variation.card AS category_variation_card, category_variation.reference as product_variation_reference, category_modification.card AS category_modification_card , category_modification.reference as product_modification_reference, JSON_AGG( DISTINCT product_invariable.id) AS invariable, 
                CASE
    
                    WHEN product_modification_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_modification_images' , '/', product_modification_image.name)
                    WHEN product_variation_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_variation_images' , '/', product_variation_image.name)
                    WHEN product_offer_images.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_offer_images' , '/', product_offer_images.name)
                    WHEN product_photo.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_photo' , '/', product_photo.name)
                    ELSE NULL
                   
                END AS product_image
            , 
            COALESCE(
                product_modification_image.ext,
                product_variation_image.ext,
                product_offer_images.ext,
                product_photo.ext
            ) AS product_image_ext, 
            COALESCE(
                product_modification_image.cdn,
                product_variation_image.cdn,
                product_offer_images.cdn,
                product_photo.cdn
            ) AS product_image_cdn, category_info.url AS category_url, category_trans.name AS category_name, 
            COALESCE(
                NULLIF(MIN(product_modification_price.price), 0),
                NULLIF(MIN(product_variation_price.price), 0),
                NULLIF(MIN(product_offer_price.price), 0),
                NULLIF(MIN(product_price.price), 0),
                0
            ) AS product_price
		, 
            CASE

			   WHEN MIN(product_modification_price.price) IS NOT NULL
			   THEN product_modification_price.currency

			   WHEN MIN(product_variation_price.price) IS NOT NULL
			   THEN product_variation_price.currency

			   WHEN MIN(product_offer_price.price) IS NOT NULL
			   THEN product_offer_price.currency

			   WHEN MIN(product_price.price) IS NOT NULL
			   THEN product_price.currency

			   ELSE NULL

			END AS product_currency
		, project_profile_discount.value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category.event = product.event AND product_event_category.category IN (?) LEFT JOIN product_trans product_trans ON product_trans.event = product.event AND product_trans.local = ? LEFT JOIN product_info product_info ON product_info.product = product.id LEFT JOIN product_active product_active ON product_active.event = product.event LEFT JOIN product_price product_price ON product_price.event = product.event AND product_price.price > 0 LEFT JOIN product_offer product_offer ON product_offer.event = product.event INNER JOIN users_profile project_profile ON 
                        project_profile.id = ? LEFT JOIN product_category category ON category.id = product_event_category.category LEFT JOIN product_category_info category_info ON category_info.event = category.event AND category_info.active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans.event = category.event AND category_trans.local = ? LEFT JOIN product_category_offers category_offer ON category_offer.id = product_offer.category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price.offer = product_offer.id AND product_offer_price.price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity.offer = product_offer.id LEFT JOIN product_variation product_variation ON product_variation.offer = product_offer.id LEFT JOIN product_variation_images product_variation_image ON 
                product_variation_image.variation = product_variation.id AND
                product_variation_image.root = true
			 LEFT JOIN product_offer_images product_offer_images ON 
			product_variation_image.name IS NULL AND
			product_offer_images.offer = product_offer.id AND
			product_offer_images.root = true
			 LEFT JOIN product_photo product_photo ON 
                product_offer_images.name IS NULL AND
                product_photo.event = product.event AND
                product_photo.root = true
			 LEFT JOIN product_category_variation category_variation ON category_variation.id = product_variation.category_variation LEFT JOIN product_modification product_modification ON product_modification.variation = product_variation.id LEFT JOIN product_invariable product_invariable ON 
                                    product_invariable.product = product.id
                                    AND
                                        CASE
                                            WHEN product_offer.const IS NOT NULL THEN product_invariable.offer = product_offer.const
                                            ELSE product_invariable.offer IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_variation.const IS NOT NULL THEN product_invariable.variation = product_variation.const
                                            ELSE product_invariable.variation IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_modification.const IS NOT NULL THEN product_invariable.modification = product_modification.const
                                            ELSE product_invariable.modification IS NULL
                                        END
                                 LEFT JOIN product_variation_price product_variation_price ON product_variation_price.variation = product_variation.id AND product_variation_price.price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity.variation = product_variation.id LEFT JOIN product_category_modification category_modification ON category_modification.id = product_modification.category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price.modification = product_modification.id AND product_modification_price.price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity.modification = product_modification.id LEFT JOIN product_modification_images product_modification_image ON 
                product_modification_image.modification = product_modification.id AND
                product_modification_image.root = true
			 LEFT JOIN user_profile_discount project_profile_discount ON 
                        project_profile_discount.event = project_profile.event WHERE (COALESCE(
                NULLIF(product_modification_price.price, 0),
                NULLIF(product_variation_price.price, 0),
                NULLIF(product_offer_price.price, 0),
                NULLIF(product_price.price, 0),
                0
            ) > 0) AND (
            CASE
                WHEN product_modification_quantity.quantity IS NOT NULL THEN (product_modification_quantity.quantity - product_modification_quantity.reserve)
                WHEN product_variation_quantity.quantity IS NOT NULL THEN (product_variation_quantity.quantity - product_variation_quantity.reserve)
                WHEN product_offer_quantity.quantity IS NOT NULL THEN (product_offer_quantity.quantity - product_offer_quantity.reserve)
                WHEN product_price.quantity  IS NOT NULL THEN (product_price.quantity - product_price.reserve)
                ELSE 0
            END > 0
        ) GROUP BY product_price.currency, product_offer_price.currency, product_variation_price.currency, product_modification_price.currency, product.id, product.event, product_trans.name, product_info.url, product_info.sort, product_active.active, product_active.active_from, product_active.active_to, category_offer.card, category_offer.reference, category_variation.card, category_variation.reference, category_modification.card, category_modification.reference, product_modification_image.name, product_variation_image.name, product_offer_images.name, product_photo.name, product_modification_image.ext, product_variation_image.ext, product_offer_images.ext, product_photo.ext, product_modification_image.cdn, product_variation_image.cdn, product_offer_images.cdn, product_photo.cdn, category_info.url, category_trans.name, project_profile_discount.value ORDER BY product_info.sort DESC, SUM(product_modification_quantity.reserve) DESC, SUM(product_variation_quantity.reserve) DESC, SUM(product_offer_quantity.reserve) DESC, SUM(product_price.reserve) DESC, SUM(product_modification_quantity.quantity) DESC, SUM(product_variation_quantity.quantity) DESC, SUM(product_offer_quantity.quantity) DESC, SUM(product_price.quantity) DESC LIMIT 6
Parameters:
[
  BaksDev\Products\Category\Type\Id\CategoryProductUid {#1138
    __toString(): "01924385-2099-71c1-a793-c114a808e485"
  }
  "ru"
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
]
7 0.87 ms
SELECT t0.product AS product_1, t0.url AS url_2, t0.article AS article_3, t0.barcode AS barcode_4, t0.sort AS sort_5, t0.profile AS profile_6, t0.event AS event_7 FROM product_info t0 WHERE t0.url = ? LIMIT 1
Parameters:
[
  "westlake_z507_zupersnow"
]
8 79.33 ms
SELECT product.id, product.event, product_active.active, product_active.active_from, product_active.active_to, ? AS project_profile, JSON_AGG (DISTINCT product_profile.value) FILTER (WHERE product_profile.value IS NOT NULL) AS profiles, product_seo.title AS seo_title, product_seo.keywords AS seo_keywords, product_seo.description AS seo_description, product_trans.name AS product_name, product_desc.preview AS product_preview, product_desc.description AS product_description, product_info.url, category_offer.reference AS product_offer_reference, project_profile_discount.value AS project_discount, JSON_AGG
        			( DISTINCT

        					JSONB_BUILD_OBJECT
        					(

        						/* свойства для сортировки JSON */
        						'0', CONCAT(product_offer.value, product_variation.value, product_modification.value, product_modification_price.price),
        						
        						'offer_uid', product_offer.id,
        						'offer_value', product_offer.value, /* значение торгового предложения */
        						'offer_postfix', product_offer.postfix, /* постфикс торгового предложения */
        						'offer_reference', category_offer.reference, /* тип (field) торгового предложения */
        						'offer_name', category_offer_trans.name, /* Название свойства */

        						'variation_uid', product_variation.id,
        						'variation_value', product_variation.value, /* значение множественного варианта */
        						'variation_postfix', product_variation.postfix, /* постфикс множественного варианта */
        						'variation_reference', category_variation.reference, /* тип (field) множественного варианта */
        						'variation_name', category_variation_trans.name, /* Название свойства */

        						'modification_uid', product_modification.id,
        						'modification_value', product_modification.value, /* значение модификации */
        						'modification_postfix', product_modification.postfix, /* постфикс модификации */
        						'modification_reference', category_modification.reference, /* тип (field) модификации */
        						'modification_name', category_modification_trans.name, /* артикул модификации */

        						'article', CASE
        						   WHEN product_modification.article IS NOT NULL THEN product_modification.article
        						   WHEN product_variation.article IS NOT NULL THEN product_variation.article
        						   WHEN product_offer.article IS NOT NULL THEN product_offer.article
        						   WHEN product_info.article IS NOT NULL THEN product_info.article
        						   ELSE NULL
        						END,

                                /* Product Invariable */
        						'product_invariable_id', COALESCE(
        						    product_invariable.id
        						),
        						
        						/* Profile Discount */
        						'profile_discount', NULL,
        						
        						/* Project Discount */
        						'project_discount', project_profile_discount.value,
        						
        						/* Кастомная цена */
        						'promotion_price', NULL,
        						'promotion_active', NULL,
                        
        						'price', CASE
        						   WHEN product_modification_price.price IS NOT NULL AND product_modification_price.price > 0 THEN product_modification_price.price
        						   WHEN product_variation_price.price IS NOT NULL AND product_variation_price.price > 0 THEN product_variation_price.price
        						   WHEN product_offer_price.price IS NOT NULL AND product_offer_price.price > 0 THEN product_offer_price.price
        						   WHEN product_price.price IS NOT NULL AND product_price.price > 0 THEN product_price.price
        						   ELSE NULL
        						END,

                                'old_price', COALESCE(
                                    NULLIF(product_modification_price.old, 0),
                                    NULLIF(product_variation_price.old, 0),
                                    NULLIF(product_offer_price.old, 0),
                                    NULLIF(product_price.old, 0),
                                    0
                                ),

        						'currency', CASE
        						   WHEN product_modification_price.price IS NOT NULL AND product_modification_price.price > 0 THEN product_modification_price.currency
        						   WHEN product_variation_price.price IS NOT NULL AND product_variation_price.price > 0 THEN product_variation_price.currency
        						   WHEN product_offer_price.price IS NOT NULL AND product_offer_price.price > 0 THEN product_offer_price.currency
        						   WHEN product_price.price IS NOT NULL AND product_price.price > 0 THEN product_price.currency
        						   ELSE NULL
        						END,

        						'quantity', CASE
        						   WHEN product_modification_quantity.quantity IS NOT NULL THEN (product_modification_quantity.quantity - product_modification_quantity.reserve)
        						   WHEN product_variation_quantity.quantity IS NOT NULL THEN (product_variation_quantity.quantity - product_variation_quantity.reserve)
        						   WHEN product_offer_quantity.quantity IS NOT NULL THEN (product_offer_quantity.quantity - product_offer_quantity.reserve)
        						   WHEN product_price.quantity IS NOT NULL THEN (product_price.quantity - product_price.reserve)
        						   ELSE NULL
        						END
        					)
        			)
        			
        			    /* Только с ценой */
                        FILTER (WHERE 
                                    CASE
                                       WHEN product_modification_price.price IS NOT NULL AND product_modification_price.price > 0 THEN product_modification_price.price
                                       WHEN product_variation_price.price IS NOT NULL AND product_variation_price.price > 0 THEN product_variation_price.price
                                       WHEN product_offer_price.price IS NOT NULL AND product_offer_price.price > 0 THEN product_offer_price.price
                                       WHEN product_price.price IS NOT NULL AND product_price.price > 0 THEN product_price.price
                                    ELSE 0
                                END > 0)
                
        			AS product_offers, 
                JSON_AGG 
                    (DISTINCT
                        CASE
                            WHEN product_modification_image.ext IS NOT NULL THEN
                                JSONB_BUILD_OBJECT
                                    (
                                        'product_img_root', product_modification_image.root,
                                        'product_img', CONCAT ( '/upload/product_modification_images' , '/', product_modification_image.name),
                                        'product_img_ext', product_modification_image.ext,
                                        'product_img_cdn', product_modification_image.cdn
                                    )
                            WHEN product_variation_image.ext IS NOT NULL THEN
                                    JSONB_BUILD_OBJECT
                                    (
                                        'product_img_root', product_variation_image.root,
                                        'product_img', CONCAT ( '/upload/product_variation_images' , '/', product_variation_image.name),
                                        'product_img_ext', product_variation_image.ext,
                                        'product_img_cdn', product_variation_image.cdn
                                    ) 
                            WHEN product_offer_images.ext IS NOT NULL THEN
                                JSONB_BUILD_OBJECT
                                    (
                                        'product_img_root', product_offer_images.root,
                                        'product_img', CONCAT ( '/upload/product_offer_images' , '/', product_offer_images.name),
                                        'product_img_ext', product_offer_images.ext,
                                        'product_img_cdn', product_offer_images.cdn
                                    )
                            WHEN product_photo.ext IS NOT NULL THEN
                                JSONB_BUILD_OBJECT
                                    (
                                        'product_img_root', product_photo.root,
                                        'product_img', CONCAT ( '/upload/product_photo' , '/', product_photo.name),
                                        'product_img_ext', product_photo.ext,
                                        'product_img_cdn', product_photo.cdn
                                    )
                            ELSE NULL
                        END)
			AS product_images, category.id as category_id, category_trans.name AS category_name, category_info.url AS category_url, category_info.threshold AS category_threshold, category_cover.ext AS category_cover_ext, category_cover.cdn AS category_cover_cdn, 
			CASE
                 WHEN category_cover.name IS NOT NULL
                 THEN CONCAT ( '/upload/product_category_cover' , '/', category_cover.name)
                 ELSE NULL
			END AS category_cover_dir, JSON_AGG
        		( DISTINCT
        				JSONB_BUILD_OBJECT
        				(
        					'0', category_section_field.sort,

        					'field_name', category_section_field.name,
        					'field_public', category_section_field.public,
        					'field_card', category_section_field.card,
        					'field_type', category_section_field.type,
        					'field_trans', category_section_field_trans.name,
        					'field_value', product_property.value
        				)
        		)
            AS category_section_field FROM product INNER JOIN product_active product_active ON product_active.event = product.event LEFT JOIN product_profile product_profile ON product_profile.event = product.event LEFT JOIN product_seo product_seo ON product_seo.event = product.event AND product_seo.local = ? LEFT JOIN product_trans product_trans ON product_trans.event = product.event AND product_trans.local = ? LEFT JOIN product_description product_desc ON product_desc.event = product.event AND product_desc.device = ?  LEFT JOIN product_price product_price ON product_price.event = product.event LEFT JOIN product_info product_info ON product_info.product = product.id  LEFT JOIN product_offer product_offer ON product_offer.event = product.event INNER JOIN users_profile project_profile ON 
                        project_profile.id = ? INNER JOIN product_categories_product product_event_category ON product_event_category.event = product.event AND product_event_category.root = true LEFT JOIN product_category_offers category_offer ON category_offer.id = product_offer.category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price.offer = (SELECT tmp_product_offer_price.offer FROM product_offer_price tmp_product_offer_price WHERE tmp_product_offer_price.offer = product_offer.id ORDER BY tmp_product_offer_price.offer DESC LIMIT 1) LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity.offer = product_offer.id LEFT JOIN product_variation product_variation ON product_variation.offer = product_offer.id LEFT JOIN product_photo product_photo ON product_photo.event = product.event LEFT JOIN product_offer_images product_offer_images ON product_offer_images.offer = product_offer.id LEFT JOIN product_variation_images product_variation_image ON product_variation_image.variation = product_variation.id LEFT JOIN product_category_offers_trans category_offer_trans ON category_offer_trans.offer = category_offer.id AND category_offer_trans.local = ? LEFT JOIN product_category_variation category_variation ON category_variation.id = product_variation.category_variation LEFT JOIN product_variation_price product_variation_price ON product_variation_price.variation = (SELECT tmp_product_variation_price.variation FROM product_variation_price tmp_product_variation_price WHERE tmp_product_variation_price.variation = product_variation.id ORDER BY tmp_product_variation_price.variation DESC LIMIT 1) LEFT JOIN product_modification product_modification ON product_modification.variation = product_variation.id LEFT JOIN product_category_variation_trans category_variation_trans ON category_variation_trans.variation = category_variation.id AND category_variation_trans.local = ? LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity.variation = product_variation.id LEFT JOIN product_category_modification category_modification ON category_modification.id = product_modification.category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price.modification = (SELECT tmp_product_modification_price.modification FROM product_modification_price tmp_product_modification_price WHERE tmp_product_modification_price.modification = product_modification.id ORDER BY tmp_product_modification_price.modification DESC LIMIT 1) LEFT JOIN product_invariable product_invariable ON 
                    product_invariable.product = product.id AND
                    (
                        (product_offer.const IS NOT NULL AND product_invariable.offer = product_offer.const) OR
                        (product_offer.const IS NULL AND product_invariable.offer IS NULL)
                    )
                    AND
                    (
                        (product_variation.const IS NOT NULL AND product_invariable.variation = product_variation.const) OR
                        (product_variation.const IS NULL AND product_invariable.variation IS NULL)
                    )
                   AND
                   (
                        (product_modification.const IS NOT NULL AND product_invariable.modification = product_modification.const) OR
                        (product_modification.const IS NULL AND product_invariable.modification IS NULL)
                   )
             LEFT JOIN product_modification_images product_modification_image ON  product_modification_image.modification = product_modification.id LEFT JOIN product_category_modification_trans category_modification_trans ON category_modification_trans.modification = category_modification.id AND category_modification_trans.local = ? LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity.modification = product_modification.id LEFT JOIN user_profile_discount project_profile_discount ON 
                        project_profile_discount.event = project_profile.event INNER JOIN product_category category ON category.id = product_event_category.category LEFT JOIN product_category_trans category_trans ON category_trans.event = category.event AND category_trans.local = ? LEFT JOIN product_category_info category_info ON category_info.event = category.event LEFT JOIN product_category_section category_section ON category_section.event = category.event LEFT JOIN product_category_cover category_cover ON category_cover.event = category.event LEFT JOIN product_category_section_field category_section_field ON category_section_field.section = category_section.id LEFT JOIN product_category_section_field_trans category_section_field_trans ON category_section_field_trans.field = category_section_field.id AND category_section_field_trans.local = ? LEFT JOIN product_property product_property ON product_property.event = product.event AND product_property.field = category_section_field.const WHERE product.id = ? GROUP BY category.id, product.id, product.event, product_active.active, product_active.active_from, product_active.active_to, product_seo.title, product_seo.keywords, product_seo.description, product_trans.name, product_desc.preview, product_desc.description, product_info.url, category_offer.reference, project_profile_discount.value, category.id, category_trans.name, category_info.url, category_info.threshold, category_cover.ext, category_cover.cdn, category_cover.name
Parameters:
[
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
  "ru"
  "pc"
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
  "ru"
  "ru"
  "ru"
  "ru"
  "0191c806-5685-7317-af20-94d13dc4e9dc"
]
9 0.31 ms
"START TRANSACTION"
Parameters:
[]
10 1.41 ms
INSERT INTO messenger_core (body, headers, queue_name, created_at, available_at) VALUES(?, ?, ?, ?, ?) RETURNING id
Parameters:
[
  "O:36:\"Symfony\\Component\\Messenger\\Envelope\":2:{s:44:\"\0Symfony\\Component\\Messenger\\Envelope\0stamps\";a:2:{s:53:\"Symfony\\Component\\Messenger\\Stamp\\TransportNamesStamp\";a:1:{i:0;O:53:\"Symfony\\Component\\Messenger\\Stamp\\TransportNamesStamp\":1:{s:69:\"\0Symfony\\Component\\Messenger\\Stamp\\TransportNamesStamp\0transportNames\";a:1:{i:0;s:9:\"async-low\";}}}s:46:\"Symfony\\Component\\Messenger\\Stamp\\BusNameStamp\";a:1:{i:0;O:46:\"Symfony\\Component\\Messenger\\Stamp\\BusNameStamp\":1:{s:55:\"\0Symfony\\Component\\Messenger\\Stamp\\BusNameStamp\0busName\";s:21:\"messenger.bus.default\";}}}s:45:\"\0Symfony\\Component\\Messenger\\Envelope\0message\";O:54:\"BaksDev\\Core\\Doctrine\\DBAL\\Cache\\DBALCacheResetMessage\":2:{s:65:\"\0BaksDev\\Core\\Doctrine\\DBAL\\Cache\\DBALCacheResetMessage\0namespace\";s:16:\"products-product\";s:59:\"\0BaksDev\\Core\\Doctrine\\DBAL\\Cache\\DBALCacheResetMessage\0key\";s:40:\"4b9c3bf62d1044504a9347c1fb8e8baf3cbf0f07\";}}"
  "[]"
  "low"
  "2026-02-21 14:25:12"
  "2026-02-21 14:25:12"
]
11 0.30 ms
SELECT pg_notify(?, ?)
Parameters:
[
  "messenger_core"
  "low"
]
12 5.57 ms
"COMMIT"
Parameters:
[]
13 104.76 ms
SELECT review.event AS review_event, review_modify.mod_date as update, review_product.value AS review_product, product_trans.name AS product_name, review_status.value AS review_status, review_text.value AS review_text, review_user.value AS review_user, review_rating.value AS review_rating_value, profile_personal.username as profile_username, review_name.value AS review_name FROM product_review review INNER JOIN product_review_event review_event ON review.event = review_event.id INNER JOIN product_review_modify review_modify ON review_modify.event = review_event.id INNER JOIN product_review_product review_product ON review_product.event = review_event.id INNER JOIN product_review_status review_status ON review_status.event = review_event.id INNER JOIN product_review_text review_text ON review_text.event = review_event.id INNER JOIN product_review_user review_user ON review_user.event = review_event.id LEFT JOIN product_review_rating review_rating ON review_rating.event = review_event.id LEFT JOIN product_review_name review_name ON review_name.event = review_event.id INNER JOIN product product ON product.id = review_product.value AND product.id = ? INNER JOIN product_event product_event ON product_event.id = product.event INNER JOIN product_trans product_trans ON product_trans.event = product_event.id INNER JOIN users_profile_info profile_info ON profile_info.usr = review_user.value AND profile_info.active = true LEFT JOIN users_profile profile ON profile.id = profile_info.profile LEFT JOIN users_profile_personal profile_personal ON profile_personal.event = profile.event WHERE review_status.value = ? GROUP BY review.event, review_modify.mod_date, review_product.value, product_trans.name, review_status.value, review_text.value, review_user.value, review_rating.value, profile_personal.username, review_name.value, review.id ORDER BY review.id DESC LIMIT 24
Parameters:
[
  "0191c806-5685-7317-af20-94d13dc4e9dc"
  "active"
]
14 145.22 ms
SELECT product.id AS product_id, product.event AS product_event, product_trans.name AS product_name, product_info.url AS product_url, product_info.sort AS product_sort, product_active.active as product_active, product_active.active_from as product_active_from, product_active.active_to as product_active_to, category_offer.card AS category_offer_card , category_offer.reference AS product_offer_reference, category_variation.card AS category_variation_card, category_variation.reference as product_variation_reference, category_modification.card AS category_modification_card , category_modification.reference as product_modification_reference, JSON_AGG( DISTINCT product_invariable.id) AS invariable, 
                CASE
    
                    WHEN product_modification_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_modification_images' , '/', product_modification_image.name)
                    WHEN product_variation_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_variation_images' , '/', product_variation_image.name)
                    WHEN product_offer_images.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_offer_images' , '/', product_offer_images.name)
                    WHEN product_photo.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_photo' , '/', product_photo.name)
                    ELSE NULL
                   
                END AS product_image
            , 
            COALESCE(
                product_modification_image.ext,
                product_variation_image.ext,
                product_offer_images.ext,
                product_photo.ext
            ) AS product_image_ext, 
            COALESCE(
                product_modification_image.cdn,
                product_variation_image.cdn,
                product_offer_images.cdn,
                product_photo.cdn
            ) AS product_image_cdn, category_info.url AS category_url, category_trans.name AS category_name, 
            COALESCE(
                NULLIF(MIN(product_modification_price.price), 0),
                NULLIF(MIN(product_variation_price.price), 0),
                NULLIF(MIN(product_offer_price.price), 0),
                NULLIF(MIN(product_price.price), 0),
                0
            ) AS product_price
		, 
            CASE

			   WHEN MIN(product_modification_price.price) IS NOT NULL
			   THEN product_modification_price.currency

			   WHEN MIN(product_variation_price.price) IS NOT NULL
			   THEN product_variation_price.currency

			   WHEN MIN(product_offer_price.price) IS NOT NULL
			   THEN product_offer_price.currency

			   WHEN MIN(product_price.price) IS NOT NULL
			   THEN product_price.currency

			   ELSE NULL

			END AS product_currency
		, project_profile_discount.value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category.event = product.event AND product_event_category.category IN (?) LEFT JOIN product_trans product_trans ON product_trans.event = product.event AND product_trans.local = ? LEFT JOIN product_info product_info ON product_info.product = product.id LEFT JOIN product_active product_active ON product_active.event = product.event LEFT JOIN product_price product_price ON product_price.event = product.event AND product_price.price > 0 LEFT JOIN product_offer product_offer ON product_offer.event = product.event INNER JOIN users_profile project_profile ON 
                        project_profile.id = ? LEFT JOIN product_category category ON category.id = product_event_category.category LEFT JOIN product_category_info category_info ON category_info.event = category.event AND category_info.active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans.event = category.event AND category_trans.local = ? LEFT JOIN product_category_offers category_offer ON category_offer.id = product_offer.category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price.offer = product_offer.id AND product_offer_price.price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity.offer = product_offer.id LEFT JOIN product_variation product_variation ON product_variation.offer = product_offer.id LEFT JOIN product_variation_images product_variation_image ON 
                product_variation_image.variation = product_variation.id AND
                product_variation_image.root = true
			 LEFT JOIN product_offer_images product_offer_images ON 
			product_variation_image.name IS NULL AND
			product_offer_images.offer = product_offer.id AND
			product_offer_images.root = true
			 LEFT JOIN product_photo product_photo ON 
                product_offer_images.name IS NULL AND
                product_photo.event = product.event AND
                product_photo.root = true
			 LEFT JOIN product_category_variation category_variation ON category_variation.id = product_variation.category_variation LEFT JOIN product_modification product_modification ON product_modification.variation = product_variation.id LEFT JOIN product_invariable product_invariable ON 
                                    product_invariable.product = product.id
                                    AND
                                        CASE
                                            WHEN product_offer.const IS NOT NULL THEN product_invariable.offer = product_offer.const
                                            ELSE product_invariable.offer IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_variation.const IS NOT NULL THEN product_invariable.variation = product_variation.const
                                            ELSE product_invariable.variation IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_modification.const IS NOT NULL THEN product_invariable.modification = product_modification.const
                                            ELSE product_invariable.modification IS NULL
                                        END
                                 LEFT JOIN product_variation_price product_variation_price ON product_variation_price.variation = product_variation.id AND product_variation_price.price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity.variation = product_variation.id LEFT JOIN product_category_modification category_modification ON category_modification.id = product_modification.category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price.modification = product_modification.id AND product_modification_price.price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity.modification = product_modification.id LEFT JOIN product_modification_images product_modification_image ON 
                product_modification_image.modification = product_modification.id AND
                product_modification_image.root = true
			 LEFT JOIN user_profile_discount project_profile_discount ON 
                        project_profile_discount.event = project_profile.event WHERE (COALESCE(
                NULLIF(product_modification_price.price, 0),
                NULLIF(product_variation_price.price, 0),
                NULLIF(product_offer_price.price, 0),
                NULLIF(product_price.price, 0),
                0
            ) > 0) AND (
            CASE
                WHEN product_modification_quantity.quantity IS NOT NULL THEN (product_modification_quantity.quantity - product_modification_quantity.reserve)
                WHEN product_variation_quantity.quantity IS NOT NULL THEN (product_variation_quantity.quantity - product_variation_quantity.reserve)
                WHEN product_offer_quantity.quantity IS NOT NULL THEN (product_offer_quantity.quantity - product_offer_quantity.reserve)
                WHEN product_price.quantity  IS NOT NULL THEN (product_price.quantity - product_price.reserve)
                ELSE 0
            END > 0
        ) GROUP BY product_price.currency, product_offer_price.currency, product_variation_price.currency, product_modification_price.currency, product.id, product.event, product_trans.name, product_info.url, product_info.sort, product_active.active, product_active.active_from, product_active.active_to, category_offer.card, category_offer.reference, category_variation.card, category_variation.reference, category_modification.card, category_modification.reference, product_modification_image.name, product_variation_image.name, product_offer_images.name, product_photo.name, product_modification_image.ext, product_variation_image.ext, product_offer_images.ext, product_photo.ext, product_modification_image.cdn, product_variation_image.cdn, product_offer_images.cdn, product_photo.cdn, category_info.url, category_trans.name, project_profile_discount.value ORDER BY product_info.sort DESC, SUM(product_modification_quantity.reserve) DESC, SUM(product_variation_quantity.reserve) DESC, SUM(product_offer_quantity.reserve) DESC, SUM(product_price.reserve) DESC, SUM(product_modification_quantity.quantity) DESC, SUM(product_variation_quantity.quantity) DESC, SUM(product_offer_quantity.quantity) DESC, SUM(product_price.quantity) DESC LIMIT 6
Parameters:
[
  BaksDev\Products\Category\Type\Id\CategoryProductUid {#3130
    __toString(): "01876af0-ddfc-70c3-ab25-5f85f55a9907"
  }
  "ru"
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
]
15 98.86 ms
SELECT product.id AS product_id, product.event AS product_event, product_trans.name AS product_name, product_info.url AS product_url, product_info.sort AS product_sort, product_active.active as product_active, product_active.active_from as product_active_from, product_active.active_to as product_active_to, category_offer.card AS category_offer_card , category_offer.reference AS product_offer_reference, category_variation.card AS category_variation_card, category_variation.reference as product_variation_reference, category_modification.card AS category_modification_card , category_modification.reference as product_modification_reference, JSON_AGG( DISTINCT product_invariable.id) AS invariable, 
                CASE
    
                    WHEN product_modification_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_modification_images' , '/', product_modification_image.name)
                    WHEN product_variation_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_variation_images' , '/', product_variation_image.name)
                    WHEN product_offer_images.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_offer_images' , '/', product_offer_images.name)
                    WHEN product_photo.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_photo' , '/', product_photo.name)
                    ELSE NULL
                   
                END AS product_image
            , 
            COALESCE(
                product_modification_image.ext,
                product_variation_image.ext,
                product_offer_images.ext,
                product_photo.ext
            ) AS product_image_ext, 
            COALESCE(
                product_modification_image.cdn,
                product_variation_image.cdn,
                product_offer_images.cdn,
                product_photo.cdn
            ) AS product_image_cdn, category_info.url AS category_url, category_trans.name AS category_name, 
            COALESCE(
                NULLIF(MIN(product_modification_price.price), 0),
                NULLIF(MIN(product_variation_price.price), 0),
                NULLIF(MIN(product_offer_price.price), 0),
                NULLIF(MIN(product_price.price), 0),
                0
            ) AS product_price
		, 
            CASE

			   WHEN MIN(product_modification_price.price) IS NOT NULL
			   THEN product_modification_price.currency

			   WHEN MIN(product_variation_price.price) IS NOT NULL
			   THEN product_variation_price.currency

			   WHEN MIN(product_offer_price.price) IS NOT NULL
			   THEN product_offer_price.currency

			   WHEN MIN(product_price.price) IS NOT NULL
			   THEN product_price.currency

			   ELSE NULL

			END AS product_currency
		, project_profile_discount.value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category.event = product.event AND product_event_category.category IN (?) LEFT JOIN product_trans product_trans ON product_trans.event = product.event AND product_trans.local = ? LEFT JOIN product_info product_info ON product_info.product = product.id LEFT JOIN product_active product_active ON product_active.event = product.event LEFT JOIN product_price product_price ON product_price.event = product.event AND product_price.price > 0 LEFT JOIN product_offer product_offer ON product_offer.event = product.event INNER JOIN users_profile project_profile ON 
                        project_profile.id = ? LEFT JOIN product_category category ON category.id = product_event_category.category LEFT JOIN product_category_info category_info ON category_info.event = category.event AND category_info.active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans.event = category.event AND category_trans.local = ? LEFT JOIN product_category_offers category_offer ON category_offer.id = product_offer.category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price.offer = product_offer.id AND product_offer_price.price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity.offer = product_offer.id LEFT JOIN product_variation product_variation ON product_variation.offer = product_offer.id LEFT JOIN product_variation_images product_variation_image ON 
                product_variation_image.variation = product_variation.id AND
                product_variation_image.root = true
			 LEFT JOIN product_offer_images product_offer_images ON 
			product_variation_image.name IS NULL AND
			product_offer_images.offer = product_offer.id AND
			product_offer_images.root = true
			 LEFT JOIN product_photo product_photo ON 
                product_offer_images.name IS NULL AND
                product_photo.event = product.event AND
                product_photo.root = true
			 LEFT JOIN product_category_variation category_variation ON category_variation.id = product_variation.category_variation LEFT JOIN product_modification product_modification ON product_modification.variation = product_variation.id LEFT JOIN product_invariable product_invariable ON 
                                    product_invariable.product = product.id
                                    AND
                                        CASE
                                            WHEN product_offer.const IS NOT NULL THEN product_invariable.offer = product_offer.const
                                            ELSE product_invariable.offer IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_variation.const IS NOT NULL THEN product_invariable.variation = product_variation.const
                                            ELSE product_invariable.variation IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_modification.const IS NOT NULL THEN product_invariable.modification = product_modification.const
                                            ELSE product_invariable.modification IS NULL
                                        END
                                 LEFT JOIN product_variation_price product_variation_price ON product_variation_price.variation = product_variation.id AND product_variation_price.price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity.variation = product_variation.id LEFT JOIN product_category_modification category_modification ON category_modification.id = product_modification.category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price.modification = product_modification.id AND product_modification_price.price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity.modification = product_modification.id LEFT JOIN product_modification_images product_modification_image ON 
                product_modification_image.modification = product_modification.id AND
                product_modification_image.root = true
			 LEFT JOIN user_profile_discount project_profile_discount ON 
                        project_profile_discount.event = project_profile.event WHERE (COALESCE(
                NULLIF(product_modification_price.price, 0),
                NULLIF(product_variation_price.price, 0),
                NULLIF(product_offer_price.price, 0),
                NULLIF(product_price.price, 0),
                0
            ) > 0) AND (
            CASE
                WHEN product_modification_quantity.quantity IS NOT NULL THEN (product_modification_quantity.quantity - product_modification_quantity.reserve)
                WHEN product_variation_quantity.quantity IS NOT NULL THEN (product_variation_quantity.quantity - product_variation_quantity.reserve)
                WHEN product_offer_quantity.quantity IS NOT NULL THEN (product_offer_quantity.quantity - product_offer_quantity.reserve)
                WHEN product_price.quantity  IS NOT NULL THEN (product_price.quantity - product_price.reserve)
                ELSE 0
            END > 0
        ) GROUP BY product_price.currency, product_offer_price.currency, product_variation_price.currency, product_modification_price.currency, product.id, product.event, product_trans.name, product_info.url, product_info.sort, product_active.active, product_active.active_from, product_active.active_to, category_offer.card, category_offer.reference, category_variation.card, category_variation.reference, category_modification.card, category_modification.reference, product_modification_image.name, product_variation_image.name, product_offer_images.name, product_photo.name, product_modification_image.ext, product_variation_image.ext, product_offer_images.ext, product_photo.ext, product_modification_image.cdn, product_variation_image.cdn, product_offer_images.cdn, product_photo.cdn, category_info.url, category_trans.name, project_profile_discount.value ORDER BY product_info.sort DESC, SUM(product_modification_quantity.reserve) DESC, SUM(product_variation_quantity.reserve) DESC, SUM(product_offer_quantity.reserve) DESC, SUM(product_price.reserve) DESC, SUM(product_modification_quantity.quantity) DESC, SUM(product_variation_quantity.quantity) DESC, SUM(product_offer_quantity.quantity) DESC, SUM(product_price.quantity) DESC LIMIT 6
Parameters:
[
  BaksDev\Products\Category\Type\Id\CategoryProductUid {#3085
    __toString(): "018f4f55-53d4-7b35-bda7-fad6b852f2f6"
  }
  "ru"
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
]
16 89.37 ms
SELECT product.id AS product_id, product.event AS product_event, product_trans.name AS product_name, product_info.url AS product_url, product_info.sort AS product_sort, product_active.active as product_active, product_active.active_from as product_active_from, product_active.active_to as product_active_to, category_offer.card AS category_offer_card , category_offer.reference AS product_offer_reference, category_variation.card AS category_variation_card, category_variation.reference as product_variation_reference, category_modification.card AS category_modification_card , category_modification.reference as product_modification_reference, JSON_AGG( DISTINCT product_invariable.id) AS invariable, 
                CASE
    
                    WHEN product_modification_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_modification_images' , '/', product_modification_image.name)
                    WHEN product_variation_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_variation_images' , '/', product_variation_image.name)
                    WHEN product_offer_images.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_offer_images' , '/', product_offer_images.name)
                    WHEN product_photo.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_photo' , '/', product_photo.name)
                    ELSE NULL
                   
                END AS product_image
            , 
            COALESCE(
                product_modification_image.ext,
                product_variation_image.ext,
                product_offer_images.ext,
                product_photo.ext
            ) AS product_image_ext, 
            COALESCE(
                product_modification_image.cdn,
                product_variation_image.cdn,
                product_offer_images.cdn,
                product_photo.cdn
            ) AS product_image_cdn, category_info.url AS category_url, category_trans.name AS category_name, 
            COALESCE(
                NULLIF(MIN(product_modification_price.price), 0),
                NULLIF(MIN(product_variation_price.price), 0),
                NULLIF(MIN(product_offer_price.price), 0),
                NULLIF(MIN(product_price.price), 0),
                0
            ) AS product_price
		, 
            CASE

			   WHEN MIN(product_modification_price.price) IS NOT NULL
			   THEN product_modification_price.currency

			   WHEN MIN(product_variation_price.price) IS NOT NULL
			   THEN product_variation_price.currency

			   WHEN MIN(product_offer_price.price) IS NOT NULL
			   THEN product_offer_price.currency

			   WHEN MIN(product_price.price) IS NOT NULL
			   THEN product_price.currency

			   ELSE NULL

			END AS product_currency
		, project_profile_discount.value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category.event = product.event AND product_event_category.category IN (?) LEFT JOIN product_trans product_trans ON product_trans.event = product.event AND product_trans.local = ? LEFT JOIN product_info product_info ON product_info.product = product.id LEFT JOIN product_active product_active ON product_active.event = product.event LEFT JOIN product_price product_price ON product_price.event = product.event AND product_price.price > 0 LEFT JOIN product_offer product_offer ON product_offer.event = product.event INNER JOIN users_profile project_profile ON 
                        project_profile.id = ? LEFT JOIN product_category category ON category.id = product_event_category.category LEFT JOIN product_category_info category_info ON category_info.event = category.event AND category_info.active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans.event = category.event AND category_trans.local = ? LEFT JOIN product_category_offers category_offer ON category_offer.id = product_offer.category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price.offer = product_offer.id AND product_offer_price.price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity.offer = product_offer.id LEFT JOIN product_variation product_variation ON product_variation.offer = product_offer.id LEFT JOIN product_variation_images product_variation_image ON 
                product_variation_image.variation = product_variation.id AND
                product_variation_image.root = true
			 LEFT JOIN product_offer_images product_offer_images ON 
			product_variation_image.name IS NULL AND
			product_offer_images.offer = product_offer.id AND
			product_offer_images.root = true
			 LEFT JOIN product_photo product_photo ON 
                product_offer_images.name IS NULL AND
                product_photo.event = product.event AND
                product_photo.root = true
			 LEFT JOIN product_category_variation category_variation ON category_variation.id = product_variation.category_variation LEFT JOIN product_modification product_modification ON product_modification.variation = product_variation.id LEFT JOIN product_invariable product_invariable ON 
                                    product_invariable.product = product.id
                                    AND
                                        CASE
                                            WHEN product_offer.const IS NOT NULL THEN product_invariable.offer = product_offer.const
                                            ELSE product_invariable.offer IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_variation.const IS NOT NULL THEN product_invariable.variation = product_variation.const
                                            ELSE product_invariable.variation IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_modification.const IS NOT NULL THEN product_invariable.modification = product_modification.const
                                            ELSE product_invariable.modification IS NULL
                                        END
                                 LEFT JOIN product_variation_price product_variation_price ON product_variation_price.variation = product_variation.id AND product_variation_price.price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity.variation = product_variation.id LEFT JOIN product_category_modification category_modification ON category_modification.id = product_modification.category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price.modification = product_modification.id AND product_modification_price.price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity.modification = product_modification.id LEFT JOIN product_modification_images product_modification_image ON 
                product_modification_image.modification = product_modification.id AND
                product_modification_image.root = true
			 LEFT JOIN user_profile_discount project_profile_discount ON 
                        project_profile_discount.event = project_profile.event WHERE (COALESCE(
                NULLIF(product_modification_price.price, 0),
                NULLIF(product_variation_price.price, 0),
                NULLIF(product_offer_price.price, 0),
                NULLIF(product_price.price, 0),
                0
            ) > 0) AND (
            CASE
                WHEN product_modification_quantity.quantity IS NOT NULL THEN (product_modification_quantity.quantity - product_modification_quantity.reserve)
                WHEN product_variation_quantity.quantity IS NOT NULL THEN (product_variation_quantity.quantity - product_variation_quantity.reserve)
                WHEN product_offer_quantity.quantity IS NOT NULL THEN (product_offer_quantity.quantity - product_offer_quantity.reserve)
                WHEN product_price.quantity  IS NOT NULL THEN (product_price.quantity - product_price.reserve)
                ELSE 0
            END > 0
        ) GROUP BY product_price.currency, product_offer_price.currency, product_variation_price.currency, product_modification_price.currency, product.id, product.event, product_trans.name, product_info.url, product_info.sort, product_active.active, product_active.active_from, product_active.active_to, category_offer.card, category_offer.reference, category_variation.card, category_variation.reference, category_modification.card, category_modification.reference, product_modification_image.name, product_variation_image.name, product_offer_images.name, product_photo.name, product_modification_image.ext, product_variation_image.ext, product_offer_images.ext, product_photo.ext, product_modification_image.cdn, product_variation_image.cdn, product_offer_images.cdn, product_photo.cdn, category_info.url, category_trans.name, project_profile_discount.value ORDER BY product_info.sort DESC, SUM(product_modification_quantity.reserve) DESC, SUM(product_variation_quantity.reserve) DESC, SUM(product_offer_quantity.reserve) DESC, SUM(product_price.reserve) DESC, SUM(product_modification_quantity.quantity) DESC, SUM(product_variation_quantity.quantity) DESC, SUM(product_offer_quantity.quantity) DESC, SUM(product_price.quantity) DESC LIMIT 6
Parameters:
[
  BaksDev\Products\Category\Type\Id\CategoryProductUid {#3036
    __toString(): "01905ea6-805e-7a56-b53c-da41c19f9e38"
  }
  "ru"
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
]
17 88.32 ms
SELECT product.id AS product_id, product.event AS product_event, product_trans.name AS product_name, product_info.url AS product_url, product_info.sort AS product_sort, product_active.active as product_active, product_active.active_from as product_active_from, product_active.active_to as product_active_to, category_offer.card AS category_offer_card , category_offer.reference AS product_offer_reference, category_variation.card AS category_variation_card, category_variation.reference as product_variation_reference, category_modification.card AS category_modification_card , category_modification.reference as product_modification_reference, JSON_AGG( DISTINCT product_invariable.id) AS invariable, 
                CASE
    
                    WHEN product_modification_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_modification_images' , '/', product_modification_image.name)
                    WHEN product_variation_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_variation_images' , '/', product_variation_image.name)
                    WHEN product_offer_images.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_offer_images' , '/', product_offer_images.name)
                    WHEN product_photo.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_photo' , '/', product_photo.name)
                    ELSE NULL
                   
                END AS product_image
            , 
            COALESCE(
                product_modification_image.ext,
                product_variation_image.ext,
                product_offer_images.ext,
                product_photo.ext
            ) AS product_image_ext, 
            COALESCE(
                product_modification_image.cdn,
                product_variation_image.cdn,
                product_offer_images.cdn,
                product_photo.cdn
            ) AS product_image_cdn, category_info.url AS category_url, category_trans.name AS category_name, 
            COALESCE(
                NULLIF(MIN(product_modification_price.price), 0),
                NULLIF(MIN(product_variation_price.price), 0),
                NULLIF(MIN(product_offer_price.price), 0),
                NULLIF(MIN(product_price.price), 0),
                0
            ) AS product_price
		, 
            CASE

			   WHEN MIN(product_modification_price.price) IS NOT NULL
			   THEN product_modification_price.currency

			   WHEN MIN(product_variation_price.price) IS NOT NULL
			   THEN product_variation_price.currency

			   WHEN MIN(product_offer_price.price) IS NOT NULL
			   THEN product_offer_price.currency

			   WHEN MIN(product_price.price) IS NOT NULL
			   THEN product_price.currency

			   ELSE NULL

			END AS product_currency
		, project_profile_discount.value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category.event = product.event AND product_event_category.category IN (?) LEFT JOIN product_trans product_trans ON product_trans.event = product.event AND product_trans.local = ? LEFT JOIN product_info product_info ON product_info.product = product.id LEFT JOIN product_active product_active ON product_active.event = product.event LEFT JOIN product_price product_price ON product_price.event = product.event AND product_price.price > 0 LEFT JOIN product_offer product_offer ON product_offer.event = product.event INNER JOIN users_profile project_profile ON 
                        project_profile.id = ? LEFT JOIN product_category category ON category.id = product_event_category.category LEFT JOIN product_category_info category_info ON category_info.event = category.event AND category_info.active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans.event = category.event AND category_trans.local = ? LEFT JOIN product_category_offers category_offer ON category_offer.id = product_offer.category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price.offer = product_offer.id AND product_offer_price.price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity.offer = product_offer.id LEFT JOIN product_variation product_variation ON product_variation.offer = product_offer.id LEFT JOIN product_variation_images product_variation_image ON 
                product_variation_image.variation = product_variation.id AND
                product_variation_image.root = true
			 LEFT JOIN product_offer_images product_offer_images ON 
			product_variation_image.name IS NULL AND
			product_offer_images.offer = product_offer.id AND
			product_offer_images.root = true
			 LEFT JOIN product_photo product_photo ON 
                product_offer_images.name IS NULL AND
                product_photo.event = product.event AND
                product_photo.root = true
			 LEFT JOIN product_category_variation category_variation ON category_variation.id = product_variation.category_variation LEFT JOIN product_modification product_modification ON product_modification.variation = product_variation.id LEFT JOIN product_invariable product_invariable ON 
                                    product_invariable.product = product.id
                                    AND
                                        CASE
                                            WHEN product_offer.const IS NOT NULL THEN product_invariable.offer = product_offer.const
                                            ELSE product_invariable.offer IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_variation.const IS NOT NULL THEN product_invariable.variation = product_variation.const
                                            ELSE product_invariable.variation IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_modification.const IS NOT NULL THEN product_invariable.modification = product_modification.const
                                            ELSE product_invariable.modification IS NULL
                                        END
                                 LEFT JOIN product_variation_price product_variation_price ON product_variation_price.variation = product_variation.id AND product_variation_price.price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity.variation = product_variation.id LEFT JOIN product_category_modification category_modification ON category_modification.id = product_modification.category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price.modification = product_modification.id AND product_modification_price.price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity.modification = product_modification.id LEFT JOIN product_modification_images product_modification_image ON 
                product_modification_image.modification = product_modification.id AND
                product_modification_image.root = true
			 LEFT JOIN user_profile_discount project_profile_discount ON 
                        project_profile_discount.event = project_profile.event WHERE (COALESCE(
                NULLIF(product_modification_price.price, 0),
                NULLIF(product_variation_price.price, 0),
                NULLIF(product_offer_price.price, 0),
                NULLIF(product_price.price, 0),
                0
            ) > 0) AND (
            CASE
                WHEN product_modification_quantity.quantity IS NOT NULL THEN (product_modification_quantity.quantity - product_modification_quantity.reserve)
                WHEN product_variation_quantity.quantity IS NOT NULL THEN (product_variation_quantity.quantity - product_variation_quantity.reserve)
                WHEN product_offer_quantity.quantity IS NOT NULL THEN (product_offer_quantity.quantity - product_offer_quantity.reserve)
                WHEN product_price.quantity  IS NOT NULL THEN (product_price.quantity - product_price.reserve)
                ELSE 0
            END > 0
        ) GROUP BY product_price.currency, product_offer_price.currency, product_variation_price.currency, product_modification_price.currency, product.id, product.event, product_trans.name, product_info.url, product_info.sort, product_active.active, product_active.active_from, product_active.active_to, category_offer.card, category_offer.reference, category_variation.card, category_variation.reference, category_modification.card, category_modification.reference, product_modification_image.name, product_variation_image.name, product_offer_images.name, product_photo.name, product_modification_image.ext, product_variation_image.ext, product_offer_images.ext, product_photo.ext, product_modification_image.cdn, product_variation_image.cdn, product_offer_images.cdn, product_photo.cdn, category_info.url, category_trans.name, project_profile_discount.value ORDER BY product_info.sort DESC, SUM(product_modification_quantity.reserve) DESC, SUM(product_variation_quantity.reserve) DESC, SUM(product_offer_quantity.reserve) DESC, SUM(product_price.reserve) DESC, SUM(product_modification_quantity.quantity) DESC, SUM(product_variation_quantity.quantity) DESC, SUM(product_offer_quantity.quantity) DESC, SUM(product_price.quantity) DESC LIMIT 6
Parameters:
[
  BaksDev\Products\Category\Type\Id\CategoryProductUid {#3306
    __toString(): "0190ef25-1d90-79d0-8d42-1c2baf9319c2"
  }
  "ru"
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
]
18 87.37 ms
SELECT product.id AS product_id, product.event AS product_event, product_trans.name AS product_name, product_info.url AS product_url, product_info.sort AS product_sort, product_active.active as product_active, product_active.active_from as product_active_from, product_active.active_to as product_active_to, category_offer.card AS category_offer_card , category_offer.reference AS product_offer_reference, category_variation.card AS category_variation_card, category_variation.reference as product_variation_reference, category_modification.card AS category_modification_card , category_modification.reference as product_modification_reference, JSON_AGG( DISTINCT product_invariable.id) AS invariable, 
                CASE
    
                    WHEN product_modification_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_modification_images' , '/', product_modification_image.name)
                    WHEN product_variation_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_variation_images' , '/', product_variation_image.name)
                    WHEN product_offer_images.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_offer_images' , '/', product_offer_images.name)
                    WHEN product_photo.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_photo' , '/', product_photo.name)
                    ELSE NULL
                   
                END AS product_image
            , 
            COALESCE(
                product_modification_image.ext,
                product_variation_image.ext,
                product_offer_images.ext,
                product_photo.ext
            ) AS product_image_ext, 
            COALESCE(
                product_modification_image.cdn,
                product_variation_image.cdn,
                product_offer_images.cdn,
                product_photo.cdn
            ) AS product_image_cdn, category_info.url AS category_url, category_trans.name AS category_name, 
            COALESCE(
                NULLIF(MIN(product_modification_price.price), 0),
                NULLIF(MIN(product_variation_price.price), 0),
                NULLIF(MIN(product_offer_price.price), 0),
                NULLIF(MIN(product_price.price), 0),
                0
            ) AS product_price
		, 
            CASE

			   WHEN MIN(product_modification_price.price) IS NOT NULL
			   THEN product_modification_price.currency

			   WHEN MIN(product_variation_price.price) IS NOT NULL
			   THEN product_variation_price.currency

			   WHEN MIN(product_offer_price.price) IS NOT NULL
			   THEN product_offer_price.currency

			   WHEN MIN(product_price.price) IS NOT NULL
			   THEN product_price.currency

			   ELSE NULL

			END AS product_currency
		, project_profile_discount.value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category.event = product.event AND product_event_category.category IN (?) LEFT JOIN product_trans product_trans ON product_trans.event = product.event AND product_trans.local = ? LEFT JOIN product_info product_info ON product_info.product = product.id LEFT JOIN product_active product_active ON product_active.event = product.event LEFT JOIN product_price product_price ON product_price.event = product.event AND product_price.price > 0 LEFT JOIN product_offer product_offer ON product_offer.event = product.event INNER JOIN users_profile project_profile ON 
                        project_profile.id = ? LEFT JOIN product_category category ON category.id = product_event_category.category LEFT JOIN product_category_info category_info ON category_info.event = category.event AND category_info.active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans.event = category.event AND category_trans.local = ? LEFT JOIN product_category_offers category_offer ON category_offer.id = product_offer.category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price.offer = product_offer.id AND product_offer_price.price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity.offer = product_offer.id LEFT JOIN product_variation product_variation ON product_variation.offer = product_offer.id LEFT JOIN product_variation_images product_variation_image ON 
                product_variation_image.variation = product_variation.id AND
                product_variation_image.root = true
			 LEFT JOIN product_offer_images product_offer_images ON 
			product_variation_image.name IS NULL AND
			product_offer_images.offer = product_offer.id AND
			product_offer_images.root = true
			 LEFT JOIN product_photo product_photo ON 
                product_offer_images.name IS NULL AND
                product_photo.event = product.event AND
                product_photo.root = true
			 LEFT JOIN product_category_variation category_variation ON category_variation.id = product_variation.category_variation LEFT JOIN product_modification product_modification ON product_modification.variation = product_variation.id LEFT JOIN product_invariable product_invariable ON 
                                    product_invariable.product = product.id
                                    AND
                                        CASE
                                            WHEN product_offer.const IS NOT NULL THEN product_invariable.offer = product_offer.const
                                            ELSE product_invariable.offer IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_variation.const IS NOT NULL THEN product_invariable.variation = product_variation.const
                                            ELSE product_invariable.variation IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_modification.const IS NOT NULL THEN product_invariable.modification = product_modification.const
                                            ELSE product_invariable.modification IS NULL
                                        END
                                 LEFT JOIN product_variation_price product_variation_price ON product_variation_price.variation = product_variation.id AND product_variation_price.price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity.variation = product_variation.id LEFT JOIN product_category_modification category_modification ON category_modification.id = product_modification.category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price.modification = product_modification.id AND product_modification_price.price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity.modification = product_modification.id LEFT JOIN product_modification_images product_modification_image ON 
                product_modification_image.modification = product_modification.id AND
                product_modification_image.root = true
			 LEFT JOIN user_profile_discount project_profile_discount ON 
                        project_profile_discount.event = project_profile.event WHERE (COALESCE(
                NULLIF(product_modification_price.price, 0),
                NULLIF(product_variation_price.price, 0),
                NULLIF(product_offer_price.price, 0),
                NULLIF(product_price.price, 0),
                0
            ) > 0) AND (
            CASE
                WHEN product_modification_quantity.quantity IS NOT NULL THEN (product_modification_quantity.quantity - product_modification_quantity.reserve)
                WHEN product_variation_quantity.quantity IS NOT NULL THEN (product_variation_quantity.quantity - product_variation_quantity.reserve)
                WHEN product_offer_quantity.quantity IS NOT NULL THEN (product_offer_quantity.quantity - product_offer_quantity.reserve)
                WHEN product_price.quantity  IS NOT NULL THEN (product_price.quantity - product_price.reserve)
                ELSE 0
            END > 0
        ) GROUP BY product_price.currency, product_offer_price.currency, product_variation_price.currency, product_modification_price.currency, product.id, product.event, product_trans.name, product_info.url, product_info.sort, product_active.active, product_active.active_from, product_active.active_to, category_offer.card, category_offer.reference, category_variation.card, category_variation.reference, category_modification.card, category_modification.reference, product_modification_image.name, product_variation_image.name, product_offer_images.name, product_photo.name, product_modification_image.ext, product_variation_image.ext, product_offer_images.ext, product_photo.ext, product_modification_image.cdn, product_variation_image.cdn, product_offer_images.cdn, product_photo.cdn, category_info.url, category_trans.name, project_profile_discount.value ORDER BY product_info.sort DESC, SUM(product_modification_quantity.reserve) DESC, SUM(product_variation_quantity.reserve) DESC, SUM(product_offer_quantity.reserve) DESC, SUM(product_price.reserve) DESC, SUM(product_modification_quantity.quantity) DESC, SUM(product_variation_quantity.quantity) DESC, SUM(product_offer_quantity.quantity) DESC, SUM(product_price.quantity) DESC LIMIT 6
Parameters:
[
  BaksDev\Products\Category\Type\Id\CategoryProductUid {#3354
    __toString(): "0190ef2a-66cd-70ea-b793-2eb962175a4c"
  }
  "ru"
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
]
19 87.51 ms
SELECT product.id AS product_id, product.event AS product_event, product_trans.name AS product_name, product_info.url AS product_url, product_info.sort AS product_sort, product_active.active as product_active, product_active.active_from as product_active_from, product_active.active_to as product_active_to, category_offer.card AS category_offer_card , category_offer.reference AS product_offer_reference, category_variation.card AS category_variation_card, category_variation.reference as product_variation_reference, category_modification.card AS category_modification_card , category_modification.reference as product_modification_reference, JSON_AGG( DISTINCT product_invariable.id) AS invariable, 
                CASE
    
                    WHEN product_modification_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_modification_images' , '/', product_modification_image.name)
                    WHEN product_variation_image.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_variation_images' , '/', product_variation_image.name)
                    WHEN product_offer_images.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_offer_images' , '/', product_offer_images.name)
                    WHEN product_photo.name IS NOT NULL THEN
                        CONCAT ( '/upload/product_photo' , '/', product_photo.name)
                    ELSE NULL
                   
                END AS product_image
            , 
            COALESCE(
                product_modification_image.ext,
                product_variation_image.ext,
                product_offer_images.ext,
                product_photo.ext
            ) AS product_image_ext, 
            COALESCE(
                product_modification_image.cdn,
                product_variation_image.cdn,
                product_offer_images.cdn,
                product_photo.cdn
            ) AS product_image_cdn, category_info.url AS category_url, category_trans.name AS category_name, 
            COALESCE(
                NULLIF(MIN(product_modification_price.price), 0),
                NULLIF(MIN(product_variation_price.price), 0),
                NULLIF(MIN(product_offer_price.price), 0),
                NULLIF(MIN(product_price.price), 0),
                0
            ) AS product_price
		, 
            CASE

			   WHEN MIN(product_modification_price.price) IS NOT NULL
			   THEN product_modification_price.currency

			   WHEN MIN(product_variation_price.price) IS NOT NULL
			   THEN product_variation_price.currency

			   WHEN MIN(product_offer_price.price) IS NOT NULL
			   THEN product_offer_price.currency

			   WHEN MIN(product_price.price) IS NOT NULL
			   THEN product_price.currency

			   ELSE NULL

			END AS product_currency
		, project_profile_discount.value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category.event = product.event AND product_event_category.category IN (?) LEFT JOIN product_trans product_trans ON product_trans.event = product.event AND product_trans.local = ? LEFT JOIN product_info product_info ON product_info.product = product.id LEFT JOIN product_active product_active ON product_active.event = product.event LEFT JOIN product_price product_price ON product_price.event = product.event AND product_price.price > 0 LEFT JOIN product_offer product_offer ON product_offer.event = product.event INNER JOIN users_profile project_profile ON 
                        project_profile.id = ? LEFT JOIN product_category category ON category.id = product_event_category.category LEFT JOIN product_category_info category_info ON category_info.event = category.event AND category_info.active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans.event = category.event AND category_trans.local = ? LEFT JOIN product_category_offers category_offer ON category_offer.id = product_offer.category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price.offer = product_offer.id AND product_offer_price.price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity.offer = product_offer.id LEFT JOIN product_variation product_variation ON product_variation.offer = product_offer.id LEFT JOIN product_variation_images product_variation_image ON 
                product_variation_image.variation = product_variation.id AND
                product_variation_image.root = true
			 LEFT JOIN product_offer_images product_offer_images ON 
			product_variation_image.name IS NULL AND
			product_offer_images.offer = product_offer.id AND
			product_offer_images.root = true
			 LEFT JOIN product_photo product_photo ON 
                product_offer_images.name IS NULL AND
                product_photo.event = product.event AND
                product_photo.root = true
			 LEFT JOIN product_category_variation category_variation ON category_variation.id = product_variation.category_variation LEFT JOIN product_modification product_modification ON product_modification.variation = product_variation.id LEFT JOIN product_invariable product_invariable ON 
                                    product_invariable.product = product.id
                                    AND
                                        CASE
                                            WHEN product_offer.const IS NOT NULL THEN product_invariable.offer = product_offer.const
                                            ELSE product_invariable.offer IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_variation.const IS NOT NULL THEN product_invariable.variation = product_variation.const
                                            ELSE product_invariable.variation IS NULL
                                        END
                                    AND
                                        CASE
                                            WHEN product_modification.const IS NOT NULL THEN product_invariable.modification = product_modification.const
                                            ELSE product_invariable.modification IS NULL
                                        END
                                 LEFT JOIN product_variation_price product_variation_price ON product_variation_price.variation = product_variation.id AND product_variation_price.price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity.variation = product_variation.id LEFT JOIN product_category_modification category_modification ON category_modification.id = product_modification.category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price.modification = product_modification.id AND product_modification_price.price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity.modification = product_modification.id LEFT JOIN product_modification_images product_modification_image ON 
                product_modification_image.modification = product_modification.id AND
                product_modification_image.root = true
			 LEFT JOIN user_profile_discount project_profile_discount ON 
                        project_profile_discount.event = project_profile.event WHERE (COALESCE(
                NULLIF(product_modification_price.price, 0),
                NULLIF(product_variation_price.price, 0),
                NULLIF(product_offer_price.price, 0),
                NULLIF(product_price.price, 0),
                0
            ) > 0) AND (
            CASE
                WHEN product_modification_quantity.quantity IS NOT NULL THEN (product_modification_quantity.quantity - product_modification_quantity.reserve)
                WHEN product_variation_quantity.quantity IS NOT NULL THEN (product_variation_quantity.quantity - product_variation_quantity.reserve)
                WHEN product_offer_quantity.quantity IS NOT NULL THEN (product_offer_quantity.quantity - product_offer_quantity.reserve)
                WHEN product_price.quantity  IS NOT NULL THEN (product_price.quantity - product_price.reserve)
                ELSE 0
            END > 0
        ) GROUP BY product_price.currency, product_offer_price.currency, product_variation_price.currency, product_modification_price.currency, product.id, product.event, product_trans.name, product_info.url, product_info.sort, product_active.active, product_active.active_from, product_active.active_to, category_offer.card, category_offer.reference, category_variation.card, category_variation.reference, category_modification.card, category_modification.reference, product_modification_image.name, product_variation_image.name, product_offer_images.name, product_photo.name, product_modification_image.ext, product_variation_image.ext, product_offer_images.ext, product_photo.ext, product_modification_image.cdn, product_variation_image.cdn, product_offer_images.cdn, product_photo.cdn, category_info.url, category_trans.name, project_profile_discount.value ORDER BY product_info.sort DESC, SUM(product_modification_quantity.reserve) DESC, SUM(product_variation_quantity.reserve) DESC, SUM(product_offer_quantity.reserve) DESC, SUM(product_price.reserve) DESC, SUM(product_modification_quantity.quantity) DESC, SUM(product_variation_quantity.quantity) DESC, SUM(product_offer_quantity.quantity) DESC, SUM(product_price.quantity) DESC LIMIT 6
Parameters:
[
  BaksDev\Products\Category\Type\Id\CategoryProductUid {#3346
    __toString(): "01924385-2099-71c1-a793-c114a808e485"
  }
  "ru"
  "01982ecf-0a6a-79e5-967b-4992d1b836bb"
  "ru"
]
20 0.66 ms
SELECT CURRENT_DATABASE()
Parameters:
[]
21 5.23 ms
SELECT quote_ident(table_name) AS table_name,
       table_schema AS schema_name
FROM information_schema.tables
WHERE table_catalog = ?
  AND table_schema NOT LIKE 'pg\_%'
  AND table_schema != 'information_schema'
  AND table_name != 'geometry_columns'
  AND table_name != 'spatial_ref_sys'
  AND table_type = 'BASE TABLE'
ORDER BY
  quote_ident(table_name)
Parameters:
[
  "tires"
]
22 0.40 ms
SELECT current_schema()
Parameters:
[]
23 0.31 ms
SELECT CURRENT_DATABASE()
Parameters:
[]
24 3.06 ms
SELECT quote_ident(table_name) AS table_name,
       table_schema AS schema_name
FROM information_schema.tables
WHERE table_catalog = ?
  AND table_schema NOT LIKE 'pg\_%'
  AND table_schema != 'information_schema'
  AND table_name != 'geometry_columns'
  AND table_name != 'spatial_ref_sys'
  AND table_type = 'BASE TABLE'
ORDER BY
  quote_ident(table_name)
Parameters:
[
  "tires"
]
25 12.62 ms
SELECT n.nspname,
       c.relname,
       a.attname,
       t.typname,
       format_type(a.atttypid, a.atttypmod),
       bt.typname,
       format_type(bt.oid, t.typtypmod),
       a.attnotnull,
       a.attidentity,
       (    SELECT
        CASE
            WHEN a.attgenerated = 's' THEN NULL
            ELSE pg_get_expr(adbin, adrelid)
        END
     FROM pg_attrdef
     WHERE c.oid = pg_attrdef.adrelid
        AND pg_attrdef.adnum=a.attnum),
       dsc.description,
       CASE
           WHEN coll.collprovider = 'c'
               THEN coll.collcollate
           WHEN coll.collprovider = 'd'
               THEN NULL
           ELSE coll.collname
           END
FROM pg_attribute a
         JOIN pg_class c
              ON c.oid = a.attrelid
         JOIN pg_namespace n
              ON n.oid = c.relnamespace
         JOIN pg_type t
              ON t.oid = a.atttypid
         LEFT JOIN pg_type bt
                   ON t.typtype = 'd'
                       AND bt.oid = t.typbasetype
         LEFT JOIN pg_collation coll
                   ON coll.oid = a.attcollation
         LEFT JOIN pg_depend dep
                   ON dep.objid = c.oid
                       AND dep.deptype = 'e'
                       AND dep.classid = (SELECT oid FROM pg_class WHERE relname = 'pg_class')
         LEFT JOIN pg_description dsc
                   ON dsc.objoid = c.oid AND dsc.objsubid = a.attnum
         LEFT JOIN pg_inherits i
                   ON i.inhrelid = c.oid
         LEFT JOIN pg_class p
                   ON i.inhparent = p.oid
                       AND p.relkind = 'p'
WHERE n.nspname = ? AND c.relname = ? AND n.nspname NOT LIKE 'pg\_%' AND n.nspname != 'information_schema' AND c.relkind IN ('r', 'p') AND c.relname NOT IN ('geometry_columns', 'spatial_ref_sys')
  AND a.attnum > 0
  AND dep.refobjid IS NULL
  -- exclude partitions (tables that inherit from partitioned tables)
  AND p.oid IS NULL
ORDER BY n.nspname,
         c.relname,
         a.attnum
Parameters:
[
  "public"
  "doctrine_migration_versions"
]
26 1.08 ms
SELECT n.nspname,
       c.relname,
       CASE c.relpersistence WHEN 'u' THEN true ELSE false END,
       obj_description(c.oid, 'pg_class')
FROM pg_class c
         INNER JOIN pg_namespace n
                    ON n.oid = c.relnamespace
WHERE n.nspname = ? AND c.relname = ? AND n.nspname NOT LIKE 'pg\_%' AND n.nspname != 'information_schema' AND c.relkind IN ('r', 'p') AND c.relname NOT IN ('geometry_columns', 'spatial_ref_sys')
Parameters:
[
  "public"
  "doctrine_migration_versions"
]
27 4.17 ms
SELECT n.nspname,
       c.relname,
       ct.conname,
       a.attname
FROM pg_namespace n
         INNER JOIN pg_class c
                    ON c.relnamespace = n.oid
         INNER JOIN pg_constraint ct
                    ON ct.conrelid = c.oid
         INNER JOIN pg_index i
                    ON i.indrelid = c.oid
                        AND i.indexrelid = ct.conindid
         INNER JOIN LATERAL unnest(i.indkey) WITH ORDINALITY AS keys(attnum, ord)
                    ON true
         INNER JOIN
     pg_attribute a
     ON a.attrelid = c.oid
         AND a.attnum = keys.attnum
WHERE n.nspname = ? AND c.relname = ? AND n.nspname NOT LIKE 'pg\_%' AND n.nspname != 'information_schema' AND c.relkind IN ('r', 'p') AND c.relname NOT IN ('geometry_columns', 'spatial_ref_sys')
  AND ct.contype = 'p'
ORDER BY n.nspname,
         c.relname,
         ct.conname,
         keys.ord
Parameters:
[
  "public"
  "doctrine_migration_versions"
]
28 2.29 ms
SELECT n.nspname,
       c.relname,
       ic.relname,
       i.indisunique,
       pg_get_expr(indpred, indrelid),
       attname
FROM pg_index i
         JOIN pg_class AS c ON c.oid = i.indrelid
         JOIN pg_namespace n ON n.oid = c.relnamespace
         JOIN pg_class AS ic ON ic.oid = i.indexrelid
         JOIN LATERAL unnest(i.indkey) WITH ORDINALITY AS keys(attnum, ord)
              ON TRUE
         JOIN pg_attribute a
              ON a.attrelid = c.oid
                  AND a.attnum = keys.attnum
WHERE n.nspname = ? AND c.relname = ? AND n.nspname NOT LIKE 'pg\_%' AND n.nspname != 'information_schema' AND c.relkind IN ('r', 'p') AND c.relname NOT IN ('geometry_columns', 'spatial_ref_sys')
  AND i.indisprimary = false
ORDER BY n.nspname,
         c.relname,
         ic.relname,
         keys.ord
Parameters:
[
  "public"
  "doctrine_migration_versions"
]
29 4.89 ms
SELECT pkn.nspname,
           pkc.relname,
           r.conname,
           fkn.nspname,
           fkc.relname,
           r.confupdtype,
           r.confdeltype,
           r.condeferrable,
           r.condeferred,
           pka.attname,
           fka.attname
    FROM pg_constraint r
             JOIN pg_class fkc
                  ON fkc.oid = r.confrelid
             JOIN pg_namespace fkn
                  ON fkn.oid = fkc.relnamespace
             JOIN unnest(r.confkey) WITH ORDINALITY AS fk_attnum(attnum, ord)
                  ON TRUE
             JOIN pg_attribute fka
                  ON fka.attrelid = fkc.oid
                      AND fka.attnum = fk_attnum.attnum
             JOIN pg_class pkc
                  ON pkc.oid = r.conrelid
             JOIN pg_namespace pkn
                  ON pkn.oid = pkc.relnamespace
             JOIN unnest(r.conkey) WITH ORDINALITY AS pk_attnum(attnum, ord)
                  ON pk_attnum.ord = fk_attnum.ord
             JOIN pg_attribute pka
                  ON pka.attrelid = pkc.oid
                      AND pka.attnum = pk_attnum.attnum
    WHERE pkn.nspname = ? AND pkc.relname = ? AND pkn.nspname NOT LIKE 'pg\_%' AND pkn.nspname != 'information_schema' AND pkc.relkind IN ('r', 'p') AND pkc.relname NOT IN ('geometry_columns', 'spatial_ref_sys')
      AND r.contype = 'f'
    ORDER BY pkn.nspname,
             pkc.relname,
             r.conname
Parameters:
[
  "public"
  "doctrine_migration_versions"
]
30 0.69 ms
SELECT * FROM doctrine_migration_versions
Parameters:
[]
31 0.34 ms
SELECT CURRENT_DATABASE()
Parameters:
[]

Database Connections

Name Service
default doctrine.dbal.default_connection

Entity Managers

Name Service
default doctrine.orm.default_entity_manager

Second Level Cache

Second Level Cache is not enabled.

Managed Entities

default entity manager

Class Amount of managed objects
BaksDev\Products\Product\Entity\Info\ProductInfo 1
BaksDev\Products\Product\Entity\Event\ProductEvent 1