- Move 12 markdown files from root to docs/ subdirectories - Organize documentation by category: • docs/troubleshooting/ (1 file) - Technical troubleshooting guides • docs/deployment/ (4 files) - Deployment and security documentation • docs/guides/ (3 files) - Feature-specific guides • docs/planning/ (4 files) - Planning and improvement proposals Root directory cleanup: - Reduced from 16 to 4 markdown files in root - Only essential project files remain: • CLAUDE.md (AI instructions) • README.md (Main project readme) • CLEANUP_PLAN.md (Current cleanup plan) • SRC_STRUCTURE_IMPROVEMENTS.md (Structure improvements) This improves: ✅ Documentation discoverability ✅ Logical organization by purpose ✅ Clean root directory ✅ Better maintainability
33 lines
967 B
PHP
33 lines
967 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Framework\Console\Analytics\Repository;
|
|
|
|
use App\Framework\Console\Analytics\ValueObjects\CommandUsageMetric;
|
|
use App\Framework\Console\Analytics\ValueObjects\Period;
|
|
use App\Framework\Console\Analytics\ValueObjects\UsageStatistics;
|
|
use DateTimeImmutable;
|
|
|
|
interface CommandUsageRepository
|
|
{
|
|
public function store(CommandUsageMetric $metric): void;
|
|
|
|
public function storeMultiple(CommandUsageMetric ...$metrics): void;
|
|
|
|
public function getUsageStatistics(string $commandName, ?DateTimeImmutable $since = null): UsageStatistics;
|
|
|
|
public function getPopularCommands(int $limit = 10, ?DateTimeImmutable $since = null): array;
|
|
|
|
public function getTrendData(
|
|
string $commandName,
|
|
Period $period,
|
|
DateTimeImmutable $start,
|
|
DateTimeImmutable $end
|
|
): array;
|
|
|
|
public function getAllCommandNames(): array;
|
|
|
|
public function cleanup(DateTimeImmutable $before): int;
|
|
}
|