oliverdavies.uk/modules/opd_presentations/src/PresentationBuilder.php

40 lines
764 B
PHP

<?php
declare(strict_types=1);
namespace Drupal\opd_presentations;
final class PresentationBuilder {
public function __construct(
private string $title,
private array $events = [],
private bool $isPublished = TRUE,
) {
}
public function build(): Presentation {
return Presentation::create([
'field_events' => $this->events,
'status' => $this->isPublished,
'title' => $this->title,
]);
}
public function setEvents(array $events): self {
$this->events = $events;
return $this;
}
public function setPublished(bool $isPublished = TRUE): self {
$this->isPublished = $isPublished;
return $this;
}
public static function create(string $title): self {
return new self($title);
}
}