apigee_m10n-8.x-1.7/modules/apigee_m10n_teams/src/MonetizationTeamsInterface.php

modules/apigee_m10n_teams/src/MonetizationTeamsInterface.php
<?php

/*
 * @file
 * Copyright 2018 Google Inc.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA 02110-1301, USA.
 */

namespace Drupal\apigee_m10n_teams;

use Apigee\Edge\Api\Monetization\Structure\LegalEntityTermsAndConditionsHistoryItem;
use Drupal\Core\Access\AccessResultInterface;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Session\AccountInterface;
use Drupal\apigee_edge\Entity\ApiProductInterface;
use Drupal\apigee_edge_teams\Entity\TeamInterface;
use Drupal\apigee_m10n_teams\Entity\TeamsRatePlan;

/**
 * Interface for the `apigee_m10n.teams` service.
 */
interface MonetizationTeamsInterface {

  /**
   * A list of permissions that will be given to authenticated users on install.
   */
  const DEFAULT_AUTHENTICATED_PERMISSIONS = [
    'add credit to own team prepaid balance',
  ];

  /**
   * Handles `hook_entity_type_alter` for the `apigee_m10n_teams` module.
   *
   * @param array $entity_types
   *   An array of entity types.
   */
  public function entityTypeAlter(array &$entity_types);

  /**
   * Handles `hook_field_formatter_info_alter` for `apigee_m10n_teams`.
   *
   * @param array $info
   *   An array of field formatter plugin definitions.
   */
  public function fieldFormatterInfoAlter(array &$info);

  /**
   * Handles `hook_field_widget_info_alter` for `apigee_m10n_teams`.
   *
   * @param array $info
   *   An array of field widget plugin definitions.
   */
  public function fieldWidgetInfoAlter(array &$info);

  /**
   * Handles `hook_ENTITY_TYPE_access` for the `apigee_m10n_teams` module.
   *
   * @param \Drupal\Core\Entity\EntityInterface $entity
   *   The `purchased_plan` entity.
   * @param string $operation
   *   The operation.
   * @param \Drupal\Core\Session\AccountInterface $account
   *   The account requesting access.
   *
   * @return \Drupal\Core\Access\AccessResultInterface|null
   *   The access result or null for non-team routes.
   */
  public function entityAccess(EntityInterface $entity, $operation, AccountInterface $account);

  /**
   * Gets the current team from the route object.
   *
   * @return \Drupal\apigee_edge_teams\Entity\TeamInterface|null
   *   The current team from the route.
   */
  public function currentTeam(): ?TeamInterface;

  /**
   * Handles `hook_purchased_plan_access` for the `apigee_m10n_teams` module.
   *
   * @param \Drupal\Core\Entity\EntityInterface $entity
   *   The `purchased_plan` entity.
   * @param string $operation
   *   The operation.
   * @param \Drupal\Core\Session\AccountInterface $account
   *   The account requesting access.
   *
   * @return \Drupal\Core\Access\AccessResultInterface|null
   *   The access result or null for non-team routes.
   */
  public function purchasedPlanAccess(EntityInterface $entity, $operation, AccountInterface $account);

  /**
   * Check if team has already subscribed to the rate plan.
   *
   * @param string $team_id
   *   Team ID.
   * @param \Drupal\apigee_m10n_teams\Entity\TeamsRatePlan $rate_plan
   *   Rate plan entity.
   *
   * @return bool|null
   *   Check if team is subscribed to a plan.
   */
  public function isTeamAlreadySubscribed(string $team_id, TeamsRatePlan $rate_plan): bool;

  /**
   * Check if company accepted latest terms and conditions.
   *
   * @param string $company_id
   *   Company ID.
   *
   * @return bool|null
   *   User terms and conditions acceptance flag.
   */
  public function isLatestTermsAndConditionAccepted(string $company_id): ?bool;

  /**
   * Accepts a terms and conditions by its id.
   *
   * @param string $company_id
   *   Company ID.
   *
   * @return \Apigee\Edge\Api\Monetization\Structure\LegalEntityTermsAndConditionsHistoryItem|null
   *   Terms and conditions history item.
   */
  public function acceptLatestTermsAndConditions(string $company_id): ?LegalEntityTermsAndConditionsHistoryItem;

  /**
   * Checks access to a product for a given account.
   *
   * @param \Drupal\apigee_edge\Entity\ApiProductInterface $api_product
   *   The 'api_product'  entity.
   * @param \Drupal\apigee_edge_teams\Entity\TeamInterface $team
   *   The 'api_product'  entity.
   * @param \Drupal\Core\Session\AccountInterface $account
   *   The user account.
   *
   * @return \Drupal\Core\Access\AccessResultInterface
   *   Whether or not the user has access to the entity.
   */
  public function apiProductTeamAssignmentAccess(ApiProductInterface $api_product, TeamInterface $team, AccountInterface $account): ?AccessResultInterface;

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc