<?php
if(!isset($CRON_GUVENLIK)){
    echo "cron dosyasını manuel çalıştıramazsınız";
    exit;
}


require_once "mp-content/init.php";
$services = $db->from('services')->join('apis', '%s.api_id = %s.api_id')->all();

$there_change = 0;

$apiler = $db->from('apis')->all();
$apiservis = array();
$apibalance = array();

foreach ($apiler as $api) {
  $apiservis[$api['api_id']] = services($api['api_url'], $api['api_key']);
  $apibalance[$api['api_id']] = api_balance($api['api_url'], $api['api_key']);
}

foreach ($services as $service) {

  $there[$service['service_id']] = 0;

  $apiServices  = $apiservis[$service['api_id']];

  $balanceQ     = $apibalance[$service['api_id']];

  $balance     = json_decode(json_encode($balanceQ), true);

  $apiServices  = json_decode(json_encode($apiServices), true);

  foreach ($apiServices as $apiService) {

    if ($service['api_service'] == $apiService['service']) {



      $there[$service['service_id']] = 1;

      $detail['min'] = $apiService['min'];

      $detail['max'] = $apiService['max'];

      $detail['rate'] = $apiService['rate'];

      $detail['currency'] = $balance['currency'];

      $detail = json_encode($detail);

      $extras = json_decode($service["api_detail"], true);

      if ($apiService['rate'] != $extras['rate']) {

        $extra  = ["old" => $extras["rate"], "new" => $apiService["rate"]];


        $insert = $db->insert('api_report')
          ->set(array(

            'report_service_id' => $service["service_id"],

            'report_detail' => "#" . $service["service_id"] . " numaralı servisin fiyatı değiştirilmiş. Eski Sağlayıcı Fiyatı: " . $extra['old'] . " - Yeni Sağlayıcı Fiyatı: " . $extra['new'],

            'report_extra' => json_encode($extra)

          ));

        if ($settings['discord_apiNotify_url']) {

          discord_api(1, "#" . $service["service_id"] . " numaralı servisin fiyatı değiştirilmiş. Eski Sağlayıcı Fiyatı: " . $extra['old'] . " - Yeni Sağlayıcı Fiyatı: " . $extra['new']);
        }

        if ($insert) {
          $there_change = $there_change + 1;
        }
      }

      if ($apiService['min'] != $extras['min']) {

        $extra  = ["old" => $extras["min"], "new" => $apiService["min"]];

        $insert = $db->insert('api_report')

          ->set(array(

            'report_service_id' => $service["service_id"],

            'report_detail' => "#" . $service["service_id"] . " numaralı servisin minimum miktarı değiştirilmiş. Eski Veri: " . $extra['old'] . " - Yeni Veri: " . $extra['new'],

            'report_extra' => json_encode($extra)

          ));

        if ($settings['discord_apiNotify_url']) {

          discord_api(1, "#" . $service["service_id"] . " numaralı servisin minimum miktarı değiştirilmiş. Eski Veri: " . $extra['old'] . " - Yeni Veri: " . $extra['new']);
        }

        if ($insert) {
          $there_change = $there_change + 1;
        }
      }

      if ($apiService['max'] != $extras['max']) {

        $extra  = ["old" => $extras["max"], "new" => $apiService["max"]];

        $insert = $db->insert('api_report')

          ->set(array(

            'report_service_id' => $service["service_id"],

            'report_detail' => "#" . $service["service_id"] . " numaralı servisin maksimum miktarı değiştirilmiş. Eski Veri: " . $extra['old'] . " - Yeni Veri: " . $extra['new'],

            'report_extra' => json_encode($extra)

          ));

        if ($settings['discord_apiNotify_url']) {

          discord_api(1, "#" . $service["service_id"] . " numaralı servisin maksimum miktarı değiştirilmiş. Eski Veri: " . $extra['old'] . " - Yeni Veri: " . $extra['new']);
        }

        if ($insert) {
          $there_change = $there_change + 1;
        }
      }

      if ($service["api_type"] == 2 && $there[$service["service_id"]]) {

        $extra  = ["old" => "API Servis Pasif", "new" => "API Servis Aktif"];

        $update_service_array = array(
          'api_detail' => $detail,
          'api_type' => 2
        );

        if ($service['service_status'] != 1) {

          if ($service['service_auto_status'] == 1) {
            $update_service_array['service_status'] = 1;
          }
          if ($service['service_auto_status'] == 2) {
            $insert = $db->insert('api_report')
              ->set(array(
                'report_service_id' => $service["service_id"],
                'report_detail' => "#" . $service["service_id"] . " numaralı servis sağlayıcı tarafından yeniden aktif edilmiş. (Otomatik güncelleme kapalı)",
                'report_extra' => json_encode($extra)
              ));

            if ($settings['discord_apiNotify_url']) {
              discord_api(1, "#" . $service["service_id"] . " numaralı servis sağlayıcı tarafından yeniden aktif edilmiş. (Otomatik güncelleme kapalı)");
            }
          }
          if ($service['service_auto_status'] == 3) {
            $update_service_array['service_status'] = 1;

            $insert = $db->insert('api_report')
              ->set(array(
                'report_service_id' => $service["service_id"],
                'report_detail' => "#" . $service["service_id"] . " numaralı servis sağlayıcı tarafından yeniden aktif edilmiş. (Otomatik güncellendi - aktifleştirildi)",
                'report_extra' => json_encode($extra)
              ));

            if ($settings['discord_apiNotify_url']) {
              discord_api(1, "#" . $service["service_id"] . " numaralı servis sağlayıcı tarafından yeniden aktif edilmiş. (Otomatik güncellendi - aktifleştirildi)");
            }
          }
        }

        $updateService = $db->update('services')
          ->where('service_id', $service["service_id"])
          ->set($update_service_array);

        if ($insert) {
          $there_change = $there_change + 1;
        }
      } else {
        $updateService = $db->update('services')

          ->where('service_id', $service["service_id"])

          ->set(array(
            'api_detail' => $detail,
            'api_type' => 2
          ));
      }
      $detail = [];
    }
  }
}
foreach ($there as $service => $type) {
  $serviceDetail = $db->from('services')->where('service_id', $service)->first();


  if ($type == 0 && $serviceDetail['api_type'] == 2) {

    $extra  = ["old" => "API Servis Aktif", "new" => "API Servis Pasif"];

    $update_service_array = array(
      'api_type' => 2
    );

    if ($serviceDetail['service_status'] != 0) {
      if ($serviceDetail['service_auto_status'] == 1) {
        $update_service_array['service_status'] = 0;
      }
      if ($serviceDetail['service_auto_status'] == 2) {
        $insert = $db->insert('api_report')
          ->set(array(
            'report_service_id' => $serviceDetail["service_id"],
            'report_detail' => "#" . $serviceDetail["service_id"] . " numaralı servis sağlayıcı tarafından kaldırılmış. (Otomatik güncelleme kapalı)",
            'report_extra' => json_encode($extra)
          ));

        if ($settings['discord_apiNotify_url']) {
          discord_api(1, "#" . $service . " numaralı servis sağlayıcı tarafından kaldırılmış. (Otomatik güncelleme kapalı)");
        }
      }
      if ($serviceDetail['service_auto_status'] == 3) {
        $update_service_array['service_status'] = 0;

        $insert = $db->insert('api_report')
          ->set(array(
            'report_service_id' => $serviceDetail["service_id"],
            'report_detail' => "#" . $serviceDetail["service_id"] . " numaralı servis sağlayıcı tarafından kaldırılmış. (Otomatik güncellendi - servis pasifleştirildi)",
            'report_extra' => json_encode($extra)
          ));

        if ($settings['discord_apiNotify_url']) {
          discord_api(1, "#" . $service . " numaralı servis sağlayıcı tarafından kaldırılmış. (Otomatik güncellendi - pasifleştirildi)");
        }
      }
    }

    $updateService = $db->update('services')->where('service_id', $service)
      ->set($update_service_array);

    if ($updateService) {
      $there_change = $there_change + 1;
    }
  }
}
?>