Spaces:
No application file
No application file
namespace Mautic\StatsBundle\Aggregate\Collection\Stats; | |
class DayStat implements StatInterface | |
{ | |
/** | |
* @var HourStat[] | |
*/ | |
private array $stats = []; | |
/** | |
* @param string $day "2019-11-07" format | |
*/ | |
public function __construct( | |
private $day | |
) { | |
} | |
/** | |
* @param int $hour | |
* | |
* @return HourStat | |
* | |
* @throws \Exception | |
*/ | |
public function getHour($hour) | |
{ | |
$key = (new \DateTime("{$this->day} $hour:00:00"))->format('Y-m-d H'); | |
if (!isset($this->stats[$key])) { | |
$this->stats[$key] = new HourStat($key); | |
} | |
return $this->stats[$key]; | |
} | |
/** | |
* @return HourStat[] | |
*/ | |
public function getStats() | |
{ | |
return $this->stats; | |
} | |
/** | |
* @return int | |
*/ | |
public function getSum() | |
{ | |
$sum = 0; | |
foreach ($this->stats as $stat) { | |
$sum += $stat->getCount(); | |
} | |
return $sum; | |
} | |
public function getCount(): int | |
{ | |
return count($this->stats); | |
} | |
} | |