Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 53
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
Authority
0.00% covered (danger)
0.00%
0 / 53
0.00% covered (danger)
0.00%
0 / 5
90
0.00% covered (danger)
0.00%
0 / 1
 setupMapping
0.00% covered (danger)
0.00%
0 / 32
0.00% covered (danger)
0.00%
0 / 1
2
 preSetupFields
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 preSetup
0.00% covered (danger)
0.00%
0 / 10
0.00% covered (danger)
0.00%
0 / 1
12
 deleteEntity
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
6
 clearEntity
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3namespace BO\Zmsdldb\Importer\MySQL\Entity;
4
5class Authority extends Base
6{
7    protected $fieldMapping = [
8        'id' => 'id',
9        'name' => 'name',
10        'parent_id' => 'parent_id',
11        'meta.locale' => 'locale',
12        'locations' => 'locations_json',
13        'relation' => 'relation_json',
14        'contact' => 'contact_json',
15        '__RAW__' => 'data_json'
16    ];
17
18    #[\Override]
19    protected function setupMapping()
20    {
21        $this->referanceMapping = [
22            'meta' => [
23                'class' => 'BO\\Zmsdldb\\Importer\\MySQL\\Entity\\Meta',
24                'neededFields' => [
25                    'id' => 'object_id',
26                    'meta.locale' => 'locale'
27                ],
28                'addFields' => [
29                    'type' => static::getTableName()
30                ],
31                'deleteFields' => [
32                    'object_id' => $this->get('id'),
33                    'locale' => $this->get('meta.locale'),
34                    'type' => static::getTableName()
35                ],
36                'clearFields' => ['type' => static::getTableName(), 'locale' => $this->get('meta.locale')],
37                'multiple' => false
38            ],
39            'locations' => [
40                'class' => 'BO\\Zmsdldb\\Importer\\MySQL\\Entity\\AuthorityLocation',
41                'neededFields' => ['id' => 'authority_id', 'meta.locale' => 'locale'],
42                'addFields' => [
43
44                ],
45                'deleteFields' => [
46                    'authority_id' => $this->get('id'),
47                    'locale' => $this->get('meta.locale')
48                ],
49                'clearFields' => [
50                    'locale' => $this->get('meta.locale')
51                ]
52            ],
53        ];
54    }
55
56    #[\Override]
57    public function preSetupFields()
58    {
59        $this->dataRaw['parent_id'] = ($this->dataRaw['parent_id'] ?? 0);
60    }
61
62    #[\Override]
63    public function preSetup()
64    {
65        try {
66            $fields = $this->get(['id', 'meta.locale', 'meta.hash']);
67            $fields[] = static::getTableName();
68            $this->setStatus(static::STATUS_OLD);
69            if ($this->itemNeedsUpdate(...array_values($fields))) {
70                $this->setStatus(static::STATUS_NEW);
71                $this->setupFields();
72                $this->deleteEntity();
73                $this->deleteReferences();
74            }
75        } catch (\Exception $e) {
76            throw $e;
77        }
78    }
79
80    #[\Override]
81    public function deleteEntity(): bool
82    {
83        try {
84            return $this->deleteWith(
85                array_combine(['id', 'locale'], array_values($this->get(['id', 'meta.locale'])))
86            );
87        } catch (\Exception $e) {
88            throw $e;
89        }
90    }
91
92    #[\Override]
93    public function clearEntity(array $addWhere = []): bool
94    {
95        try {
96            return $this->deleteWith(
97                ['locale' => $this->get('meta.locale')]
98            );
99        } catch (\Exception $e) {
100            throw $e;
101        }
102    }
103}