summaryrefslogtreecommitdiff
path: root/Postman/Postman-Mail/mailgun/vendor/mailgun/mailgun-php/src/Mailgun/Model/Tag/StatisticsResponse.php
blob: 1716a6fd10a02066e88c0bf2f62f352223a1c672 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php

/*
 * Copyright (C) 2013-2016 Mailgun
 *
 * This software may be modified and distributed under the terms
 * of the MIT license. See the LICENSE file for details.
 */

namespace Mailgun\Model\Tag;

use Mailgun\Model\ApiResponse;

/**
 * @author Tobias Nyholm <tobias.nyholm@gmail.com>
 */
final class StatisticsResponse implements ApiResponse
{
    /**
     * @var string
     */
    private $tag;

    /**
     * @var string
     */
    private $description;

    /**
     * @var string
     */
    private $resolution;

    /**
     * @var \DateTime
     */
    private $start;

    /**
     * @var \DateTime
     */
    private $end;

    /**
     * @var array
     */
    private $stats;

    /**
     * @param string    $tag
     * @param string    $description
     * @param \DateTime $start
     * @param \DateTime $end
     * @param string    $resolution
     * @param array     $stats
     */
    private function __construct($tag, $description, \DateTime $start, \DateTime $end, $resolution, array $stats)
    {
        $this->tag = $tag;
        $this->description = $description;
        $this->resolution = $resolution;
        $this->start = $start;
        $this->end = $end;
        $this->stats = $stats;
    }

    /**
     * @param array $data
     *
     * @return StatisticsResponse
     */
    public static function create(array $data)
    {
        return new self(
            $data['tag'],
            $data['description'],
            new \DateTime($data['start']),
            new \DateTime($data['end']),
            $data['resolution'],
            $data['stats']
        );
    }

    /**
     * @return string
     */
    public function getTag()
    {
        return $this->tag;
    }

    /**
     * @return string
     */
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * @return string
     */
    public function getResolution()
    {
        return $this->resolution;
    }

    /**
     * @return \DateTime
     */
    public function getStart()
    {
        return $this->start;
    }

    /**
     * @return \DateTime
     */
    public function getEnd()
    {
        return $this->end;
    }

    /**
     * @return array
     */
    public function getStats()
    {
        return $this->stats;
    }
}