40 lines
764 B
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);
|
|
}
|
|
|
|
}
|