Files
piratepoet/lib/Models/StatisticsNewsletters.php
Jan Lysý 09c2ce653c Fix code style by updated ruleset
[MAILPOET-3912]
2022-01-13 09:23:55 +01:00

56 lines
1.6 KiB
PHP

<?php
namespace MailPoet\Models;
/**
* @property string|null $sentAt
*/
class StatisticsNewsletters extends Model {
public static $_table = MP_STATISTICS_NEWSLETTERS_TABLE; // phpcs:ignore PSR2.Classes.PropertyDeclaration
public static function createMultiple(array $data) {
$values = [];
foreach ($data as $value) {
if (
!empty($value['newsletter_id']) &&
!empty($value['subscriber_id']) &&
!empty($value['queue_id'])
) {
$values[] = $value['newsletter_id'];
$values[] = $value['subscriber_id'];
$values[] = $value['queue_id'];
}
}
if (!count($values)) return false;
return self::rawExecute(
'INSERT INTO `' . self::$_table . '` ' .
'(newsletter_id, subscriber_id, queue_id) ' .
'VALUES ' . rtrim(
str_repeat('(?,?,?), ', (int)(count($values) / 3)),
', '
),
$values
);
}
public static function getAllForSubscriber(Subscriber $subscriber) {
return static::tableAlias('statistics')
->select('statistics.newsletter_id', 'newsletter_id')
->select('newsletter_rendered_subject')
->select('opens.created_at', 'opened_at')
->select('sent_at')
->join(
SendingQueue::$_table,
['statistics.queue_id', '=', 'queue.id'],
'queue'
)
->leftOuterJoin(
StatisticsOpens::$_table,
'statistics.newsletter_id = opens.newsletter_id AND statistics.subscriber_id = opens.subscriber_id',
'opens'
)
->where('statistics.subscriber_id', $subscriber->id())
->orderByAsc('newsletter_id');
}
}