33 lines
634 B
PHP
33 lines
634 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Drupal\opd_daily_emails;
|
|
|
|
use Drupal\node\NodeInterface;
|
|
use Webmozart\Assert\Assert;
|
|
|
|
final class DailyEmails implements \Countable {
|
|
|
|
/**
|
|
* @param array<positive-int, NodeInterface> $emails
|
|
*/
|
|
private function __construct(
|
|
private array $emails,
|
|
) {
|
|
Assert::allIsInstanceOf($emails, NodeInterface::class);
|
|
}
|
|
|
|
public function count(): int {
|
|
return count($this->emails);
|
|
}
|
|
|
|
public function first(): NodeInterface {
|
|
return array_values($this->emails)[0];
|
|
}
|
|
|
|
public static function fromEmails(array $emails): self {
|
|
return new self($emails);
|
|
}
|
|
|
|
}
|