Completed
Push — master ( ad1942...52091d )
by Joachim
15:28
created

Product::getIsRateVariants()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
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 View Code Duplication
    public function hydrate(array $data, bool $useConversions = false, $scalarsOnly = true)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
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