<commit_before><?php

namespace SellerLabs\Research\Interfaces;

use SellerLabs\Research\Responses\FeesResponse;
use SellerLabs\Research\Responses\SearchResponse;

/**
 * Interface ResearchClientInterface
 *
 * Represents an object capable of querying SellerLabs' Research API
 *
 * @author <NAME> <<EMAIL>>
 * @author <NAME> <<EMAIL>>
 * @package SellerLabs\Research\Interfaces
 */
interface ResearchClientInterface
{
    /**
     * Generate an authorization code for NodeMWS
     *
     * @param null|int $timestamp
     *
     * @return string
     */
    public function generateCode($timestamp = null);

    /**
     * Get the current offers for an ASIN from NodeMWS
     *
     * @param string $asin
     * @param bool $noPaapi
     *
     * @return \SellerLabs\Research\Responses\OffersResponse
     */
    public function getOffers($asin, $noPaapi = false);

    /**
     * Call the fees endpoint of NodeMWS and return the response
     *
     * @param $asin
     * @param $price
     *
     * @return FeesResponse
     */
    public function getFees($asin, $price);

    /**
     * Search the catalog and return the response
     *
     * @param $idType
     * @param $idCode
     *
     * @return SearchResponse
     */
    public function getSearch($idType, $idCode);

    /**
     * Get categories for an ASIN
     *
     * @param $asin
     *
     * @return \SellerLabs\Research\Responses\GetAsinCategoriesResponse
     */
    public function getAsinCategories($asin);

    /**
     * Get a category by ID
     *
     * @param $categoryId
     *
     * @return \SellerLabs\Research\Responses\GetCategoryByIdResponse
     */
    public function getCategoryById($categoryId);
}<commit_msg>Pull members up to interface<commit_after><?php

namespace SellerLabs\Research\Interfaces;

use SellerLabs\Research\Factories\ItemSearchResponseFactory;
use SellerLabs\Research\Responses\FeesResponse;
use SellerLabs\Research\Responses\ItemSearchResponse;
use SellerLabs\Research\Responses\SearchResponse;

/**
 * Interface ResearchClientInterface
 *
 * Represents an object capable of querying SellerLabs' Research API
 *
 * @author <NAME> <<EMAIL>>
 * @author <NAME> <<EMAIL>>
 * @package SellerLabs\Research\Interfaces
 */
interface ResearchClientInterface
{
    /**
     * Generate an authorization code for NodeMWS
     *
     * @param null|int $timestamp
     *
     * @return string
     */
    public function generateCode($timestamp = null);

    /**
     * Get the current offers for an ASIN from NodeMWS
     *
     * @param string $asin
     * @param bool $noPaapi
     *
     * @return \SellerLabs\Research\Responses\OffersResponse
     */
    public function getOffers($asin, $noPaapi = false);

    /**
     * Call the fees endpoint of NodeMWS and return the response
     *
     * @param $asin
     * @param $price
     *
     * @return FeesResponse
     */
    public function getFees($asin, $price);

    /**
     * Search the catalog and return the response
     *
     * @param $idType
     * @param $idCode
     *
     * @return SearchResponse
     */
    public function getSearch($idType, $idCode);

    /**
     * Get categories for an ASIN
     *
     * @param $asin
     *
     * @return \SellerLabs\Research\Responses\GetAsinCategoriesResponse
     */
    public function getAsinCategories($asin);

    /**
     * Get a category by ID
     *
     * @param $categoryId
     *
     * @return \SellerLabs\Research\Responses\GetCategoryByIdResponse
     */
    public function getCategoryById($categoryId);

    /**
     * Hit the itemSearch endpoint of research-api with a given keyword
     * phrase, page (default 1) and search index (default Blended)
     *
     * @param $keywords
     * @param int $page
     * @param string $searchIndex
     *
     * @return ItemSearchResponse
     */
    public function getItemSearch(
        $keywords,
        $page = 1,
        $searchIndex = 'Blended'
    );
}
{'fraction_non_alphanumeric': 0.10333418172562993, 'fraction_numerical': 0.0005090353779587681, 'mean_word_length': 2.553345388788427, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7058490', 'n_tokens_mistral': 1218, 'n_tokens_neox': 1174, 'n_words': 297}