Backup #706

ID706
Dateipfad/var/www/dev.campus.systemische-tools.de/src/UseCases/Task/GetTasksUseCase.php
Version1
Typ modified
Größe2.1 KB
Hashfcb4e490b98908b2d5c76fc8456635dddc9cc2bda3d1822c05a5f2ee4e7928d5
Datum2025-12-23 07:54:33
Geändert vonclaude-code-hook
GrundClaude Code Pre-Hook Backup vor Edit-Operation
Datei existiert Ja

Dateiinhalt

<?php

namespace UseCases\Task;

use Domain\Entity\Task;
use Infrastructure\Persistence\TaskAssignmentRepository;
use Infrastructure\Persistence\TaskRepository;
use Infrastructure\Persistence\TaskResultRepository;

class GetTasksUseCase
{
    private TaskRepository $taskRepository;
    private TaskAssignmentRepository $assignmentRepository;
    private TaskResultRepository $resultRepository;

    public function __construct(
        ?TaskRepository $taskRepository = null,
        ?TaskAssignmentRepository $assignmentRepository = null,
        ?TaskResultRepository $resultRepository = null
    ) {
        $this->taskRepository = $taskRepository ?? new TaskRepository();
        $this->assignmentRepository = $assignmentRepository ?? new TaskAssignmentRepository();
        $this->resultRepository = $resultRepository ?? new TaskResultRepository();
    }

    public function execute(array $filters = [], int $limit = 50, int $offset = 0): array
    {
        return $this->taskRepository->findAll($filters, $limit, $offset);
    }

    public function findById(int $id): ?Task
    {
        return $this->taskRepository->find($id);
    }

    public function findByUuid(string $uuid): ?Task
    {
        return $this->taskRepository->findByUuid($uuid);
    }

    public function getTaskWithDetails(int $id): ?array
    {
        $task = $this->taskRepository->find($id);

        if ($task === null) {
            return null;
        }

        $assignments = $this->assignmentRepository->findByTaskId($id);
        $results = $this->resultRepository->findByTaskId($id);
        $subtasks = $this->taskRepository->findSubtasks($id);

        return [
            'task' => $task->toArray(),
            'assignments' => array_map(fn ($a) => $a->toArray(), $assignments),
            'results' => array_map(fn ($r) => $r->toArray(), $results),
            'subtasks' => array_map(fn ($t) => $t->toArray(), $subtasks),
        ];
    }

    public function getStatistics(): array
    {
        return $this->taskRepository->getStatistics();
    }

    public function count(array $filters = []): int
    {
        return $this->taskRepository->count($filters);
    }
}

Vollständig herunterladen

Aktionen

Herunterladen

Andere Versionen dieser Datei

ID Version Typ Größe Datum
829 2 modified 2.2 KB 2025-12-23 08:15
706 1 modified 2.1 KB 2025-12-23 07:54

← Zurück zur Übersicht