ContentRepository.php
- Pfad:
src/Infrastructure/Persistence/ContentRepository.php - Namespace: Infrastructure\Persistence
- Zeilen: 186 | Größe: 5,524 Bytes
- Geändert: 2025-12-30 22:22:58 | Gescannt: 2025-12-31 10:22:15
Code Hygiene Score: 75
- Dependencies: 80 (25%)
- LOC: 100 (20%)
- Methods: 0 (20%)
- Secrets: 100 (15%)
- Classes: 100 (10%)
- Magic Numbers: 100 (10%)
Keine Issues gefunden.
Dependencies 9
- implements Domain\Repository\ContentRepositoryInterface
- constructor PDO
- constructor Domain\Repository\ContentOrderRepositoryInterface
- constructor Domain\Repository\ContentVersionRepositoryInterface
- constructor Domain\Repository\ContentSourceRepositoryInterface
- use Domain\Repository\ContentOrderRepositoryInterface
- use Domain\Repository\ContentRepositoryInterface
- use Domain\Repository\ContentSourceRepositoryInterface
- use Domain\Repository\ContentVersionRepositoryInterface
Klassen 1
-
ContentRepositoryclass Zeile 14
Funktionen 20
-
__construct()public Zeile 21 -
findAllOrders()public Zeile 35 -
findOrder()public Zeile 40 -
getLastOrderSettings()public Zeile 45 -
createOrder()public Zeile 50 -
updateOrderStatus()public Zeile 55 -
updateGenerationStatus()public Zeile 60 -
updateCritiqueStatus()public Zeile 65 -
updateOrder()public Zeile 70 -
findVersionsByOrder()public Zeile 75 -
findLatestVersion()public Zeile 80 -
findVersion()public Zeile 85 -
findCritiquesByVersion()public Zeile 90 -
findSourcesByOrder()public Zeile 95 -
findAllProfiles()public Zeile 102 -
findAllContracts()public Zeile 116 -
findAllStructures()public Zeile 130 -
findAllCritics()public Zeile 144 -
findAllSystemPrompts()public Zeile 158 -
getStatistics()public Zeile 172
Verwendet von 1
Versionen 22
-
v22
2025-12-30 22:22 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v21
2025-12-25 16:58 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v20
2025-12-25 16:58 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v19
2025-12-25 16:58 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v18
2025-12-25 10:34 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v17
2025-12-25 10:32 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v16
2025-12-24 01:29 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v15
2025-12-24 00:13 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v14
2025-12-23 08:04 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v13
2025-12-23 04:22 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v12
2025-12-22 08:09 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v11
2025-12-22 08:09 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v10
2025-12-22 08:09 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v9
2025-12-22 08:09 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v8
2025-12-22 01:48 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v7
2025-12-21 17:01 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v6
2025-12-21 02:59 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v5
2025-12-21 02:35 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v4
2025-12-21 02:34 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v3
2025-12-21 02:34 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v2
2025-12-20 19:40 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v1
2025-12-20 17:23 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
Code
<?php
declare(strict_types=1);
namespace Infrastructure\Persistence;
// @responsibility: Persistenz für Content-Konfigurationen
use Domain\Repository\ContentOrderRepositoryInterface;
use Domain\Repository\ContentRepositoryInterface;
use Domain\Repository\ContentSourceRepositoryInterface;
use Domain\Repository\ContentVersionRepositoryInterface;
class ContentRepository implements ContentRepositoryInterface
{
private \PDO $pdo;
private ContentOrderRepositoryInterface $orderRepository;
private ContentVersionRepositoryInterface $versionRepository;
private ContentSourceRepositoryInterface $sourceRepository;
public function __construct(
\PDO $pdo,
ContentOrderRepositoryInterface $orderRepository,
ContentVersionRepositoryInterface $versionRepository,
ContentSourceRepositoryInterface $sourceRepository
) {
$this->pdo = $pdo;
$this->orderRepository = $orderRepository;
$this->versionRepository = $versionRepository;
$this->sourceRepository = $sourceRepository;
}
// ==================== Delegation to specialized repositories ====================
public function findAllOrders(array $filters = [], int $limit = 50, int $offset = 0): array
{
return $this->orderRepository->findAllOrders($filters, $limit, $offset);
}
public function findOrder(int $id): ?array
{
return $this->orderRepository->findOrder($id);
}
public function getLastOrderSettings(): array
{
return $this->orderRepository->getLastOrderSettings();
}
public function createOrder(array $data): int
{
return $this->orderRepository->createOrder($data);
}
public function updateOrderStatus(int $id, string $status): void
{
$this->orderRepository->updateOrderStatus($id, $status);
}
public function updateGenerationStatus(int $id, string $status, ?string $error = null): void
{
$this->orderRepository->updateGenerationStatus($id, $status, $error);
}
public function updateCritiqueStatus(int $id, string $status, ?string $error = null): void
{
$this->orderRepository->updateCritiqueStatus($id, $status, $error);
}
public function updateOrder(int $id, array $data): bool
{
return $this->orderRepository->updateOrder($id, $data);
}
public function findVersionsByOrder(int $orderId): array
{
return $this->versionRepository->findVersionsByOrder($orderId);
}
public function findLatestVersion(int $orderId): ?array
{
return $this->versionRepository->findLatestVersion($orderId);
}
public function findVersion(int $id): ?array
{
return $this->versionRepository->findVersion($id);
}
public function findCritiquesByVersion(int $versionId): array
{
return $this->versionRepository->findCritiquesByVersion($versionId);
}
public function findSourcesByOrder(int $orderId): array
{
return $this->sourceRepository->findSourcesByOrder($orderId);
}
// ==================== Profiles ====================
public function findAllProfiles(): array
{
$stmt = $this->pdo->query("
SELECT id, name, slug, content as config
FROM content_config
WHERE type = 'author_profile' AND status = 'active'
ORDER BY name
");
return $stmt->fetchAll();
}
// ==================== Contracts ====================
public function findAllContracts(): array
{
$stmt = $this->pdo->query("
SELECT id, name, slug, content as config
FROM content_config
WHERE type = 'contract' AND status = 'active'
ORDER BY name
");
return $stmt->fetchAll();
}
// ==================== Structures ====================
public function findAllStructures(): array
{
$stmt = $this->pdo->query("
SELECT id, name, slug, content as config
FROM content_config
WHERE type = 'structure' AND status = 'active'
ORDER BY name
");
return $stmt->fetchAll();
}
// ==================== Critics ====================
public function findAllCritics(): array
{
$stmt = $this->pdo->query("
SELECT id, name, slug, content as config, description
FROM content_config
WHERE type = 'critic' AND status = 'active'
ORDER BY sort_order, name
");
return $stmt->fetchAll();
}
// ==================== System Prompts ====================
public function findAllSystemPrompts(): array
{
$stmt = $this->pdo->query("
SELECT id, name, slug, content as config, description
FROM content_config
WHERE type = 'system_prompt' AND status = 'active'
ORDER BY name
");
return $stmt->fetchAll();
}
// ==================== Statistics ====================
public function getStatistics(): array
{
$orderStats = $this->orderRepository->getStatistics();
// Add version and critique counts
$stmt = $this->pdo->query('SELECT COUNT(*) FROM content_versions');
$orderStats['total_versions'] = (int) $stmt->fetchColumn();
$stmt = $this->pdo->query('SELECT COUNT(*) FROM content_critiques');
$orderStats['total_critiques'] = (int) $stmt->fetchColumn();
return $orderStats;
}
}