<?php
/**
 * @author      Alex Bilbie <hello@alexbilbie.com>
 * @copyright   Copyright (c) Alex Bilbie
 * @license     http://mit-license.org/
 *
 * @link        https://github.com/thephpleague/oauth2-server
 */

namespace Docuform\Api\Authentication\Entities;

use League\OAuth2\Server\Entities\ClientEntityInterface;
use League\OAuth2\Server\Entities\Traits\ClientTrait;
use League\OAuth2\Server\Entities\Traits\EntityTrait;

class ApiClientEntity implements ClientEntityInterface
{
  use EntityTrait, ClientTrait;

  /** @var string $scopes */
  protected $scopes = '';

  /** @var boolean $pkce_extension */
  protected $pkce_extension = false;


  /**
   *
   * @param string $name
   */
  public function setName($name) : void
  {
    $this->name = $name;
  }


  /**
   *
   * @param string $scopes
   */
  public function setScopes($scopes) : void
  {
    $this->scopes = $scopes;
  }


  /**
   *
   * @param boolean  $pkceExtension
   */
  public function setPkceExtension($pkceExtension) : void
  {
    $this->pkce_extension = $pkceExtension;
  }


  /**
   *
   * @param string $apiSecret
   */
  public function setApiSecret($apiSecret) : void
  {
    $this->apiSecret = $apiSecret;
  }


  /**
   *
   * @param string $uri
   */
  public function setRedirectUri($uri) : void
  {
    $this->redirectUri = $uri;
  }

  /**
   *
   * @param $isConfidential
   */
  public function setConfidential($isConfidential) : void
  {
    $this->isConfidential = $isConfidential;
  }


  /**
   *
   * @return string
   */
  public function getScopes() : string
  {
    return $this->scopes;
  }


  /**
   *
   * @return boolean
   */
  public function getPkceExtension() : bool
  {
    return $this->pkce_extension;
  }
}