<?php

namespace App\Domain\System\Domain\Model;

readonly class SystemStatus
{
    public function __construct(
        // Mangas
        public int $totalMangas,
        public int $monitoredMangas,
        /** @var array<string, int> */
        public array $mangasByStatus,
        // Chapitres
        public int $totalChapters,
        public int $downloadedChapters,
        // Jobs global
        public int $totalJobs,
        public int $completedJobs,
        public int $failedJobs,
        public int $pendingJobs,
        public int $inProgressJobs,
        // Jobs 24h
        public int $totalJobsLast24h,
        public int $completedJobsLast24h,
        public int $failedJobsLast24h,
        // Jobs 7j
        public int $totalJobsLast7d,
        public int $completedJobsLast7d,
        public int $failedJobsLast7d,
        // Stockage
        public string $storagePath,
        public int $storageTotalBytes,
        public int $storageFreeBytes,
        public int $storageUsedBytes,
        // Sources
        public int $totalSources,
        /** @var array<string, int> */
        public array $sourcesByHealth,
        // Système
        public string $phpVersion,
        public \DateTimeImmutable $generatedAt,
    ) {
    }
}
