Passed
Push — master ( cacbf1...74b6c9 )
by
unknown
34:14
created

mapSspAssetTransferToSpySspAssetEntity()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
c 0
b 0
f 0
nc 1
nop 2
dl 0
loc 11
rs 10
1
<?php
2
3
/**
4
 * Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerFeature\Zed\SelfServicePortal\Persistence\Mapper;
9
10
use Generated\Shared\Transfer\CompanyBusinessUnitTransfer;
11
use Generated\Shared\Transfer\CompanyTransfer;
12
use Generated\Shared\Transfer\FileTransfer;
13
use Generated\Shared\Transfer\SspAssetIncludeTransfer;
14
use Generated\Shared\Transfer\SspAssetTransfer;
15
use Generated\Shared\Transfer\SspModelTransfer;
16
use Orm\Zed\SelfServicePortal\Persistence\SpySspAsset;
17
use Spryker\Service\UtilDateTime\UtilDateTimeServiceInterface;
18
19
class SspAssetMapper
20
{
21
    public function __construct(protected UtilDateTimeServiceInterface $utilDateTimeService)
22
    {
23
    }
24
25
    public function mapSspAssetTransferToSpySspAssetEntity(
26
        SspAssetTransfer $sspAssetTransfer,
27
        SpySspAsset $sspAssetEntity
28
    ): SpySspAsset {
29
        $sspAssetEntity->fromArray($sspAssetTransfer->modifiedToArray());
30
31
        $sspAssetEntity->setFkCompanyBusinessUnit($sspAssetTransfer->getCompanyBusinessUnit()?->getIdCompanyBusinessUnit());
32
33
        $sspAssetEntity->setFkImageFile($sspAssetTransfer->getImage()?->getIdFile());
34
35
        return $sspAssetEntity;
36
    }
37
38
    public function mapSpySspAssetEntityToSspAssetTransfer(
39
        SpySspAsset $spySspAssetEntity,
40
        SspAssetTransfer $sspAssetTransfer
41
    ): SspAssetTransfer {
42
        $sspAssetTransfer->fromArray($spySspAssetEntity->toArray(), true);
43
        if ($spySspAssetEntity->getCreatedAt()) {
44
            /**
45
             * @var \DateTime $createdAt
46
             */
47
            $createdAt = $spySspAssetEntity->getCreatedAt();
48
            $sspAssetTransfer->setCreatedDate($createdAt->format('Y-m-d H:i:s'));
49
        }
50
51
        if ($spySspAssetEntity->getFkImageFile()) {
52
            $sspAssetTransfer->setImage(
53
                (new FileTransfer())->setIdFile($spySspAssetEntity->getFkImageFile()),
54
            );
55
        }
56
57
        if ($spySspAssetEntity->getFkCompanyBusinessUnit()) {
58
            $sspAssetTransfer->setCompanyBusinessUnit(
59
                (new CompanyBusinessUnitTransfer())
60
                    ->setIdCompanyBusinessUnit(
61
                        $spySspAssetEntity->getFkCompanyBusinessUnit(),
62
                    )
63
                    ->setFkCompany($spySspAssetEntity->getSpyCompanyBusinessUnit()?->getFkCompany()),
64
            );
65
        }
66
67
        return $sspAssetTransfer;
68
    }
69
70
    public function mapSpySspAssetEntityToSspAssetTransferIncludes(
71
        SpySspAsset $spySspAssetEntity,
72
        SspAssetTransfer $sspAssetTransfer,
73
        SspAssetIncludeTransfer $sspAssetIncludeTransfer
74
    ): SspAssetTransfer {
75
        if ($sspAssetIncludeTransfer->getWithOwnerCompanyBusinessUnit() && $spySspAssetEntity->getSpyCompanyBusinessUnit()) {
76
            /**
77
             * @var \Orm\Zed\CompanyBusinessUnit\Persistence\SpyCompanyBusinessUnit $companyBusinessUnitEntity
78
             */
79
            $companyBusinessUnitEntity = $spySspAssetEntity->getSpyCompanyBusinessUnit();
80
81
            $companyBusinessUnitTransfer = (new CompanyBusinessUnitTransfer())->fromArray($companyBusinessUnitEntity->toArray(), true);
82
83
            if ($companyBusinessUnitEntity->getCompany() !== null) {
84
                $companyTransfer = (new CompanyTransfer())->fromArray($companyBusinessUnitEntity->getCompany()->toArray(), true);
85
                $companyBusinessUnitTransfer->setCompany($companyTransfer);
86
            }
87
88
            $sspAssetTransfer->setCompanyBusinessUnit($companyBusinessUnitTransfer);
89
        }
90
91
        if ($sspAssetIncludeTransfer->getWithSspModels() && $spySspAssetEntity->getSpySspAssetToSspModels()->count()) {
92
            foreach ($spySspAssetEntity->getSpySspAssetToSspModels() as $sspAssetToSspModelEntity) {
93
                $sspAssetTransfer->getSspModels()->append(
94
                    (new SspModelTransfer())->fromArray($sspAssetToSspModelEntity->getSpySspModel()->toArray(), true),
95
                );
96
            }
97
        }
98
99
        return $sspAssetTransfer;
100
    }
101
}
102