Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
66.67% covered (warning)
66.67%
12 / 18
66.67% covered (warning)
66.67%
4 / 6
CRAP
0.00% covered (danger)
0.00%
0 / 1
Mailtemplate
66.67% covered (warning)
66.67%
12 / 18
66.67% covered (warning)
66.67%
4 / 6
7.33
0.00% covered (danger)
0.00%
0 / 1
 addConditionName
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 addConditionWithoutProvider
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 addConditionProviderId
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 addConditionId
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 addTemplateContent
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 getEntityMapping
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace BO\Zmsbackend\Mail\Repository;
4
5class Mailtemplate extends \BO\Zmsbackend\Query\Base
6{
7    /**
8     * @var String TABLE mysql table reference
9     */
10    const string TABLE = 'mailtemplate';
11
12    const string QUERY_SELECT = '
13        SELECT * FROM mailtemplate
14    ';
15
16    const string QUERY_SELECT_PROPERTY =
17            'SELECT
18                value
19            FROM mailtemplate
20            WHERE name = ?
21    ';
22
23    const string QUERY_REPLACE_PROPERTY =
24        'REPLACE INTO mailtemplate
25            SET name  = :property, 
26                value = :value
27    ';
28
29    const string QUERY_UPSERT_CUSTOMIZATION = '
30        INSERT INTO mailtemplate (
31            name,
32            value,
33            provider,
34            changeTimestamp
35        ) VALUES (
36            :name,
37            :value,
38            :provider,
39            CURRENT_TIMESTAMP
40        )
41        ON DUPLICATE KEY UPDATE
42            value = VALUES(value),
43            changeTimestamp = CURRENT_TIMESTAMP
44    ';
45
46
47    protected $resolveLevel = 1;
48
49    public function addConditionName($itemName): static
50    {
51        $this->query->where(self::TABLE . '.name', '=', $itemName);
52        return $this;
53    }
54
55    public function addConditionWithoutProvider(): static
56    {
57        $this->query->where(self::TABLE . '.provider', '=', '')->orWhere(self::TABLE . '.provider', 'IS', null);
58        return $this;
59    }
60
61    public function addConditionProviderId($providerId): static
62    {
63        $this->query->where(self::TABLE . '.provider', '=', $providerId);
64        return $this;
65    }
66
67    public function addConditionId($templateId): static
68    {
69        $this->query->where(self::TABLE . '.id', '=', $templateId);
70        return $this;
71    }
72
73    public function addTemplateContent($templateContent): static
74    {
75        $this->query->values(array(
76            'mailtemplate.value' => $templateContent
77        ));
78        return $this;
79    }
80
81    /**
82     * @psalm-api
83     *
84     * @return string[]
85     *
86     */
87    public function getEntityMapping(): array
88    {
89        return [
90            'id' => 'mailtemplate.id',
91            'name' => 'mailtemplate.name',
92            'value' => 'mailtemplate.value',
93            'provider' => 'mailtemplate.provider'
94        ];
95    }
96}