Passed
Push — master ( 8a0be3...c80938 )
by Joachim
11:19
created

Product::hydrate()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 11
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 5
nc 4
nop 3
dl 0
loc 11
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Loevgaard\DandomainFoundation\Entity;
4
5
use Doctrine\Common\Collections\ArrayCollection;
6
use Doctrine\ORM\Mapping as ORM;
7
use Knp\DoctrineBehaviors\Model\SoftDeletable\SoftDeletable;
8
use Knp\DoctrineBehaviors\Model\Timestampable\Timestampable;
9
use Knp\DoctrineBehaviors\Model\Translatable\Translatable;
10
use Loevgaard\DandomainFoundation\Entity\Generated\CategoryInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...rated\CategoryInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
11
use Loevgaard\DandomainFoundation\Entity\Generated\ManufacturerInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...d\ManufacturerInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
12
use Loevgaard\DandomainFoundation\Entity\Generated\MediumInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...nerated\MediumInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
13
use Loevgaard\DandomainFoundation\Entity\Generated\PriceInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...enerated\PriceInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
14
use Loevgaard\DandomainFoundation\Entity\Generated\ProductInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...erated\ProductInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
15
use Loevgaard\DandomainFoundation\Entity\Generated\ProductRelationInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...roductRelationInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
16
use Loevgaard\DandomainFoundation\Entity\Generated\ProductTrait;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...\Generated\ProductTrait was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
17
use Loevgaard\DandomainFoundation\Entity\Generated\ProductTranslationInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...uctTranslationInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
18
use Loevgaard\DandomainFoundation\Entity\Generated\ProductTypeInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...ed\ProductTypeInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
19
use Loevgaard\DandomainFoundation\Entity\Generated\SegmentInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...erated\SegmentInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
20
use Loevgaard\DandomainFoundation\Entity\Generated\VariantGroupInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...d\VariantGroupInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
21
use Loevgaard\DandomainFoundation\Entity\Generated\VariantInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...erated\VariantInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
22
23
/**
24
 * @ORM\Entity()
25
 * @ORM\Table(name="ldf_products")
26
 * @method ProductTranslationInterface translate(string $locale = null, bool $fallbackToDefault = true)
27
 */
28
class Product extends AbstractEntity implements ProductInterface
29
{
30
    use ProductTrait;
31
    use Timestampable;
32
    use SoftDeletable;
33
    use Translatable;
34
35
    protected $hydrateConversions = [
36
        'id' => 'externalId'
37
    ];
38
39
    /**
40
     * @var int
41
     *
42
     * @ORM\Id
43
     * @ORM\GeneratedValue
44
     * @ORM\Column(type="integer")
45
     **/
46
    protected $id;
47
48
    /**
49
     * @var int
50
     *
51
     * @ORM\Column(type="integer", unique=true)
52
     */
53
    protected $externalId;
54
55
    /**
56
     * @var string|null
57
     *
58
     * @ORM\Column(nullable=true, type="string", length=191)
59
     */
60
    protected $barCodeNumber;
61
62
    /**
63
     * @var array|null
64
     *
65
     * @ORM\Column(nullable=true, type="json")
66
     */
67
    protected $categoryIdList;
68
69
    /**
70
     * @var string|null
71
     *
72
     * @ORM\Column(nullable=true, type="string", length=191)
73
     */
74
    protected $comments;
75
76
    /**
77
     * @var float|null
78
     *
79
     * @ORM\Column(nullable=true, type="decimal", precision=12, scale=2)
80
     */
81
    protected $costPrice;
82
83
    /**
84
     * @var \DateTimeImmutable|null
85
     *
86
     * @ORM\Column(nullable=true, type="datetime_immutable", options={"comment"="Created info from Dandomain"})
87
     */
88
    protected $created;
89
90
    /**
91
     * @var string|null
92
     *
93
     * @ORM\Column(nullable=true, type="string", length=191, options={"comment"="Created by info from Dandomain"})
94
     */
95
    protected $createdBy;
96
97
    /**
98
     * @var int|null
99
     *
100
     * @ORM\Column(nullable=true, type="integer")
101
     */
102
    protected $defaultCategoryId;
103
104
    /**
105
     * @var array|null
106
     *
107
     * @ORM\Column(nullable=true, type="json")
108
     */
109
    protected $disabledVariantIdList;
110
111
    /**
112
     * @var string|null
113
     *
114
     * @ORM\Column(nullable=true, type="string", length=191)
115
     */
116
    protected $edbPriserProductNumber;
117
118
    /**
119
     * @var string|null
120
     *
121
     * @ORM\Column(nullable=true, type="string", length=191)
122
     */
123
    protected $fileSaleLink;
124
125
    /**
126
     * @var string|null
127
     *
128
     * @ORM\Column(nullable=true, type="string", length=191)
129
     */
130
    protected $googleFeedCategory;
131
132
    /**
133
     * @var bool|null
134
     *
135
     * @ORM\Column(nullable=true, type="boolean")
136
     */
137
    protected $isGiftCertificate;
138
139
    /**
140
     * @var bool|null
141
     *
142
     * @ORM\Column(nullable=true, type="boolean")
143
     */
144
    protected $isModified;
145
146
    /**
147
     * @var bool|null
148
     *
149
     * @ORM\Column(nullable=true, type="boolean")
150
     */
151
    protected $isRateVariants;
152
153
    /**
154
     * @var bool|null
155
     *
156
     * @ORM\Column(nullable=true, type="boolean")
157
     */
158
    protected $isReviewVariants;
159
160
    /**
161
     * @var bool|null
162
     *
163
     * @ORM\Column(nullable=true, type="boolean")
164
     */
165
    protected $isVariantMaster;
166
167
    /**
168
     * @var string|null
169
     *
170
     * @ORM\Column(nullable=true, type="string", length=191)
171
     */
172
    protected $locationNumber;
173
174
    /**
175
     * @var array|null
176
     *
177
     * @ORM\Column(nullable=true, type="json")
178
     */
179
    protected $manufacturereIdList;
180
181
    /**
182
     * @var int|null
183
     *
184
     * @ORM\Column(nullable=true, type="integer")
185
     */
186
    protected $maxBuyAmount;
187
188
    /**
189
     * @var int|null
190
     *
191
     * @ORM\Column(nullable=true, type="integer")
192
     */
193
    protected $minBuyAmount;
194
195
    /**
196
     * @var int|null
197
     *
198
     * @ORM\Column(nullable=true, type="integer")
199
     */
200
    protected $minBuyAmountB2B;
201
202
    /**
203
     * The product number
204
     *
205
     * @var string|null
206
     *
207
     * @ORM\Column(nullable=true, type="string", length=191)
208
     */
209
    protected $number;
210
211
    /**
212
     * @var string|null
213
     *
214
     * @ORM\Column(nullable=true, type="string", length=191)
215
     */
216
    protected $picture;
217
218
    /**
219
     * @var int|null
220
     *
221
     * @ORM\Column(nullable=true, type="integer")
222
     */
223
    protected $salesCount;
224
225
    /**
226
     * @var array|null
227
     *
228
     * @ORM\Column(nullable=true, type="json")
229
     */
230
    protected $segmentIdList;
231
232
    /**
233
     * @var int|null
234
     *
235
     * @ORM\Column(nullable=true, type="integer")
236
     */
237
    protected $sortOrder;
238
239
    /**
240
     * @var int|null
241
     *
242
     * @ORM\Column(nullable=true, type="integer")
243
     */
244
    protected $stockCount;
245
246
    /**
247
     * @var int|null
248
     *
249
     * @ORM\Column(nullable=true, type="integer")
250
     */
251
    protected $stockLimit;
252
253
    /**
254
     * @var int|null
255
     *
256
     * @ORM\Column(nullable=true, type="integer")
257
     */
258
    protected $typeId;
259
260
    /**
261
     * @var \DateTimeImmutable|null
262
     *
263
     * @ORM\Column(nullable=true, type="datetime_immutable", options={"comment"="Updated info from Dandomain"})
264
     */
265
    protected $updated;
266
267
    /**
268
     * @var string|null
269
     *
270
     * @ORM\Column(nullable=true, type="string", length=191, options={"comment"="Updated by info from Dandomain"})
271
     */
272
    protected $updatedBy;
273
274
    /**
275
     * @var array|null
276
     *
277
     * @ORM\Column(nullable=true, type="json")
278
     */
279
    protected $variantGroupIdList;
280
281
    /**
282
     * @var array|null
283
     *
284
     * @ORM\Column(nullable=true, type="json")
285
     */
286
    protected $variantIdList;
287
288
    /**
289
     * @var int|null
290
     *
291
     * @ORM\Column(nullable=true, type="string", length=191)
292
     */
293
    protected $variantMasterId;
294
295
    /**
296
     * @var string|null
297
     *
298
     * @ORM\Column(nullable=true, type="string", length=191)
299
     */
300
    protected $vendorNumber;
301
302
    /**
303
     * @var int|null
304
     *
305
     * @ORM\Column(nullable=true, type="integer")
306
     */
307
    protected $weight;
308
309
    /**
310
     * @var Category[]|ArrayCollection
311
     */
312
    protected $categories;
313
314
    /**
315
     * @var Variant[]|ArrayCollection
316
     */
317
    protected $disabledVariants;
318
319
    /**
320
     * @var Manufacturer[]|ArrayCollection
321
     *
322
     * @ORM\JoinTable(name="ldf_product_manufacturer")
323
     * @ORM\ManyToMany(cascade={"persist"}, inversedBy="products", targetEntity="Manufacturer")
324
     */
325
    protected $manufacturers;
326
327
    /**
328
     * @var Medium[]|ArrayCollection
329
     */
330
    protected $media;
331
332
    /**
333
     * @var Price[]|ArrayCollection
334
     */
335
    protected $prices;
336
337
    /**
338
     * @var ProductRelation[]|ArrayCollection
339
     */
340
    protected $productRelations;
341
342
    /**
343
     * @var ProductType
344
     */
345
    protected $productType;
346
347
    /**
348
     * @var Segment[]|ArrayCollection
349
     */
350
    protected $segments;
351
352
    /**
353
     * @var VariantGroup[]|ArrayCollection
354
     *
355
     * @ORM\JoinTable(name="ldf_product_variant_group")
356
     * @ORM\ManyToMany(cascade={"persist"}, inversedBy="products", targetEntity="VariantGroup")
357
     */
358
    protected $variantGroups;
359
360
    /**
361
     * @var Variant[]|ArrayCollection
362
     */
363
    protected $variants;
364
365
    public function __construct()
366
    {
367
        $this->categories = new ArrayCollection();
368
        $this->disabledVariants = new ArrayCollection();
369
        $this->manufacturers = new ArrayCollection();
370
        $this->media = new ArrayCollection();
371
        $this->prices = new ArrayCollection();
372
        $this->productRelations = new ArrayCollection();
373
        $this->segments = new ArrayCollection();
374
        $this->variants = new ArrayCollection();
375
        $this->variantGroups = new ArrayCollection();
376
    }
377
378
    public function hydrate(array $data, bool $useConversions = false, $scalarsOnly = true)
379
    {
380
        if($data['created']) {
381
            $data['created'] = $this->getDateTimeFromJson($data['created']);
382
        }
383
384
        if($data['updated']) {
385
            $data['updated'] = $this->getDateTimeFromJson($data['updated']);
386
        }
387
388
        parent::hydrate($data, $useConversions, $scalarsOnly);
389
    }
390
391
    /*
392
     * Collection/relation methods
393
     */
394
395
    public function addDisabledVariant(VariantInterface $variant) : ProductInterface
396
    {
397
        if (!$this->disabledVariants->contains($variant)) {
398
            $this->disabledVariants->add($variant);
399
        }
400
401
        return $this;
402
    }
403
404
    public function addMedium(MediumInterface $medium) : ProductInterface
405
    {
406
        if (!$this->media->contains($medium)) {
407
            $this->media->add($medium);
408
        }
409
410
        return $this;
411
    }
412
413
    public function addCategory(CategoryInterface $category) : ProductInterface
414
    {
415
        if (!$this->categories->contains($category)) {
416
            $this->categories->add($category);
417
        }
418
419
        return $this;
420
    }
421
422
    public function addManufacturer(ManufacturerInterface $manufacturer) : ProductInterface
423
    {
424
        if (!$this->hasManufacturer($manufacturer)) {
425
            $this->manufacturers->add($manufacturer);
426
        }
427
428
        return $this;
429
    }
430
431
    public function removeManufacturer(ManufacturerInterface $manufacturer) : bool
432
    {
433
        return $this->manufacturers->removeElement($manufacturer);
434
    }
435
436
    public function hasManufacturer(ManufacturerInterface $manufacturer) : bool
437
    {
438
        return $this->manufacturers->exists(function ($key, ManufacturerInterface $element) use ($manufacturer) {
439
            return $element->getExternalId() === $manufacturer->getExternalId();
440
        });
441
    }
442
443
    public function addVariantGroup(VariantGroupInterface $variantGroup) : ProductInterface
444
    {
445
        if (!$this->hasVariantGroup($variantGroup)) {
446
            $this->variantGroups->add($variantGroup);
447
        }
448
449
        return $this;
450
    }
451
452
    public function removeVariantGroup(VariantGroupInterface $variantGroup) : bool
453
    {
454
        return $this->variantGroups->removeElement($variantGroup);
455
    }
456
457
    public function hasVariantGroup($variantGroup) : bool
458
    {
459
        if ($variantGroup instanceof VariantGroupInterface) {
460
            $variantGroup = $variantGroup->getExternalId();
461
        }
462
463
        return $this->variantGroups->exists(function ($key, VariantGroupInterface $element) use ($variantGroup) {
464
            return $element->getExternalId() === $variantGroup;
465
        });
466
    }
467
468
    public function addPrice(PriceInterface $price) : ProductInterface
469
    {
470
        if (!$this->prices->contains($price)) {
471
            $this->prices->add($price);
472
        }
473
474
        return $this;
475
    }
476
477
    public function addProductRelation(ProductRelationInterface $productRelation) : ProductInterface
478
    {
479
        if (!$this->productRelations->contains($productRelation)) {
480
            $this->productRelations->add($productRelation);
481
        }
482
483
        return $this;
484
    }
485
486
    public function addSegment(SegmentInterface $segment) : ProductInterface
487
    {
488
        if (!$this->segments->contains($segment)) {
489
            $this->segments->add($segment);
490
        }
491
492
        return $this;
493
    }
494
495
    public function addVariant(VariantInterface $variant) : ProductInterface
496
    {
497
        if (!$this->variants->contains($variant)) {
498
            $this->variants->add($variant);
499
        }
500
501
        return $this;
502
    }
503
504
    /*
505
     * Getters / Setters
506
     */
507
    /**
508
     * @return int
509
     */
510
    public function getId(): int
511
    {
512
        return (int)$this->id;
513
    }
514
515
    /**
516
     * @param int $id
517
     * @return ProductInterface
518
     */
519
    public function setId(int $id)
520
    {
521
        $this->id = $id;
522
        return $this;
523
    }
524
525
    /**
526
     * @return int
527
     */
528
    public function getExternalId(): int
529
    {
530
        return (int)$this->externalId;
531
    }
532
533
    /**
534
     * @param int $externalId
535
     * @return ProductInterface
536
     */
537
    public function setExternalId(int $externalId)
538
    {
539
        $this->externalId = $externalId;
540
        return $this;
541
    }
542
543
    /**
544
     * @return null|string
545
     */
546
    public function getBarCodeNumber()
547
    {
548
        return $this->barCodeNumber;
549
    }
550
551
    /**
552
     * @param null|string $barCodeNumber
553
     * @return ProductInterface
554
     */
555
    public function setBarCodeNumber($barCodeNumber)
556
    {
557
        $this->barCodeNumber = $barCodeNumber;
558
        return $this;
559
    }
560
561
    /**
562
     * @return array|null
563
     */
564
    public function getCategoryIdList()
565
    {
566
        return $this->categoryIdList;
567
    }
568
569
    /**
570
     * @param array|null $categoryIdList
571
     * @return ProductInterface
572
     */
573
    public function setCategoryIdList($categoryIdList)
574
    {
575
        $this->categoryIdList = $categoryIdList;
576
        return $this;
577
    }
578
579
    /**
580
     * @return null|string
581
     */
582
    public function getComments()
583
    {
584
        return $this->comments;
585
    }
586
587
    /**
588
     * @param null|string $comments
589
     * @return ProductInterface
590
     */
591
    public function setComments($comments)
592
    {
593
        $this->comments = $comments;
594
        return $this;
595
    }
596
597
    /**
598
     * @return float|null
599
     */
600
    public function getCostPrice()
601
    {
602
        return $this->costPrice;
603
    }
604
605
    /**
606
     * @param float|null $costPrice
607
     * @return ProductInterface
608
     */
609
    public function setCostPrice($costPrice)
610
    {
611
        $this->costPrice = $costPrice;
612
        return $this;
613
    }
614
615
    /**
616
     * @return \DateTimeImmutable|null
617
     */
618
    public function getCreated()
619
    {
620
        return $this->created;
621
    }
622
623
    /**
624
     * @param \DateTimeImmutable|null $created
625
     * @return ProductInterface
626
     */
627
    public function setCreated($created)
628
    {
629
        $this->created = $created;
630
        return $this;
631
    }
632
633
    /**
634
     * @return null|string
635
     */
636
    public function getCreatedBy()
637
    {
638
        return $this->createdBy;
639
    }
640
641
    /**
642
     * @param null|string $createdBy
643
     * @return ProductInterface
644
     */
645
    public function setCreatedBy($createdBy)
646
    {
647
        $this->createdBy = $createdBy;
648
        return $this;
649
    }
650
651
    /**
652
     * @return int|null
653
     */
654
    public function getDefaultCategoryId()
655
    {
656
        return $this->defaultCategoryId;
657
    }
658
659
    /**
660
     * @param int|null $defaultCategoryId
661
     * @return ProductInterface
662
     */
663
    public function setDefaultCategoryId($defaultCategoryId)
664
    {
665
        $this->defaultCategoryId = $defaultCategoryId;
666
        return $this;
667
    }
668
669
    /**
670
     * @return array|null
671
     */
672
    public function getDisabledVariantIdList()
673
    {
674
        return $this->disabledVariantIdList;
675
    }
676
677
    /**
678
     * @param array|null $disabledVariantIdList
679
     * @return ProductInterface
680
     */
681
    public function setDisabledVariantIdList($disabledVariantIdList)
682
    {
683
        $this->disabledVariantIdList = $disabledVariantIdList;
684
        return $this;
685
    }
686
687
    /**
688
     * @return null|string
689
     */
690
    public function getEdbPriserProductNumber()
691
    {
692
        return $this->edbPriserProductNumber;
693
    }
694
695
    /**
696
     * @param null|string $edbPriserProductNumber
697
     * @return ProductInterface
698
     */
699
    public function setEdbPriserProductNumber($edbPriserProductNumber)
700
    {
701
        $this->edbPriserProductNumber = $edbPriserProductNumber;
702
        return $this;
703
    }
704
705
    /**
706
     * @return null|string
707
     */
708
    public function getFileSaleLink()
709
    {
710
        return $this->fileSaleLink;
711
    }
712
713
    /**
714
     * @param null|string $fileSaleLink
715
     * @return ProductInterface
716
     */
717
    public function setFileSaleLink($fileSaleLink)
718
    {
719
        $this->fileSaleLink = $fileSaleLink;
720
        return $this;
721
    }
722
723
    /**
724
     * @return null|string
725
     */
726
    public function getGoogleFeedCategory()
727
    {
728
        return $this->googleFeedCategory;
729
    }
730
731
    /**
732
     * @param null|string $googleFeedCategory
733
     * @return ProductInterface
734
     */
735
    public function setGoogleFeedCategory($googleFeedCategory)
736
    {
737
        $this->googleFeedCategory = $googleFeedCategory;
738
        return $this;
739
    }
740
741
    /**
742
     * @return bool|null
743
     */
744
    public function getisGiftCertificate()
745
    {
746
        return $this->isGiftCertificate;
747
    }
748
749
    /**
750
     * @param bool|null $isGiftCertificate
751
     * @return ProductInterface
752
     */
753
    public function setIsGiftCertificate($isGiftCertificate)
754
    {
755
        $this->isGiftCertificate = $isGiftCertificate;
756
        return $this;
757
    }
758
759
    /**
760
     * @return bool|null
761
     */
762
    public function getisModified()
763
    {
764
        return $this->isModified;
765
    }
766
767
    /**
768
     * @param bool|null $isModified
769
     * @return ProductInterface
770
     */
771
    public function setIsModified($isModified)
772
    {
773
        $this->isModified = $isModified;
774
        return $this;
775
    }
776
777
    /**
778
     * @return bool|null
779
     */
780
    public function getisRateVariants()
781
    {
782
        return $this->isRateVariants;
783
    }
784
785
    /**
786
     * @param bool|null $isRateVariants
787
     * @return ProductInterface
788
     */
789
    public function setIsRateVariants($isRateVariants)
790
    {
791
        $this->isRateVariants = $isRateVariants;
792
        return $this;
793
    }
794
795
    /**
796
     * @return bool|null
797
     */
798
    public function getisReviewVariants()
799
    {
800
        return $this->isReviewVariants;
801
    }
802
803
    /**
804
     * @param bool|null $isReviewVariants
805
     * @return ProductInterface
806
     */
807
    public function setIsReviewVariants($isReviewVariants)
808
    {
809
        $this->isReviewVariants = $isReviewVariants;
810
        return $this;
811
    }
812
813
    /**
814
     * @return bool|null
815
     */
816
    public function getisVariantMaster()
817
    {
818
        return $this->isVariantMaster;
819
    }
820
821
    /**
822
     * @param bool|null $isVariantMaster
823
     * @return ProductInterface
824
     */
825
    public function setIsVariantMaster($isVariantMaster)
826
    {
827
        $this->isVariantMaster = $isVariantMaster;
828
        return $this;
829
    }
830
831
    /**
832
     * @return null|string
833
     */
834
    public function getLocationNumber()
835
    {
836
        return $this->locationNumber;
837
    }
838
839
    /**
840
     * @param null|string $locationNumber
841
     * @return ProductInterface
842
     */
843
    public function setLocationNumber($locationNumber)
844
    {
845
        $this->locationNumber = $locationNumber;
846
        return $this;
847
    }
848
849
    /**
850
     * @return array|null
851
     */
852
    public function getManufacturereIdList()
853
    {
854
        return $this->manufacturereIdList;
855
    }
856
857
    /**
858
     * @param array|null $manufacturereIdList
859
     * @return ProductInterface
860
     */
861
    public function setManufacturereIdList($manufacturereIdList)
862
    {
863
        $this->manufacturereIdList = $manufacturereIdList;
864
        return $this;
865
    }
866
867
    /**
868
     * @return int|null
869
     */
870
    public function getMaxBuyAmount()
871
    {
872
        return $this->maxBuyAmount;
873
    }
874
875
    /**
876
     * @param int|null $maxBuyAmount
877
     * @return ProductInterface
878
     */
879
    public function setMaxBuyAmount($maxBuyAmount)
880
    {
881
        $this->maxBuyAmount = $maxBuyAmount;
882
        return $this;
883
    }
884
885
    /**
886
     * @return int|null
887
     */
888
    public function getMinBuyAmount()
889
    {
890
        return $this->minBuyAmount;
891
    }
892
893
    /**
894
     * @param int|null $minBuyAmount
895
     * @return ProductInterface
896
     */
897
    public function setMinBuyAmount($minBuyAmount)
898
    {
899
        $this->minBuyAmount = $minBuyAmount;
900
        return $this;
901
    }
902
903
    /**
904
     * @return int|null
905
     */
906
    public function getMinBuyAmountB2B()
907
    {
908
        return $this->minBuyAmountB2B;
909
    }
910
911
    /**
912
     * @param int|null $minBuyAmountB2B
913
     * @return ProductInterface
914
     */
915
    public function setMinBuyAmountB2B($minBuyAmountB2B)
916
    {
917
        $this->minBuyAmountB2B = $minBuyAmountB2B;
918
        return $this;
919
    }
920
921
    /**
922
     * @return null|string
923
     */
924
    public function getNumber()
925
    {
926
        return $this->number;
927
    }
928
929
    /**
930
     * @param null|string $number
931
     * @return ProductInterface
932
     */
933
    public function setNumber($number)
934
    {
935
        $this->number = $number;
936
        return $this;
937
    }
938
939
    /**
940
     * @return null|string
941
     */
942
    public function getPicture()
943
    {
944
        return $this->picture;
945
    }
946
947
    /**
948
     * @param null|string $picture
949
     * @return ProductInterface
950
     */
951
    public function setPicture($picture)
952
    {
953
        $this->picture = $picture;
954
        return $this;
955
    }
956
957
    /**
958
     * @return int|null
959
     */
960
    public function getSalesCount()
961
    {
962
        return $this->salesCount;
963
    }
964
965
    /**
966
     * @param int|null $salesCount
967
     * @return ProductInterface
968
     */
969
    public function setSalesCount($salesCount)
970
    {
971
        $this->salesCount = $salesCount;
972
        return $this;
973
    }
974
975
    /**
976
     * @return array|null
977
     */
978
    public function getSegmentIdList()
979
    {
980
        return $this->segmentIdList;
981
    }
982
983
    /**
984
     * @param array|null $segmentIdList
985
     * @return ProductInterface
986
     */
987
    public function setSegmentIdList($segmentIdList)
988
    {
989
        $this->segmentIdList = $segmentIdList;
990
        return $this;
991
    }
992
993
    /**
994
     * @return int|null
995
     */
996
    public function getSortOrder()
997
    {
998
        return $this->sortOrder;
999
    }
1000
1001
    /**
1002
     * @param int|null $sortOrder
1003
     * @return ProductInterface
1004
     */
1005
    public function setSortOrder($sortOrder)
1006
    {
1007
        $this->sortOrder = $sortOrder;
1008
        return $this;
1009
    }
1010
1011
    /**
1012
     * @return int|null
1013
     */
1014
    public function getStockCount()
1015
    {
1016
        return $this->stockCount;
1017
    }
1018
1019
    /**
1020
     * @param int|null $stockCount
1021
     * @return ProductInterface
1022
     */
1023
    public function setStockCount($stockCount)
1024
    {
1025
        $this->stockCount = $stockCount;
1026
        return $this;
1027
    }
1028
1029
    /**
1030
     * @return int|null
1031
     */
1032
    public function getStockLimit()
1033
    {
1034
        return $this->stockLimit;
1035
    }
1036
1037
    /**
1038
     * @param int|null $stockLimit
1039
     * @return ProductInterface
1040
     */
1041
    public function setStockLimit($stockLimit)
1042
    {
1043
        $this->stockLimit = $stockLimit;
1044
        return $this;
1045
    }
1046
1047
    /**
1048
     * @return int|null
1049
     */
1050
    public function getTypeId()
1051
    {
1052
        return $this->typeId;
1053
    }
1054
1055
    /**
1056
     * @param int|null $typeId
1057
     * @return ProductInterface
1058
     */
1059
    public function setTypeId($typeId)
1060
    {
1061
        $this->typeId = $typeId;
1062
        return $this;
1063
    }
1064
1065
    /**
1066
     * @return \DateTimeImmutable|null
1067
     */
1068
    public function getUpdated()
1069
    {
1070
        return $this->updated;
1071
    }
1072
1073
    /**
1074
     * @param \DateTimeImmutable|null $updated
1075
     * @return ProductInterface
1076
     */
1077
    public function setUpdated($updated)
1078
    {
1079
        $this->updated = $updated;
1080
        return $this;
1081
    }
1082
1083
    /**
1084
     * @return null|string
1085
     */
1086
    public function getUpdatedBy()
1087
    {
1088
        return $this->updatedBy;
1089
    }
1090
1091
    /**
1092
     * @param null|string $updatedBy
1093
     * @return ProductInterface
1094
     */
1095
    public function setUpdatedBy($updatedBy)
1096
    {
1097
        $this->updatedBy = $updatedBy;
1098
        return $this;
1099
    }
1100
1101
    /**
1102
     * @return array|null
1103
     */
1104
    public function getVariantGroupIdList()
1105
    {
1106
        return $this->variantGroupIdList;
1107
    }
1108
1109
    /**
1110
     * @param array|null $variantGroupIdList
1111
     * @return ProductInterface
1112
     */
1113
    public function setVariantGroupIdList($variantGroupIdList)
1114
    {
1115
        $this->variantGroupIdList = $variantGroupIdList;
1116
        return $this;
1117
    }
1118
1119
    /**
1120
     * @return array|null
1121
     */
1122
    public function getVariantIdList()
1123
    {
1124
        return $this->variantIdList;
1125
    }
1126
1127
    /**
1128
     * @param array|null $variantIdList
1129
     * @return ProductInterface
1130
     */
1131
    public function setVariantIdList($variantIdList)
1132
    {
1133
        $this->variantIdList = $variantIdList;
1134
        return $this;
1135
    }
1136
1137
    /**
1138
     * @return int|null
1139
     */
1140
    public function getVariantMasterId()
1141
    {
1142
        return $this->variantMasterId;
1143
    }
1144
1145
    /**
1146
     * @param int|null $variantMasterId
1147
     * @return ProductInterface
1148
     */
1149
    public function setVariantMasterId($variantMasterId)
1150
    {
1151
        $this->variantMasterId = $variantMasterId;
1152
        return $this;
1153
    }
1154
1155
    /**
1156
     * @return null|string
1157
     */
1158
    public function getVendorNumber()
1159
    {
1160
        return $this->vendorNumber;
1161
    }
1162
1163
    /**
1164
     * @param null|string $vendorNumber
1165
     * @return ProductInterface
1166
     */
1167
    public function setVendorNumber($vendorNumber)
1168
    {
1169
        $this->vendorNumber = $vendorNumber;
1170
        return $this;
1171
    }
1172
1173
    /**
1174
     * @return int|null
1175
     */
1176
    public function getWeight()
1177
    {
1178
        return $this->weight;
1179
    }
1180
1181
    /**
1182
     * @param int|null $weight
1183
     * @return ProductInterface
1184
     */
1185
    public function setWeight($weight)
1186
    {
1187
        $this->weight = $weight;
1188
        return $this;
1189
    }
1190
1191
    /**
1192
     * @return ArrayCollection|Category[]
1193
     */
1194
    public function getCategories()
1195
    {
1196
        return $this->categories;
1197
    }
1198
1199
    /**
1200
     * @param ArrayCollection|Category[] $categories
1201
     * @return ProductInterface
1202
     */
1203
    public function setCategories($categories)
1204
    {
1205
        $this->categories = $categories;
1206
        return $this;
1207
    }
1208
1209
    /**
1210
     * @return ArrayCollection|Variant[]
1211
     */
1212
    public function getDisabledVariants()
1213
    {
1214
        return $this->disabledVariants;
1215
    }
1216
1217
    /**
1218
     * @param ArrayCollection|Variant[] $disabledVariants
1219
     * @return ProductInterface
1220
     */
1221
    public function setDisabledVariants($disabledVariants)
1222
    {
1223
        $this->disabledVariants = $disabledVariants;
1224
        return $this;
1225
    }
1226
1227
    /**
1228
     * @return ArrayCollection|Manufacturer[]
1229
     */
1230
    public function getManufacturers()
1231
    {
1232
        return $this->manufacturers;
1233
    }
1234
1235
    /**
1236
     * @param ArrayCollection|Manufacturer[] $manufacturers
1237
     * @return ProductInterface
1238
     */
1239
    public function setManufacturers($manufacturers)
1240
    {
1241
        $this->manufacturers = $manufacturers;
1242
        return $this;
1243
    }
1244
1245
    /**
1246
     * @return ArrayCollection|Medium[]
1247
     */
1248
    public function getMedia()
1249
    {
1250
        return $this->media;
1251
    }
1252
1253
    /**
1254
     * @param ArrayCollection|Medium[] $media
1255
     * @return ProductInterface
1256
     */
1257
    public function setMedia($media)
1258
    {
1259
        $this->media = $media;
1260
        return $this;
1261
    }
1262
1263
    /**
1264
     * @return ArrayCollection|Price[]
1265
     */
1266
    public function getPrices()
1267
    {
1268
        return $this->prices;
1269
    }
1270
1271
    /**
1272
     * @param ArrayCollection|Price[] $prices
1273
     * @return ProductInterface
1274
     */
1275
    public function setPrices($prices)
1276
    {
1277
        $this->prices = $prices;
1278
        return $this;
1279
    }
1280
1281
    /**
1282
     * @return ArrayCollection|ProductRelation[]
1283
     */
1284
    public function getProductRelations()
1285
    {
1286
        return $this->productRelations;
1287
    }
1288
1289
    /**
1290
     * @param ArrayCollection|ProductRelation[] $productRelations
1291
     * @return ProductInterface
1292
     */
1293
    public function setProductRelations($productRelations)
1294
    {
1295
        $this->productRelations = $productRelations;
1296
        return $this;
1297
    }
1298
1299
    /**
1300
     * @return ProductTypeInterface
1301
     */
1302
    public function getProductType(): ProductTypeInterface
1303
    {
1304
        return $this->productType;
1305
    }
1306
1307
    /**
1308
     * @param ProductType $productType
1309
     * @return ProductInterface
1310
     */
1311
    public function setProductType(ProductType $productType)
1312
    {
1313
        $this->productType = $productType;
1314
        return $this;
1315
    }
1316
1317
    /**
1318
     * @return ArrayCollection|Segment[]
1319
     */
1320
    public function getSegments()
1321
    {
1322
        return $this->segments;
1323
    }
1324
1325
    /**
1326
     * @param ArrayCollection|Segment[] $segments
1327
     * @return ProductInterface
1328
     */
1329
    public function setSegments($segments)
1330
    {
1331
        $this->segments = $segments;
1332
        return $this;
1333
    }
1334
1335
    /**
1336
     * @return ArrayCollection|VariantGroup[]
1337
     */
1338
    public function getVariantGroups()
1339
    {
1340
        return $this->variantGroups;
1341
    }
1342
1343
    /**
1344
     * @param ArrayCollection|VariantGroup[] $variantGroups
1345
     * @return ProductInterface
1346
     */
1347
    public function setVariantGroups($variantGroups)
1348
    {
1349
        $this->variantGroups = $variantGroups;
1350
        return $this;
1351
    }
1352
1353
    /**
1354
     * @return ArrayCollection|Variant[]
1355
     */
1356
    public function getVariants()
1357
    {
1358
        return $this->variants;
1359
    }
1360
1361
    /**
1362
     * @param ArrayCollection|Variant[] $variants
1363
     * @return ProductInterface
1364
     */
1365
    public function setVariants($variants)
1366
    {
1367
        $this->variants = $variants;
1368
        return $this;
1369
    }
1370
}
1371