<?php
final class DModelskyhubskyproduto extends Model
{

  public function addSkyhubPlatforms($product_key_id, $tipo_produto, $data = array()){
    $this->db->query("DELETE FROM oc_skyhub_platforms WHERE product_key_id = ".$product_key_id);

    $sqlInsert = Ftr_sql::generateInsert('oc_skyhub_platforms',
      ['product_key_id', 'tipo_produto', 'plataforma', 'status']);

    foreach ($data as  $value){
      $dataInsert = array();
      $dataInsert[] = $product_key_id;
      $dataInsert[] = $tipo_produto;
      $dataInsert[] = $value['platform'];
      $dataInsert[] = TypeSkyHubAssociationStatus::getConstFromNickValue($value['status']);
      $this->db->executeSql($sqlInsert, $dataInsert);
    }

  }

  public function getSkyhubPlatforms($product_key_id, $tipo_produto){
    $query = $this->db->query("SELECT * FROM oc_skyhub_platforms WHERE product_key_id = ".$product_key_id." and tipo_produto = ".$tipo_produto);

    return $query->rows;
  }

  public function hasSkyhubInfos($product_key_id, $type_product){
    $sql = "select product_key_id from oc_skyhub_infos where product_key_id = $product_key_id and tipo_produto = $type_product";
    $query = $this->db->query($sql);
    return ($query->num_rows) == true;
  }

  public function updateProductSkyData($data, $product_id, $type_product){
    if($this->hasSkyhubInfos($product_id, $type_product)){
      $this->db->query( "UPDATE oc_skyhub_infos SET "
        . " origem_produto = '" . $this->db->escape($data['skyhuborigem']) . "',"
        . " garantia = '" . $this->db->escape($data['skyhubwarranty']) . "', "
        . " parcelamento_maximo = '" . $this->db->escape($data['skyhubparcelamento']) . "'"
        . " WHERE product_key_id = '" . (int)$product_id . "' and tipo_produto = " . $type_product);
    }else{
      $sql = "insert into oc_skyhub_infos set "
        . " origem_produto = '" . $this->db->escape($data['skyhuborigem']) . "',"
        . " garantia = '" . $this->db->escape($data['skyhubwarranty']) . "',"
        . " parcelamento_maximo = '" . $this->db->escape($data['skyhubparcelamento']) . "',"
        . " product_key_id = '" . (int)$product_id . "',"
        . " tipo_produto = " . $type_product;
      $this->db->query($sql);
    }

  }

  public function getAdtionalFields($product, $type_product){
    $param = array();

    if(isset($product['origem_produto']) && ($product['origem_produto']!='')){
      $param['origem_produto'] = $product['origem_produto'];
    }

    if(!empty($product['garantia'])){
      $param['garantia'] = $product['garantia'];
    }

    if(!empty($product['parcelamento_maximo'])){
      $param['parcelamento_maximo'] = $product['parcelamento_maximo'];
    }

    if(!empty($product['classificacao'])){
      $param['nbm'] = $product['classificacao'];
    }

    if (!empty($product['quantity_unit']) && !is_null($product['quantity_unit'])){
        $param['quantity_unit'] = (int)$product['quantity_unit'];
    }

    return $param;
  }


}