<?php

namespace App\Http\Controllers\Network;

use App\Http\Controllers\Network\Classes\TradeTrackerAPI;
use Yajny\Member\Models\Network;
use Yajny\Member\Models\Sale;

class TradeTracker extends BaseNetwork
{
    public function __construct(Network $network)
    {
        parent::__construct($network, new TradeTrackerAPI(
            $network->website_id,
            $network->affiliate_id,
            $network->api_key,
            $network->api_url
        ));
    }

    function mapNetworkSaleToYajnySale($saleOrder): ?Sale
    {
        $sale = Sale::withoutGlobalScopes()->firstOrNew(['network_id' => $this->network->id, 'network_transaction_id' => $saleOrder->ID]);

        if (!$sale->exists) {
            $sale->click_id = $saleOrder->reference;
            $sale->transaction_time = date('Y-m-d H:i:s', strtotime($saleOrder->registrationDate));
            $sale->currency = $saleOrder->currency;
        }

        $sale->local_order_amount = $saleOrder->orderAmount;
        $sale->local_comission = $saleOrder->commission;
        $sale->network_status = $saleOrder->transactionStatus;
        $sale->setStatus($this->network->sale_statuses);
        $sale->extras = json_encode($saleOrder);
        return $sale;
    }
}
