Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.07 KB | None | 0 0
  1. <?php
  2.  
  3. namespace Billing\Entity\Promotion;
  4.  
  5. use Billing\Entity\DigitalContent\DigitalContentDrmEntity;
  6. use Billing\Entity\DigitalContent\DigitalContentInCartCollection;
  7. use Billing\Entity\DigitalContent\DigitalContentInCartEntity;
  8. use Billing\Storage\Metadata\EntityMetadata;
  9. use Billing\Strategy\DigitalContentPinCode\PinCodesCheckerStrategy;
  10.  
  11. class PromotionRewardDigitalContentBonusEntity
  12. {
  13.     protected $idRewardDigitalContentBonus;
  14.     protected $idPromotion;
  15.     protected $count;
  16.     protected $idDigitalContentDrm;
  17.     /** @var DigitalContentDrmEntity */
  18.     protected $digitalContentDrm;
  19.  
  20.     /**
  21.      * @var DigitalContentInCartCollection
  22.      */
  23.     protected $digitalContentInCartBonusCollection;
  24.     /**
  25.      * @var PinCodesCheckerStrategy
  26.      */
  27.     protected $pinCodesCheckerStrategy;
  28.  
  29.     public static function loadEntityMetadata(EntityMetadata $metadata)
  30.     {
  31.         $metadata->setTable('promotions.reward_digital_content_bonus');
  32.         $metadata->setCollection('\Billing\Entity\Promotion\PromotionRewardDigitalContentBonusCollection');
  33.  
  34.         $metadata->createField(
  35.             [
  36.                 'name' => 'idRewardDigitalContentBonus',
  37.                 'isPrimaryKey' => true,
  38.                 'autoIncrement' => true
  39.             ]
  40.         );
  41.         $metadata->createField(['name' => 'idPromotion']);
  42.         $metadata->createField(
  43.             [
  44.                 'name' => 'digitalContentInCartBonusCollection',
  45.                 'isSavable' => false,
  46.                 'targetEntity' => DigitalContentInCartEntity::class,
  47.                 'directMapping' => [
  48.                     'storage' => 'DigitalContentInCartStorage',
  49.                     'method' => 'createDigitalContentInCartBonusCollection',
  50.                     'columns' => ['idDigitalContentDrm', 'count']
  51.                 ]
  52.             ]
  53.         );
  54.  
  55.         $metadata->createField(['name' => 'count']);
  56.         $metadata->createField(['name' => 'idDigitalContentDrm']);
  57.         $metadata->createField([
  58.             'name' => 'digitalContentDrm',
  59.             'columns' => ['idDigitalContentDrm'],
  60.             'targetEntity' => DigitalContentDrmEntity::class,
  61.             'directMapping' => [
  62.                 'storage' => 'DigitalContentDrmStorage',
  63.                 'method' => 'findOneByIdDigitalContentDrm',
  64.                 'columns' => ['idDigitalContentDrm']
  65.             ]
  66.         ]);
  67.  
  68.         $metadata->createStrategy('pinCodesCheckerStrategy', 'createPinCodesCheckerStrategy');
  69.     }
  70.  
  71.     /**
  72.      * @return mixed
  73.      */
  74.     public function getIdRewardDigitalContentBonus()
  75.     {
  76.         return $this->idRewardDigitalContentBonus;
  77.     }
  78.  
  79.     /**
  80.      * @param mixed $idRewardDigitalContentBonus
  81.      */
  82.     public function setIdRewardDigitalContentBonus($idRewardDigitalContentBonus)
  83.     {
  84.         $this->idRewardDigitalContentBonus = $idRewardDigitalContentBonus;
  85.     }
  86.  
  87.     /**
  88.      * @return mixed
  89.      */
  90.     public function getIdPromotion()
  91.     {
  92.         return $this->idPromotion;
  93.     }
  94.  
  95.     /**
  96.      * @param mixed $idPromotion
  97.      */
  98.     public function setIdPromotion($idPromotion)
  99.     {
  100.         $this->idPromotion = $idPromotion;
  101.     }
  102.  
  103.     /**
  104.      * @return DigitalContentInCartCollection
  105.      */
  106.     public function getDigitalContentInCartBonusCollection()
  107.     {
  108.         return $this->digitalContentInCartBonusCollection;
  109.     }
  110.  
  111.     /**
  112.      * @param DigitalContentInCartCollection $digitalContentInCartBonusCollection
  113.      */
  114.     public function setDigitalContentInCartBonusCollection($digitalContentInCartBonusCollection)
  115.     {
  116.         $this->digitalContentInCartBonusCollection = $digitalContentInCartBonusCollection;
  117.     }
  118.  
  119.     /**
  120.      * @return bool
  121.      */
  122.     public function isActivePinCodesExists()
  123.     {
  124.         return $this->pinCodesCheckerStrategy->isActivePinCodesCountExists(
  125.             $this->digitalContentInCartBonusCollection->first(),
  126.             $this->count
  127.         );
  128.     }
  129.  
  130.     /**
  131.      * @return bool
  132.      */
  133.     public function isPreOrder()
  134.     {
  135.         return $this->digitalContentDrm->getActualIsPreOrder();
  136.     }
  137.  
  138.     /**
  139.      * @return PinCodesCheckerStrategy
  140.      */
  141.     public function getPinCodesCheckerStrategy()
  142.     {
  143.         return $this->pinCodesCheckerStrategy;
  144.     }
  145.  
  146.     /**
  147.      * @param PinCodesCheckerStrategy $pinCodesCheckerStrategy
  148.      */
  149.     public function setPinCodesCheckerStrategy($pinCodesCheckerStrategy)
  150.     {
  151.         $this->pinCodesCheckerStrategy = $pinCodesCheckerStrategy;
  152.     }
  153.  
  154.     /**
  155.      * @return int
  156.      */
  157.     public function getCount()
  158.     {
  159.         return $this->count;
  160.     }
  161.  
  162.     /**
  163.      * @param int $count
  164.      */
  165.     public function setCount($count)
  166.     {
  167.         $this->count = $count;
  168.     }
  169.  
  170.     /**
  171.      * @return int
  172.      */
  173.     public function getIdDigitalContentDrm()
  174.     {
  175.         return $this->idDigitalContentDrm;
  176.     }
  177.  
  178.     /**
  179.      * @param int $idDigitalContentDrm
  180.      */
  181.     public function setIdDigitalContentDrm($idDigitalContentDrm)
  182.     {
  183.         $this->idDigitalContentDrm = $idDigitalContentDrm;
  184.     }
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement