{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Entity\/Task.php",
"limit": 120
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Entity\/Task.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Domain\\Entity;\n\n\/\/ @responsibility: Task-Entität - Rich Domain Model mit Business-Logik\n\nuse Domain\\ValueObject\\TaskStatus;\nuse Domain\\ValueObject\\TaskType;\n\nclass Task\n{\n private ?int $id = null;\n private string $uuid;\n private string $title;\n private ?string $description = null;\n private TaskType $type;\n private TaskStatus $status;\n private string $createdBy;\n private string $createdByType = 'human';\n private ?int $parentTaskId = null;\n private ?\\DateTimeImmutable $dueDate = null;\n private \\DateTimeImmutable $createdAt;\n private \\DateTimeImmutable $updatedAt;\n private ?\\DateTimeImmutable $completedAt = null;\n private array $metadata = [];\n\n private function __construct()\n {\n $this->uuid = $this->generateUuid();\n $this->status = TaskStatus::PENDING;\n $this->type = TaskType::HUMAN_TASK;\n $this->createdAt = new \\DateTimeImmutable();\n $this->updatedAt = new \\DateTimeImmutable();\n }\n\n public static function create(\n string $title,\n string $createdBy,\n ?string $description = null,\n ?TaskType $type = null,\n ?int $parentTaskId = null,\n ?\\DateTimeImmutable $dueDate = null\n ): self {\n $task = new self();\n $task->title = $title;\n $task->createdBy = $createdBy;\n $task->description = $description;\n\n if ($type !== null) {\n $task->type = $type;\n }\n\n if ($parentTaskId !== null) {\n $task->parentTaskId = $parentTaskId;\n }\n\n if ($dueDate !== null) {\n $task->dueDate = $dueDate;\n }\n\n return $task;\n }\n\n private function generateUuid(): string\n {\n return sprintf(\n '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',\n mt_rand(0, 0xffff),\n mt_rand(0, 0xffff),\n mt_rand(0, 0xffff),\n mt_rand(0, 0x0fff) | 0x4000,\n mt_rand(0, 0x3fff) | 0x8000,\n mt_rand(0, 0xffff),\n mt_rand(0, 0xffff),\n mt_rand(0, 0xffff)\n );\n }\n\n public function getId(): ?int { return $this->id; }\n public function getUuid(): string { return $this->uuid; }\n public function getTitle(): string { return $this->title; }\n public function getDescription(): ?string { return $this->description; }\n public function getType(): TaskType { return $this->type; }\n public function getStatus(): TaskStatus { return $this->status; }\n public function getCreatedBy(): string { return $this->createdBy; }\n public function getCreatedByType(): string { return $this->createdByType; }\n public function getParentTaskId(): ?int { return $this->parentTaskId; }\n public function getDueDate(): ?\\DateTimeImmutable { return $this->dueDate; }\n public function getCreatedAt(): \\DateTimeImmutable { return $this->createdAt; }\n public function getUpdatedAt(): \\DateTimeImmutable { return $this->updatedAt; }\n public function getCompletedAt(): ?\\DateTimeImmutable { return $this->completedAt; }\n public function getMetadata(): array { return $this->metadata; }\n\n public function updateDetails(string $title, ?string $description = null): self\n {\n $this->title = $title;\n $this->description = $description;\n $this->touch();\n return $this;\n }\n\n public function changeType(TaskType $type): self\n {\n $this->type = $type;\n $this->touch();\n return $this;\n }\n\n public function assignParent(int $parentTaskId): self\n {\n $this->parentTaskId = $parentTaskId;\n $this->touch();\n return $this;\n }\n\n public function setDueDateTo(\\DateTimeImmutable $dueDate): self\n {\n $this->dueDate = $dueDate;",
"numLines": 120,
"startLine": 1,
"totalLines": 257
}
}
}