Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
24 / 24
100.00% covered (success)
100.00%
6 / 6
CRAP
100.00% covered (success)
100.00%
1 / 1
RequestRelation
100.00% covered (success)
100.00%
24 / 24
100.00% covered (success)
100.00%
6 / 6
6
100.00% covered (success)
100.00%
1 / 1
 getEntityMapping
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
1
 getReferenceMapping
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
1
 addConditionRequestId
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
 addConditionBookable
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 addConditionSource
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace BO\Zmsdb\Query;
4
5class RequestRelation extends Base implements MappingInterface
6{
7    const TABLE = 'request_provider';
8
9    const ALIAS = 'request_provider';
10
11    #[\Override]
12    public function getEntityMapping()
13    {
14        return [
15            'request__id' => self::TABLE . '.request__id',
16            'provider__id' => self::TABLE . '.provider__id',
17            'source' => self::TABLE . '.source',
18            'slots' => self::TABLE . '.slots',
19            'public' => self::TABLE . '.public_visibility',
20            'maxQuantity' => self::TABLE . '.max_quantity'
21        ];
22    }
23
24    #[\Override]
25    public function getReferenceMapping()
26    {
27        return [
28            'request__$ref' => self::expression(
29                'CONCAT("/request/", `' . self::TABLE . '`.`source`, "/", `' . self::TABLE . '`.`request__id`, "/")'
30            ),
31            'provider__$ref' => self::expression(
32                'CONCAT("/provider/", `' . self::TABLE . '`.`source`, "/", `' . self::TABLE . '`.`provider__id`, "/")'
33            )
34        ];
35    }
36
37    public function addConditionRequestId($requestId)
38    {
39        $this->query->where(self::TABLE . '.request__id', '=', $requestId);
40        return $this;
41    }
42
43    public function addConditionProviderId($providerId)
44    {
45        $this->query->where(self::TABLE . '.provider__id', '=', $providerId);
46        return $this;
47    }
48
49    public function addConditionBookable()
50    {
51        $this->query->where(self::TABLE . '.bookable', '=', 1);
52        return $this;
53    }
54
55    public function addConditionSource($sourceName)
56    {
57        $this->query->where(self::TABLE . '.source', '=', $sourceName);
58        return $this;
59    }
60}