DataImportConfig   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 104
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 4
eloc 47
dl 0
loc 104
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getReadCollectionBatchSize() 0 3 1
A getDefaultYamlConfigPath() 0 5 2
A getFullImportTypes() 0 7 1
1
<?php
2
3
/**
4
 * This file is part of the Spryker Commerce OS.
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
declare(strict_types = 1);
9
10
namespace Pyz\Zed\DataImport;
11
12
use Spryker\Zed\DataImport\DataImportConfig as SprykerDataImportConfig;
13
use Spryker\Zed\StockAddressDataImport\StockAddressDataImportConfig;
14
15
/**
16
 * @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
17
 */
18
class DataImportConfig extends SprykerDataImportConfig
19
{
20
    public const IMPORT_TYPE_CATEGORY_TEMPLATE = 'category-template';
21
22
    public const IMPORT_TYPE_CUSTOMER = 'customer';
23
24
    public const IMPORT_TYPE_GLOSSARY = 'glossary';
25
26
    public const IMPORT_TYPE_NAVIGATION = 'navigation';
27
28
    public const IMPORT_TYPE_NAVIGATION_NODE = 'navigation-node';
29
30
    public const IMPORT_TYPE_PRODUCT_PRICE = 'product-price';
31
32
    public const IMPORT_TYPE_PRODUCT_STOCK = 'product-stock';
33
34
    public const IMPORT_TYPE_PRODUCT_ABSTRACT = 'product-abstract';
35
36
    public const IMPORT_TYPE_PRODUCT_ABSTRACT_STORE = 'product-abstract-store';
37
38
    public const IMPORT_TYPE_PRODUCT_CONCRETE = 'product-concrete';
39
40
    public const IMPORT_TYPE_PRODUCT_ATTRIBUTE_KEY = 'product-attribute-key';
41
42
    public const IMPORT_TYPE_PRODUCT_MANAGEMENT_ATTRIBUTE = 'product-management-attribute';
43
44
    public const IMPORT_TYPE_PRODUCT_REVIEW = 'product-review';
45
46
    public const IMPORT_TYPE_PRODUCT_SET = 'product-set';
47
48
    public const IMPORT_TYPE_PRODUCT_GROUP = 'product-group';
49
50
    public const IMPORT_TYPE_PRODUCT_OPTION = 'product-option';
51
52
    public const IMPORT_TYPE_PRODUCT_OPTION_PRICE = 'product-option-price';
53
54
    public const IMPORT_TYPE_PRODUCT_IMAGE = 'product-image';
55
56
    public const IMPORT_TYPE_PRODUCT_SEARCH_ATTRIBUTE_MAP = 'product-search-attribute-map';
57
58
    public const IMPORT_TYPE_PRODUCT_SEARCH_ATTRIBUTE = 'product-search-attribute';
59
60
    public const IMPORT_TYPE_CMS_TEMPLATE = 'cms-template';
61
62
    public const IMPORT_TYPE_CMS_BLOCK = 'cms-block';
63
64
    public const IMPORT_TYPE_CMS_BLOCK_STORE = 'cms-block-store';
65
66
    public const IMPORT_TYPE_DISCOUNT = 'discount';
67
68
    public const IMPORT_TYPE_DISCOUNT_STORE = 'discount-store';
69
70
    public const IMPORT_TYPE_DISCOUNT_AMOUNT = 'discount-amount';
71
72
    public const IMPORT_TYPE_DISCOUNT_VOUCHER = 'discount-voucher';
73
74
    public const IMPORT_TYPE_SHIPMENT = 'shipment';
75
76
    public const IMPORT_TYPE_SHIPMENT_PRICE = 'shipment-price';
77
78
    public const IMPORT_TYPE_TAX = 'tax';
79
80
    public const IMPORT_TYPE_CURRENCY = 'currency';
81
82
    public const IMPORT_TYPE_STORE = 'store';
83
84
    public const IMPORT_TYPE_COMBINED_PRODUCT_ABSTRACT = 'combined-product-abstract';
85
86
    public const IMPORT_TYPE_COMBINED_PRODUCT_ABSTRACT_STORE = 'combined-product-abstract-store';
87
88
    public const IMPORT_TYPE_COMBINED_PRODUCT_CONCRETE = 'combined-product-concrete';
89
90
    public const IMPORT_TYPE_COMBINED_PRODUCT_IMAGE = 'combined-product-image';
91
92
    public const IMPORT_TYPE_COMBINED_PRODUCT_PRICE = 'combined-product-price';
93
94
    public const IMPORT_TYPE_COMBINED_PRODUCT_STOCK = 'combined-product-stock';
95
96
    public const IMPORT_TYPE_COMBINED_PRODUCT_GROUP = 'combined-product-group';
97
98
    protected const READ_COLLECTION_BATCH_SIZE = 500;
99
100
    public function getDefaultYamlConfigPath(): ?string
101
    {
102
        $regionDir = defined('APPLICATION_REGION') ? APPLICATION_REGION : 'EU';
103
104
        return APPLICATION_ROOT_DIR . DIRECTORY_SEPARATOR . 'data/import/local/full_' . $regionDir . '.yml';
105
    }
106
107
    /**
108
     * @return array<string>
109
     */
110
    public function getFullImportTypes(): array
111
    {
112
        $customImportTypes = [
113
            StockAddressDataImportConfig::IMPORT_TYPE_STOCK_ADDRESS,
114
        ];
115
116
        return array_merge(parent::getFullImportTypes(), $customImportTypes);
117
    }
118
119
    public function getReadCollectionBatchSize(): int
120
    {
121
        return static::READ_COLLECTION_BATCH_SIZE;
122
    }
123
}
124