/**
  * Add Trade Item
  * 
  * @param array $data
  */
 public function addItem($data)
 {
     $tradeUserIns = new BuckysTradeUser();
     if (!$tradeUserIns->hasCredits($data['userID'])) {
         return;
     }
     // no credits
     global $db;
     if (empty($data['userID']) || empty($data['title']) || empty($data['subtitle']) || empty($data['catID'])) {
         return;
     }
     $newID = $db->insertFromArray(TABLE_TRADE_ITEMS, $data);
     //Trade User has been created?
     $tradeUserIns->addUser($data['userID']);
     //Use one credits
     if ($newID) {
         $tradeUserIns->useCredit($data['userID']);
     }
     return $newID;
 }
/**
 * Edit trade item action by ajax
 */
function editTradeItem()
{
    $userID = buckys_is_logged_in();
    if (!$userID) {
        return;
    }
    $tradeItemIns = new BuckysTradeItem();
    $inputValidFlag = true;
    $requiredFields = ['title', 'subtitle', 'description', 'category'];
    foreach ($requiredFields as $requiredField) {
        if ($_REQUEST[$requiredField] == '') {
            $inputValidFlag = false;
        }
    }
    $actionType = get_secure_string($_REQUEST['type']);
    $paramItemID = get_secure_integer($_REQUEST['itemID']);
    $data = [];
    $editableFlag = false;
    if ($actionType == 'relist') {
        $tradeItemData = $tradeItemIns->getItemById($paramItemID, true);
        if (!$tradeItemData) {
            echo json_encode(['success' => 0, 'msg' => 'You could not relist this item.']);
            exit;
        }
        //you can relist this item
        $data['createdDate'] = date('Y-m-d H:i:s');
        $tradeUserIns = new BuckysTradeUser();
        if (!$tradeUserIns->hasCredits($userID)) {
            echo json_encode(['success' => 0, 'msg' => 'You could not relist this item. You have no credits.']);
            exit;
        }
        if ($tradeItemData['userID'] == $userID) {
            $editableFlag = true;
        } else {
            $editableFlag = false;
        }
    } else {
        $tradeItemData = $tradeItemIns->getItemById($paramItemID, false);
        if ($tradeItemData && $tradeItemData['userID'] == $userID) {
            $editableFlag = true;
        }
    }
    if ($inputValidFlag) {
        if ($editableFlag) {
            $data['title'] = get_secure_string($_REQUEST['title']);
            $data['subtitle'] = get_secure_string($_REQUEST['subtitle']);
            $data['description'] = get_secure_string($_REQUEST['description']);
            $data['itemWanted'] = get_secure_string($_REQUEST['items_wanted']);
            $data['images'] = get_secure_string($_REQUEST['images']);
            $data['catID'] = get_secure_string($_REQUEST['category']);
            $data['locationID'] = get_secure_string($_REQUEST['location']);
            $data['listingDuration'] = get_secure_string($_REQUEST['listing_duration']);
            $data['expiryDate'] = $data['listingDuration'] == -1 ? '0000-00-00 00:00:00' : date('Y-m-d H:i:s', time() + 3600 * 24 * $data['listingDuration']);
            $data['images'] = moveTradeTmpImages($data['images']);
            if ($data['images'] === false) {
                echo json_encode(['success' => 0, 'msg' => 'Something goes wrong, please contact administrator.']);
                exit;
            }
            if ($actionType == 'relist') {
                $tradeUserIns->useCredit($userID);
            }
            $tradeItemIns->updateItem($paramItemID, $data);
            echo json_encode(['success' => 1, 'msg' => 'An item has been updated successfully.']);
        } else {
            echo json_encode(['success' => 0, 'msg' => "You don't have permission."]);
        }
    } else {
        //error
        echo json_encode(['success' => 0, 'msg' => 'Please input required field(s).']);
    }
}