<?php
namespace front\controls;
use shop\Product;

class ShopProduct
{
  static public function lazy_loading_products()
  {
    global $lang_id;

    $output = '';
    $products_ids = \front\factory\ShopCategory::products_id( \Shared\Helpers\Helpers::get( 'category_id' ), \front\factory\ShopCategory::get_category_sort( (int)\Shared\Helpers\Helpers::get( 'category_id' ) ), $lang_id, 8, \Shared\Helpers\Helpers::get( 'offset' ) );

    if ( is_array( $products_ids ) ): foreach ( $products_ids as $product_id ):
      $output .= \Shared\Tpl\Tpl::view('shop-product/product-mini', [
        'product' => Product::getFromCache( $product_id, $lang_id )
      ] );
      endforeach;
    endif;

    echo json_encode( [ 'html' => $output ] );
    exit;
  }

  public static function warehouse_message()
  {
    global $lang_id;

    $values = json_decode( \Shared\Helpers\Helpers::get( 'values' ), true );

    foreach( $values as $key => $val )
    {
      if ( $key != 'product-id' and $key != 'quantity' )
        $attributes[] = $val;
    }

    $result = \shop\Product::getWarehouseMessage( $values['product-id'], $attributes, $lang_id );
    echo json_encode( $result );
    exit;
  }

  // wyświetlenie atrybutów w widoku produktu
  static public function draw_product_attributes()
  {
    global $mdb, $lang_id;

    $combination = '';

    $selected_values = \Shared\Helpers\Helpers::get( 'selected_values' );
    foreach ( $selected_values as $value ) {
      $combination .= $value;
      if ( $value != end( $selected_values ) )
        $combination .= '|';
    }

    $product_id = \Shared\Helpers\Helpers::get( 'product_id' );
    $product = Product::getFromCache( $product_id, $lang_id );
    $product_data = $product -> getProductDataBySelectedAttributes( $combination );

    echo json_encode( [ 'product_data' => $product_data ] );
    exit;
  }
}
