<?php

include( 'functions.php' );

/* 

    ref: https://app.strackr.com/ressources/docs/api/#api-Reports-Transaction_list
    ref: https://strackr.com/docs/gQ3GwQ

    VERSION 4: Combined all network_ids from separate transaction files

*/

$apiId = '22314083';
$apiKey = '9ZjP5l9JLEPJYp';


/*
    Filter by network ids (comma seperated). 
    Empty for all. 
    
    20260218EWO : Created v4 with all combined network ids from:
                  - transactions_strackr.php (base networks)
                  - transactions_strackr-awin.php
                  - transactions_strackr-booking.php
                  - transactions_strackr-daisycon.php
                  - transactions_strackr-partnerize.php
                  - transactions_strackr-tradedoubler.php
                  - transactions_strackr-tradetracker.php

    Network IDs included:
    
    CJ Affiliate:       6n8g
    bol.com:            X1Kq
    Webgains:           XNK6
    Adtraction:         qeP6
    Refersion:          qm5Y
    Shareasale:         XKeq
    Kwanko:             Xxm6
    Custom Network:     gWkk
    Rakuten:            XvBX
    GetYourGuide:       6bmo
    Impact Radius:      6P46
    Belboon:            XB99
    Awin:               6bmX
    Booking.com:        qlR4
    Daisycon:           6ODq
    Partnerize:         6yWg
    TradeDoubler:       qEBg
    TradeTracker:       6rj6

 ***/
$networks = "6n8g,X1Kq,XNK6,qeP6,qm5Y,XKeq,Xxm6,gWkk,XvBX,6bmo,6P46,XB99,6bmX,qlR4,6ODq,6yWg,qEBg,6rj6";

$headers = array(
    'Accept: application/json'
);

$time_type = trim((string) $time_type);

if (!in_array($time_type, array('sold_at', 'status_updated_at', 'paid_updated_at', 'sold'), true)) {
    $time_type = 'sold_at';
}

$url = 'https://api.strackr.com/v4/ad/reports/transactions?
    api_id=' . $apiId   . '&
    api_key=' . $apiKey . '&
    time_type=' . $time_type . '&
    time_start=' . $date . '&
    time_end=' . $date . '&
    expand=basket';

if (!empty($networks)) {
    $url .= '&networks=' . $networks;
}

$url = preg_replace('/[\n\s]/', '', $url);

//echo $url;
//die();

$ch = curl_init();
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_ENCODING, '' );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt( $ch, CURLOPT_TIMEOUT, 240 );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $ch, CURLOPT_USERAGENT, 'sponsorkliks transactions consumer' );
curl_setopt( $ch, CURLOPT_MAXREDIRS, 10 );
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt( $ch, CURLOPT_FAILONERROR, true); 

$content = curl_exec( $ch );
$response = curl_getinfo( $ch );

if (curl_errno($ch)) {
    $error_msg = curl_error($ch);
}

curl_close( $ch );

if (isset($error_msg)) {
    file_put_contents("transactions_strackr_v4_error.log", json_encode($error_msg));
}

$results = json_decode( utf8_encode( $content ), true );

$transactions = array();

foreach( $results['data'] AS $result ) {

    // Special handling for Booking.com (network_id: qlR4)
    // Apply commission cap as per original transactions_strackr-booking.php logic
    if (isset($result['network_id']) && $result['network_id'] == 'qlR4') {
        $max_spk_commission_allowed = (0.04 / 0.75) * $result["order_amount"];
        if ($result["revenue"] > $max_spk_commission_allowed) {
            $result["revenue"] = $max_spk_commission_allowed;
        }
    }

    $transactions[] = $result;
}

if ( !empty( $transactions ) && count( $transactions ) > 0 ) {
    mysql_bulk( $transactions );
}

