TaskAssignment.php
- Pfad:
src/Domain/Entity/TaskAssignment.php - Namespace: Domain\Entity
- Zeilen: 263 | Größe: 6,197 Bytes
- Geändert: 2025-12-28 13:59:16 | Gescannt: 2025-12-31 10:22:15
Code Hygiene Score: 64
- Dependencies: 100 (25%)
- LOC: 18 (20%)
- Methods: 0 (20%)
- Secrets: 100 (15%)
- Classes: 100 (10%)
- Magic Numbers: 100 (10%)
Keine Issues gefunden.
Dependencies 1
- use Domain\ValueObject\AssigneeType
Klassen 1
-
TaskAssignmentclass Zeile 11
Funktionen 30
-
__construct()public Zeile 26 -
getId()public Zeile 32 -
getTaskId()public Zeile 37 -
getAssignee()public Zeile 42 -
getAssigneeType()public Zeile 47 -
getModelName()public Zeile 52 -
getAssignedBy()public Zeile 57 -
getAssignedByType()public Zeile 62 -
getStatus()public Zeile 67 -
getAssignedAt()public Zeile 72 -
getAcceptedAt()public Zeile 77 -
getCompletedAt()public Zeile 82 -
getNotes()public Zeile 87 -
setId()public Zeile 93 -
setTaskId()public Zeile 100 -
setAssignee()public Zeile 107 -
setAssigneeType()public Zeile 114 -
setModelName()public Zeile 122 -
setAssignedBy()public Zeile 129 -
setAssignedByType()public Zeile 136 -
setStatus()public Zeile 143 -
setAcceptedAt()public Zeile 150 -
setCompletedAt()public Zeile 157 -
setNotes()public Zeile 164 -
accept()public Zeile 171 -
start()public Zeile 179 -
complete()public Zeile 186 -
reject()public Zeile 194 -
toArray()public Zeile 201 -
fromArray()public Zeile 219
Verwendet von 3
- AssignTaskUseCase.php use
- TaskAssignmentRepository.php use
- TaskAssignmentRepositoryInterface.php use
Versionen 3
-
v3
2025-12-28 13:59 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v2
2025-12-28 13:58 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v1
2025-12-23 08:07 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
Code
<?php
declare(strict_types=1);
namespace Domain\Entity;
// @responsibility: Task-Zuweisung-Entität (human/AI)
use Domain\ValueObject\AssigneeType;
class TaskAssignment
{
private ?int $id = null;
private int $taskId;
private string $assignee;
private AssigneeType $assigneeType;
private ?string $modelName = null;
private string $assignedBy;
private string $assignedByType = 'human';
private string $status = 'pending';
private \DateTimeImmutable $assignedAt;
private ?\DateTimeImmutable $acceptedAt = null;
private ?\DateTimeImmutable $completedAt = null;
private ?string $notes = null;
public function __construct()
{
$this->assignedAt = new \DateTimeImmutable();
}
// Getters
public function getId(): ?int
{
return $this->id;
}
public function getTaskId(): int
{
return $this->taskId;
}
public function getAssignee(): string
{
return $this->assignee;
}
public function getAssigneeType(): AssigneeType
{
return $this->assigneeType;
}
public function getModelName(): ?string
{
return $this->modelName;
}
public function getAssignedBy(): string
{
return $this->assignedBy;
}
public function getAssignedByType(): string
{
return $this->assignedByType;
}
public function getStatus(): string
{
return $this->status;
}
public function getAssignedAt(): \DateTimeImmutable
{
return $this->assignedAt;
}
public function getAcceptedAt(): ?\DateTimeImmutable
{
return $this->acceptedAt;
}
public function getCompletedAt(): ?\DateTimeImmutable
{
return $this->completedAt;
}
public function getNotes(): ?string
{
return $this->notes;
}
// Setters
public function setId(int $id): self
{
$this->id = $id;
return $this;
}
public function setTaskId(int $taskId): self
{
$this->taskId = $taskId;
return $this;
}
public function setAssignee(string $assignee): self
{
$this->assignee = $assignee;
return $this;
}
public function setAssigneeType(AssigneeType $assigneeType): self
{
$this->assigneeType = $assigneeType;
$this->modelName = $assigneeType->defaultModel();
return $this;
}
public function setModelName(?string $modelName): self
{
$this->modelName = $modelName;
return $this;
}
public function setAssignedBy(string $assignedBy): self
{
$this->assignedBy = $assignedBy;
return $this;
}
public function setAssignedByType(string $assignedByType): self
{
$this->assignedByType = $assignedByType;
return $this;
}
public function setStatus(string $status): self
{
$this->status = $status;
return $this;
}
public function setAcceptedAt(?\DateTimeImmutable $acceptedAt): self
{
$this->acceptedAt = $acceptedAt;
return $this;
}
public function setCompletedAt(?\DateTimeImmutable $completedAt): self
{
$this->completedAt = $completedAt;
return $this;
}
public function setNotes(?string $notes): self
{
$this->notes = $notes;
return $this;
}
public function accept(): self
{
$this->status = 'accepted';
$this->acceptedAt = new \DateTimeImmutable();
return $this;
}
public function start(): self
{
$this->status = 'in_progress';
return $this;
}
public function complete(): self
{
$this->status = 'completed';
$this->completedAt = new \DateTimeImmutable();
return $this;
}
public function reject(): self
{
$this->status = 'rejected';
return $this;
}
public function toArray(): array
{
return [
'id' => $this->id,
'task_id' => $this->taskId,
'assignee' => $this->assignee,
'assignee_type' => $this->assigneeType->value,
'model_name' => $this->modelName,
'assigned_by' => $this->assignedBy,
'assigned_by_type' => $this->assignedByType,
'status' => $this->status,
'assigned_at' => $this->assignedAt->format('Y-m-d H:i:s.u'),
'accepted_at' => $this->acceptedAt?->format('Y-m-d H:i:s.u'),
'completed_at' => $this->completedAt?->format('Y-m-d H:i:s.u'),
'notes' => $this->notes,
];
}
public static function fromArray(array $data): self
{
$assignment = new self();
if (isset($data['id'])) {
$assignment->setId((int) $data['id']);
}
if (isset($data['task_id'])) {
$assignment->setTaskId((int) $data['task_id']);
}
if (isset($data['assignee'])) {
$assignment->setAssignee($data['assignee']);
}
if (isset($data['assignee_type'])) {
$assignment->assigneeType = AssigneeType::from($data['assignee_type']);
}
if (isset($data['model_name'])) {
$assignment->setModelName($data['model_name']);
}
if (isset($data['assigned_by'])) {
$assignment->setAssignedBy($data['assigned_by']);
}
if (isset($data['assigned_by_type'])) {
$assignment->setAssignedByType($data['assigned_by_type']);
}
if (isset($data['status'])) {
$assignment->setStatus($data['status']);
}
if (isset($data['assigned_at'])) {
$assignment->assignedAt = new \DateTimeImmutable($data['assigned_at']);
}
if (isset($data['accepted_at'])) {
$assignment->setAcceptedAt(new \DateTimeImmutable($data['accepted_at']));
}
if (isset($data['completed_at'])) {
$assignment->setCompletedAt(new \DateTimeImmutable($data['completed_at']));
}
if (isset($data['notes'])) {
$assignment->setNotes($data['notes']);
}
return $assignment;
}
}