<?php
namespace App\Entity\System;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* Pack
*
* @ORM\Table(name="ps_pack")
*
* @ORM\Entity(repositoryClass="App\Repository\System\PackRepository")
*/
class Pack
{
public const PACK_WITHOUT_PACK = 0;
public const PACK_WITHOUT_PACK_NAME = 'NONE';
public const PACK_BASIC = 1;
public const PACK_BASIC_NAME = 'BASIC';
public const PACK_PRO = 2;
public const PACK_PRO_NAME = 'PRO';
public const PACK_BUSINESS = 150;
public const PACK_BUSINESS_NAME = 'BUSINESS';
public const PACK_PREMIUM = 151;
public const PACK_PREMIUM_NAME = 'PREMIUM';
public const PACK_FREE = 167;
public const PACK_FREE_NAME = 'FREE';
public const PACK_RENTING = 195;
public const PACK_RENTING_NAME = 'RENTING';
public const PACK_B2B = 201;
public const PACK_B2B_NAME = 'B2B';
public const PACK_DROPSHIP = 202;
public const PACK_DROPSHIP_NAME = 'DROPSHIP';
public const PACK_ENTERPRISE = 203;
public const PACK_ENTERPRISE_NAME = 'ENTERPRISE';
public const PACK_ECOMMERCE = 210;
public const PACK_ECOMMERCE_NAME = 'ECOMMERCE';
public const PACK_MARKETPLACES = 211;
public const PACK_MARKETPLACES_NAME = 'MARKETPLACES';
public const OLD_B2B_PRICE = 45;
public const AVAILABLE_ADMIN_CREATION_PACK_IDS = [
self::PACK_B2B,
];
public const AVAILABLE_PACK_IDS = [
self::PACK_B2B,
self::PACK_ECOMMERCE,
self::PACK_MARKETPLACES,
];
public const PACK_NAMES_INDEXED_BY_ID = [
self::PACK_WITHOUT_PACK => self::PACK_WITHOUT_PACK_NAME,
self::PACK_BASIC => self::PACK_BASIC_NAME,
self::PACK_PRO => self::PACK_PRO_NAME,
self::PACK_BUSINESS => self::PACK_BUSINESS_NAME,
self::PACK_PREMIUM => self::PACK_PREMIUM_NAME,
self::PACK_FREE => self::PACK_FREE_NAME,
self::PACK_RENTING => self::PACK_RENTING_NAME,
self::PACK_B2B => self::PACK_B2B_NAME,
self::PACK_DROPSHIP => self::PACK_DROPSHIP_NAME,
self::PACK_ENTERPRISE => self::PACK_ENTERPRISE_NAME,
self::PACK_ECOMMERCE => self::PACK_ECOMMERCE_NAME,
self::PACK_MARKETPLACES => self::PACK_MARKETPLACES_NAME,
];
public const PACK_B2B_REFERENCE = 'PACKB2B';
public const DROPSHIPPING_PACK_INDEXED_BY_ID = [
self::PACK_PRO => self::PACK_PRO_NAME,
self::PACK_BUSINESS => self::PACK_BUSINESS_NAME,
self::PACK_PREMIUM => self::PACK_PREMIUM_NAME,
self::PACK_B2B => self::PACK_B2B_NAME,
self::PACK_DROPSHIP => self::PACK_DROPSHIP_NAME,
self::PACK_ENTERPRISE => self::PACK_ENTERPRISE_NAME,
self::PACK_ECOMMERCE => self::PACK_ECOMMERCE_NAME,
self::PACK_MARKETPLACES => self::PACK_MARKETPLACES_NAME,
];
public const AVAILABLE_WHOLESALE_PACKS_IDS = [
self::PACK_ECOMMERCE,
self::PACK_MARKETPLACES,
];
/**
* @var int
*
* @ORM\Id
*
* @ORM\Column(type="integer", name="id_pack")
*/
private $id;
/**
* @var string
*
* @ORM\Column(type="string", length=32, unique=true)
*/
private $key;
/**
* @var iterable<PackLanguage>&Collection<int, PackLanguage>
*
* @ORM\OneToMany(targetEntity="App\Entity\System\PackLanguage", mappedBy="pack")
*/
private $packLanguages;
/**
* @var iterable<Subscription>&Collection<int, Subscription>
*
* @ORM\OneToMany(targetEntity="App\Entity\System\Subscription", mappedBy="pack")
*/
private $subscriptions;
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*
* @return Pack
*/
public function setId(int $id): self
{
$this->id = $id;
return $this;
}
public function getKey(): string
{
return $this->key;
}
public function setKey(string $key): Pack
{
$this->key = $key;
return $this;
}
/**
* @return PackLanguage[]|Collection<int, PackLanguage>
*/
public function getPackLanguages()
{
return $this->packLanguages;
}
/**
* @param PackLanguage[]|Collection<int, PackLanguage> $packLanguages
*/
public function setPackLanguages($packLanguages): Pack
{
$this->packLanguages = $packLanguages;
return $this;
}
/**
* @return Subscription[]|Collection<int, Subscription>
*/
public function getSubscriptions()
{
return $this->subscriptions;
}
/**
* @param Subscription[]|Collection<int, Subscription> $subscriptions
*/
public function setSubscriptions($subscriptions): Pack
{
$this->subscriptions = $subscriptions;
return $this;
}
}