<?php
// GENERATED CODE -- DO NOT EDIT!

// Original file comments:
//
// Сервис реализует функционал управления баннерами.
// Используются как источник Критичнх уведомления, White label компаний и объявления рекламных акций
namespace Keyapis\Banner\V1;

/**
 * Сервис управления баннерами
 */
class BannerServiceClient extends \Grpc\BaseStub {

    /**
     * @param string $hostname hostname
     * @param array $opts channel options
     * @param \Grpc\Channel $channel (optional) re-use channel object
     */
    public function __construct($hostname, $opts, $channel = null) {
        parent::__construct($hostname, $opts, $channel);
    }

    /**
     * Метод сохранения баннера.
     * Поддерживает создание и обновление.
     * Метод доступен для: admin, manager, service
     * @param \Keyapis\Banner\V1\PostBannerRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function PostBanner(\Keyapis\Banner\V1\PostBannerRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.banner.v1.BannerService/PostBanner',
        $argument,
        ['\Keyapis\Banner\V1\PostBannerResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод получения баннера.
     * Метод доступен для: admin, manager, service
     * @param \Keyapis\Banner\V1\GetBannerRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function GetBanner(\Keyapis\Banner\V1\GetBannerRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.banner.v1.BannerService/GetBanner',
        $argument,
        ['\Keyapis\Banner\V1\GetBannerResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод получения упрощённого баннера.
     * Не требует авторизации
     * @param \Keyapis\Banner\V1\GetBannerLiteRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function GetBannerLite(\Keyapis\Banner\V1\GetBannerLiteRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.banner.v1.BannerService/GetBannerLite',
        $argument,
        ['\Keyapis\Banner\V1\GetBannerLiteResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод получения списка баннеров.
     * Метод доступен для: admin, manager, service
     * @param \Keyapis\Banner\V1\GetBannerListRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\ServerStreamingCall
     */
    public function GetBannerList(\Keyapis\Banner\V1\GetBannerListRequest $argument,
      $metadata = [], $options = []) {
        return $this->_serverStreamRequest('/keyapis.banner.v1.BannerService/GetBannerList',
        $argument,
        ['\Keyapis\Banner\V1\GetBannerListResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод получения списка упрощённых баннеров.
     * Возвращает всегда активные баннеры.
     * По умолчанию возвращает первые 20 баннеров осортированных по приоритету, затем по дате начала акции(от самых важных к не важным, затем от самых новых акций к самым старым).
     * Если запрос выполнен хотя бы без одного изпризнака приложения возвращает пустой список.
     * Если запрос выполнен без признаков пользователя метод возвращает пустой список.
     * Не требует авторизации
     * @param \Keyapis\Banner\V1\GetBannerLiteListRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\ServerStreamingCall
     */
    public function GetBannerLiteList(\Keyapis\Banner\V1\GetBannerLiteListRequest $argument,
      $metadata = [], $options = []) {
        return $this->_serverStreamRequest('/keyapis.banner.v1.BannerService/GetBannerLiteList',
        $argument,
        ['\Keyapis\Banner\V1\GetBannerLiteListResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод получения количества баннеров.
     * Метод доступен для: admin, manager, service
     * @param \Keyapis\Banner\V1\GetBannerCountRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function GetBannerCount(\Keyapis\Banner\V1\GetBannerCountRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.banner.v1.BannerService/GetBannerCount',
        $argument,
        ['\Keyapis\Banner\V1\GetBannerCountResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод загрузки картинки баннера.
     * Метод доступен для: admin, manager, service
     * @param \Keyapis\Banner\V1\PostBannerUploadImageRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function PostBannerUploadImage(\Keyapis\Banner\V1\PostBannerUploadImageRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.banner.v1.BannerService/PostBannerUploadImage',
        $argument,
        ['\Keyapis\Banner\V1\PostBannerUploadImageResponse', 'decode'],
        $metadata, $options);
    }

}
