Passed
Push — master ( 4f32ca...21bec9 )
by Christian
12:38 queued 11s
created

LandingPageSalesChannelDefinition   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 11
c 1
b 0
f 0
dl 0
loc 30
rs 10
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getEntityName() 0 3 1
A defineFields() 0 10 1
A isVersionAware() 0 3 1
A since() 0 4 1
1
<?php declare(strict_types=1);
2
3
namespace Shopware\Core\Content\LandingPage\Aggregate\LandingPageSalesChannel;
4
5
use Shopware\Core\Content\LandingPage\LandingPageDefinition;
6
use Shopware\Core\Framework\DataAbstractionLayer\Field\FkField;
7
use Shopware\Core\Framework\DataAbstractionLayer\Field\Flag\PrimaryKey;
8
use Shopware\Core\Framework\DataAbstractionLayer\Field\Flag\Required;
9
use Shopware\Core\Framework\DataAbstractionLayer\Field\ManyToOneAssociationField;
10
use Shopware\Core\Framework\DataAbstractionLayer\Field\ReferenceVersionField;
11
use Shopware\Core\Framework\DataAbstractionLayer\FieldCollection;
12
use Shopware\Core\Framework\DataAbstractionLayer\MappingEntityDefinition;
13
use Shopware\Core\System\SalesChannel\SalesChannelDefinition;
14
15
/**
16
 * @internal (flag:FEATURE_NEXT_12032)
17
 */
18
class LandingPageSalesChannelDefinition extends MappingEntityDefinition
19
{
20
    public const ENTITY_NAME = 'landing_page_sales_channel';
21
22
    public function getEntityName(): string
23
    {
24
        return self::ENTITY_NAME;
25
    }
26
27
    public function isVersionAware(): bool
28
    {
29
        return true;
30
    }
31
32
    public function since(): ?string
33
    {
34
        // May insert correct since-value
35
        return '6.3.5.0';
36
    }
37
38
    protected function defineFields(): FieldCollection
39
    {
40
        return new FieldCollection([
41
            (new FkField('landing_page_id', 'landingPageId', LandingPageDefinition::class))->addFlags(new PrimaryKey(), new Required()),
42
            (new ReferenceVersionField(LandingPageDefinition::class))->addFlags(new PrimaryKey(), new Required()),
43
44
            (new FkField('sales_channel_id', 'salesChannelId', SalesChannelDefinition::class))->addFlags(new PrimaryKey(), new Required()),
45
46
            new ManyToOneAssociationField('landingPage', 'landing_page_id', LandingPageDefinition::class, 'id', false),
47
            new ManyToOneAssociationField('salesChannel', 'sales_channel_id', SalesChannelDefinition::class, 'id', false),
48
        ]);
49
    }
50
}
51