Issues (3627)

app/bundles/AssetBundle/Entity/Download.php (1 issue)

1
<?php
2
3
/*
4
 * @copyright   2014 Mautic Contributors. All rights reserved
5
 * @author      Mautic
6
 *
7
 * @link        http://mautic.org
8
 *
9
 * @license     GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
10
 */
11
12
namespace Mautic\AssetBundle\Entity;
13
14
use Doctrine\ORM\Mapping as ORM;
15
use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder;
16
use Mautic\EmailBundle\Entity\Email;
17
18
/**
19
 * Class Download.
20
 */
21
class Download
22
{
23
    /**
24
     * @var int
25
     */
26
    private $id;
27
28
    /**
29
     * @var \DateTime
30
     */
31
    private $dateDownload;
32
33
    /**
34
     * @var Asset
35
     */
36
    private $asset;
37
38
    /**
39
     * @var \Mautic\CoreBundle\Entity\IpAddress
40
     */
41
    private $ipAddress;
42
43
    /**
44
     * @var \Mautic\LeadBundle\Entity\Lead
45
     */
46
    private $lead;
47
48
    /**
49
     * @var string
50
     */
51
    private $code;
52
53
    /**
54
     * @var string
55
     */
56
    private $referer;
57
58
    /**
59
     * @var string
60
     */
61
    private $trackingId;
62
63
    /**
64
     * @var string
65
     */
66
    private $source;
67
68
    /**
69
     * @var string
70
     */
71
    private $sourceId;
72
73
    /**
74
     * @var \Mautic\EmailBundle\Entity\Email
75
     */
76
    private $email;
77
78
    public static function loadMetadata(ORM\ClassMetadata $metadata)
79
    {
80
        $builder = new ClassMetadataBuilder($metadata);
81
82
        $builder->setTable('asset_downloads')
83
            ->setCustomRepositoryClass('Mautic\AssetBundle\Entity\DownloadRepository')
84
            ->addIndex(['tracking_id'], 'download_tracking_search')
85
            ->addIndex(['source', 'source_id'], 'download_source_search')
86
            ->addIndex(['date_download'], 'asset_date_download');
87
88
        $builder->addBigIntIdField();
89
90
        $builder->createField('dateDownload', 'datetime')
91
            ->columnName('date_download')
92
            ->build();
93
94
        $builder->createManyToOne('asset', 'Asset')
95
            ->addJoinColumn('asset_id', 'id', true, false, 'CASCADE')
96
            ->build();
97
98
        $builder->addIpAddress();
99
100
        $builder->addLead(true, 'SET NULL');
0 ignored issues
show
Deprecated Code introduced by
The function Mautic\CoreBundle\Doctri...adataBuilder::addLead() has been deprecated: Use addContact instead; existing implementations will need a migration to rename lead_id to contact_id ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

100
        /** @scrutinizer ignore-deprecated */ $builder->addLead(true, 'SET NULL');

This function has been deprecated. The supplier of the function has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the function will be removed and what other function to use instead.

Loading history...
101
102
        $builder->addField('code', 'integer');
103
104
        $builder->createField('referer', 'text')
105
            ->nullable()
106
            ->build();
107
108
        $builder->createField('trackingId', 'string')
109
            ->columnName('tracking_id')
110
            ->build();
111
112
        $builder->createField('source', 'string')
113
            ->nullable()
114
            ->build();
115
116
        $builder->createField('sourceId', 'integer')
117
            ->columnName('source_id')
118
            ->nullable()
119
            ->build();
120
121
        $builder->createManyToOne('email', 'Mautic\EmailBundle\Entity\Email')
122
            ->addJoinColumn('email_id', 'id', true, false, 'SET NULL')
123
            ->build();
124
    }
125
126
    /**
127
     * Get id.
128
     *
129
     * @return int
130
     */
131
    public function getId()
132
    {
133
        return $this->id;
134
    }
135
136
    /**
137
     * Set dateDownload.
138
     *
139
     * @param \DateTime $dateDownload
140
     *
141
     * @return Download
142
     */
143
    public function setDateDownload($dateDownload)
144
    {
145
        $this->dateDownload = $dateDownload;
146
147
        return $this;
148
    }
149
150
    /**
151
     * Get dateDownload.
152
     *
153
     * @return \DateTime
154
     */
155
    public function getDateDownload()
156
    {
157
        return $this->dateDownload;
158
    }
159
160
    /**
161
     * Set code.
162
     *
163
     * @param int $code
164
     *
165
     * @return Download
166
     */
167
    public function setCode($code)
168
    {
169
        $this->code = $code;
170
171
        return $this;
172
    }
173
174
    /**
175
     * Get code.
176
     *
177
     * @return int
178
     */
179
    public function getCode()
180
    {
181
        return $this->code;
182
    }
183
184
    /**
185
     * Set referer.
186
     *
187
     * @param string $referer
188
     *
189
     * @return Download
190
     */
191
    public function setReferer($referer)
192
    {
193
        $this->referer = $referer;
194
195
        return $this;
196
    }
197
198
    /**
199
     * Get referer.
200
     *
201
     * @return string
202
     */
203
    public function getReferer()
204
    {
205
        return $this->referer;
206
    }
207
208
    /**
209
     * Set asset.
210
     *
211
     * @param Asset $asset
212
     *
213
     * @return Download
214
     */
215
    public function setAsset(Asset $asset = null)
216
    {
217
        $this->asset = $asset;
218
219
        return $this;
220
    }
221
222
    /**
223
     * Get asset.
224
     *
225
     * @return Asset
226
     */
227
    public function getAsset()
228
    {
229
        return $this->asset;
230
    }
231
232
    /**
233
     * Set ipAddress.
234
     *
235
     * @return Download
236
     */
237
    public function setIpAddress(\Mautic\CoreBundle\Entity\IpAddress $ipAddress)
238
    {
239
        $this->ipAddress = $ipAddress;
240
241
        return $this;
242
    }
243
244
    /**
245
     * Get ipAddress.
246
     *
247
     * @return \Mautic\CoreBundle\Entity\IpAddress
248
     */
249
    public function getIpAddress()
250
    {
251
        return $this->ipAddress;
252
    }
253
254
    /**
255
     * Set trackingId.
256
     *
257
     * @param int $trackingId
258
     *
259
     * @return Download
260
     */
261
    public function setTrackingId($trackingId)
262
    {
263
        $this->trackingId = $trackingId;
264
265
        return $this;
266
    }
267
268
    /**
269
     * Get trackingId.
270
     *
271
     * @return int
272
     */
273
    public function getTrackingId()
274
    {
275
        return $this->trackingId;
276
    }
277
278
    /**
279
     * @return mixed
280
     */
281
    public function getLead()
282
    {
283
        return $this->lead;
284
    }
285
286
    /**
287
     * @param mixed $lead
288
     */
289
    public function setLead($lead)
290
    {
291
        $this->lead = $lead;
292
    }
293
294
    /**
295
     * @return mixed
296
     */
297
    public function getSource()
298
    {
299
        return $this->source;
300
    }
301
302
    /**
303
     * @param mixed $source
304
     */
305
    public function setSource($source)
306
    {
307
        $this->source = $source;
308
    }
309
310
    /**
311
     * @return int
312
     */
313
    public function getSourceId()
314
    {
315
        return $this->sourceId;
316
    }
317
318
    /**
319
     * @param mixed $sourceId
320
     */
321
    public function setSourceId($sourceId)
322
    {
323
        $this->sourceId = (int) $sourceId;
324
    }
325
326
    /**
327
     * @return mixed
328
     */
329
    public function getEmail()
330
    {
331
        return $this->email;
332
    }
333
334
    /**
335
     * @param mixed $email
336
     */
337
    public function setEmail(Email $email)
338
    {
339
        $this->email = $email;
340
    }
341
}
342