Passed
Push — master ( 03f7d7...c4abfd )
by Christian
11:46 queued 12s
created

NumberRangeDefinition::getEntityName()   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 declare(strict_types=1);
2
3
namespace Shopware\Core\System\NumberRange;
4
5
use Shopware\Core\Framework\DataAbstractionLayer\EntityDefinition;
6
use Shopware\Core\Framework\DataAbstractionLayer\Field\BoolField;
7
use Shopware\Core\Framework\DataAbstractionLayer\Field\FkField;
8
use Shopware\Core\Framework\DataAbstractionLayer\Field\Flag\CascadeDelete;
9
use Shopware\Core\Framework\DataAbstractionLayer\Field\Flag\PrimaryKey;
10
use Shopware\Core\Framework\DataAbstractionLayer\Field\Flag\Required;
11
use Shopware\Core\Framework\DataAbstractionLayer\Field\IdField;
12
use Shopware\Core\Framework\DataAbstractionLayer\Field\IntField;
13
use Shopware\Core\Framework\DataAbstractionLayer\Field\ManyToOneAssociationField;
14
use Shopware\Core\Framework\DataAbstractionLayer\Field\OneToManyAssociationField;
15
use Shopware\Core\Framework\DataAbstractionLayer\Field\OneToOneAssociationField;
16
use Shopware\Core\Framework\DataAbstractionLayer\Field\StringField;
17
use Shopware\Core\Framework\DataAbstractionLayer\Field\TranslatedField;
18
use Shopware\Core\Framework\DataAbstractionLayer\Field\TranslationsAssociationField;
19
use Shopware\Core\Framework\DataAbstractionLayer\FieldCollection;
20
use Shopware\Core\System\NumberRange\Aggregate\NumberRangeSalesChannel\NumberRangeSalesChannelDefinition;
21
use Shopware\Core\System\NumberRange\Aggregate\NumberRangeState\NumberRangeStateDefinition;
22
use Shopware\Core\System\NumberRange\Aggregate\NumberRangeTranslation\NumberRangeTranslationDefinition;
23
use Shopware\Core\System\NumberRange\Aggregate\NumberRangeType\NumberRangeTypeDefinition;
24
25
class NumberRangeDefinition extends EntityDefinition
26
{
27
    public const ENTITY_NAME = 'number_range';
28
29
    public function getEntityName(): string
30
    {
31
        return self::ENTITY_NAME;
32
    }
33
34
    public function getCollectionClass(): string
35
    {
36
        return NumberRangeCollection::class;
37
    }
38
39
    public function getEntityClass(): string
40
    {
41
        return NumberRangeEntity::class;
42
    }
43
44
    public function since(): ?string
45
    {
46
        return '6.0.0.0';
47
    }
48
49
    protected function defineFields(): FieldCollection
50
    {
51
        return new FieldCollection([
52
            (new IdField('id', 'id'))->addFlags(new PrimaryKey(), new Required()),
53
54
            (new FkField('type_id', 'typeId', NumberRangeTypeDefinition::class))->addFlags(new Required()),
55
56
            (new BoolField('global', 'global'))->addFlags(new Required()),
57
            new TranslatedField('name'),
58
            new TranslatedField('description'),
59
            (new StringField('pattern', 'pattern'))->addFlags(new Required()),
60
            (new IntField('start', 'start'))->addFlags(new Required()),
61
            new TranslatedField('customFields'),
62
63
            (new ManyToOneAssociationField('type', 'type_id', NumberRangeTypeDefinition::class)),
64
            (new OneToManyAssociationField('numberRangeSalesChannels', NumberRangeSalesChannelDefinition::class, 'number_range_id'))->addFlags(new CascadeDelete()),
65
            (new OneToOneAssociationField('state', 'id', 'number_range_id', NumberRangeStateDefinition::class, true))->addFlags(new CascadeDelete()),
66
            (new TranslationsAssociationField(NumberRangeTranslationDefinition::class, 'number_range_id'))->addFlags(new Required()),
67
        ]);
68
    }
69
}
70