feat: expose winter placements to n8n over an api endpoint

This commit is contained in:
fromme committed 2026-11-06 10:09:56 +01:00
1 parent 4ff963d1e2
commit 0bc77b7463
17 files changed
+977 -18

No files matched your search

+23
View File
@@ -80,6 +80,16 @@ class Disposition implements BlameableEntityInterface, TimestampableEntityInterf
#[ORM\Column(type: Types::BOOLEAN, options: ['default' => false])]
private bool $feedbackWaived = false;
/**
* The numbered place on the assignment this placement fills - the n8n feed's "platz_id" is
* "<assignment id>-<slot>", and n8n hangs the Wechselpass off it. Taken once, here at creation,
* and never renumbered: a replacement takes the number the called-off teamer freed, whoever
* stays keeps theirs. A called-off placement keeps its number for the record but no longer
* holds it (Assignment::getPlaces()).
*/
#[ORM\Column(type: Types::SMALLINT, nullable: true)]
private ?int $slot = null;
public function __construct(Application $application)
{
$this->uuid = Uuid::v4();
@@ -89,6 +99,7 @@ class Disposition implements BlameableEntityInterface, TimestampableEntityInterf
? static::STATUS_CONFIRMED
: static::STATUS_NEW;
$this->assignment = $application->getAssignment();
$this->slot = $this->assignment?->getNextFreeSlot();
$this->teamer = $application->getTeamer();
$this->pickup = $application->getPickup();
$this->specialAgreements = $application->getRequests();
@@ -373,4 +384,16 @@ class Disposition implements BlameableEntityInterface, TimestampableEntityInterf
return $this;
}
public function getSlot(): ?int
{
return $this->slot;
}
public function setSlot(?int $slot): static
{
$this->slot = $slot;
return $this;
}
}