{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Infrastructure\/Persistence\/TaskCommentRepository.php",
"limit": 50
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Infrastructure\/Persistence\/ContractRepository.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Infrastructure\\Persistence;\n\n\/\/ @responsibility: Persistenz für Contracts (YAML-Inhalte, Validierungen)\n\nuse PDO;\n\nclass ContractRepository\n{\n private PDO $pdo;\n\n public function __construct(PDO $pdo)\n {\n $this->pdo = $pdo;\n }\n\n public function findAll(array $filters = [], int $limit = 50): array\n {\n $sql = 'SELECT * FROM contracts WHERE 1=1';\n $params = [];\n\n if (isset($filters['status']) && $filters['status'] !== '') {\n $sql .= ' AND status = :status';\n $params['status'] = $filters['status'];\n }\n\n if (isset($filters['search']) && $filters['search'] !== '') {\n $sql .= ' AND (name LIKE :search OR scope_description LIKE :search2)';\n $params['search'] = '%' . $filters['search'] . '%';\n $params['search2'] = '%' . $filters['search'] . '%';\n }\n\n $sql .= ' ORDER BY name ASC, version DESC LIMIT :limit';\n\n $stmt = $this->pdo->prepare($sql);\n foreach ($params as $key => $value) {\n $stmt->bindValue(':' . $key, $value);\n }\n $stmt->bindValue(':limit', $limit, PDO::PARAM_INT);\n $stmt->execute();\n\n return $stmt->fetchAll(PDO::FETCH_ASSOC);\n }\n\n public function findById(int $id): ?array\n {\n $stmt = $this->pdo->prepare('SELECT * FROM contracts WHERE id = :id');",
"numLines": 50,
"startLine": 1,
"totalLines": 266
}
}
}