Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
5935 efrain 1
<?php
2
declare(strict_types=1);
3
 
4
namespace LeadersLinked\Mapper;
5
 
6
use LeadersLinked\Mapper\Common\MapperCommon;
7
use Laminas\Db\Adapter\AdapterInterface;
8
use LeadersLinked\Model\KnowledgeAreaCategory;
9
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
10
use LeadersLinked\Model\KnowledgeAreaCategoryUser;
11
 
12
 
13
class KnowledgeAreaCategoryUserMapper extends MapperCommon
14
{
15
    const _TABLE = 'tbl_knowledge_area_category_users';
16
 
17
    /**
18
     *
19
     * @var KnowledgeAreaCategoryUserMapper
20
     */
21
    private static $_instance;
22
 
23
    /**
24
     *
25
     * @param AdapterInterface $adapter
26
     */
27
    private function __construct($adapter)
28
    {
29
        parent::__construct($adapter);
30
    }
31
 
32
    /**
33
     *
34
     * @param AdapterInterface $adapter
35
     * @return KnowledgeAreaCategoryUserMapper
36
     */
37
    public static function getInstance($adapter)
38
    {
39
        if(self::$_instance == null) {
40
            self::$_instance = new KnowledgeAreaCategoryUserMapper($adapter);
41
        }
42
        return self::$_instance;
43
    }
44
 
45
    /**
46
     *
47
     * @param int $category_id
48
     * @param int $user_id
49
     * @return KnowledgeAreaCategoryUser
50
     */
51
    public function fetchOneByCategoryIdAndUserId($category_id, $user_id)
52
    {
53
 
54
        $select = $this->sql->select(self::_TABLE);
55
        $select->where->equalTo('category_id', $category_id);
56
        $select->where->equalTo('user_id', $user_id);
57
 
58
        //echo $select->getSqlString($this->adapter->platform);
59
 
60
        $prototype = new KnowledgeAreaCategoryUser();
61
        return $this->executeFetchOneObject($select, $prototype);
62
    }
63
 
64
 
65
 
66
 
67
 
68
 
69
    /**
70
     *
71
     * @param
72
     * @return KnowledgeAreaCategoryUser[]
73
     */
74
    public function fetchAllByCategoryId($category_id)
75
    {
76
 
77
        $select = $this->sql->select(self::_TABLE);
78
        $select->where->equalTo('category_id', $category_id);
79
 
80
 
81
        $prototype = new KnowledgeAreaCategoryUser();
82
        return $this->executeFetchAllObject($select, $prototype);
83
    }
84
 
85
    /**
86
     *
87
     * @param int $category_id
88
     * @return boolean
89
     */
90
    public function deleteAllByCategoryId($category_id)
91
    {
92
        $delete = $this->sql->delete(self::_TABLE);
93
        $delete->where->equalTo('category_id', $category_id);
94
 
95
        return $this->executeDelete($delete);
96
    }
97
 
98
    /**
99
     *
100
     * @param int $category_id
101
     * @param int $user_id
102
     * @return boolean
103
     */
104
    public function  deleteOneByCategoryIdAndUserId($category_id, $user_id)
105
    {
106
        $delete = $this->sql->delete(self::_TABLE);
107
        $delete->where->equalTo('category_id', $category_id);
108
        $delete->where->equalTo('user_id', $user_id);
109
 
110
        return $this->executeDelete($delete);
111
    }
112
 
113
 
114
    /**
115
     *
116
     * @param int $id
117
     * @return boolean
118
     */
119
    public function  delete($id)
120
    {
121
 
122
        $delete = $this->sql->delete(self::_TABLE);
123
        $delete->where->equalTo('id', $id);
124
 
125
        return $this->executeDelete($delete);
126
    }
127
 
128
    /**
129
     *
130
     * @param KnowledgeAreaCategory $record
131
     * @return boolean
132
     */
133
    public function insert($record) {
134
        $hydrator = new ObjectPropertyHydrator();
135
        $values = $hydrator->extract($record);
136
        $values = $this->removeEmpty($values);
137
 
138
        $insert = $this->sql->insert(self::_TABLE);
139
        $insert->values($values);
140
        $result = $this->executeInsert($insert);
141
        if($result) {
142
            $record->id = $this->lastInsertId;
143
        }
144
 
145
       return $result;
146
    }
147
 
148
 
149
 
150
    /**
151
     *
152
     * @param KnowledgeAreaCategory $record
153
     * @return boolean
154
     */
155
    public function update($record)
156
    {
157
        $hydrator = new ObjectPropertyHydrator();
158
        $values = $hydrator->extract($record);
159
        $values = $this->removeEmpty($values);
160
 
161
        $update = $this->sql->update(self::_TABLE);
162
        $update->set($values);
163
        $update->where->equalTo('id', $record->id);
164
 
165
 
166
        return $this->executeUpdate($update);
167
    }
168
}