From fe7d9bbcd68660a59b813346c236b61b25a51c80 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Thu, 11 May 2023 12:53:32 +0200 Subject: Typed view model classes (#5380) * Typed view model classes * Add ability to provide a typed view model class to a controller * Use `::class` instead of string for referring to classes * Examplified with `stats` and `javascript` controllers / views (more to do) * Also useful for extensions (my usecase today), which did not have the ability to define own view model attributes before. * Typo --- app/Models/ViewStats.php | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 app/Models/ViewStats.php (limited to 'app/Models/ViewStats.php') diff --git a/app/Models/ViewStats.php b/app/Models/ViewStats.php new file mode 100644 index 000000000..03e0bc00d --- /dev/null +++ b/app/Models/ViewStats.php @@ -0,0 +1,55 @@ + */ + public $categories; + /** @var FreshRSS_Feed|null */ + public $feed; + /** @var array */ + public $feeds; + /** @var bool */ + public $displaySlider; + + /** @var float */ + public $average; + /** @var float */ + public $averageDayOfWeek; + /** @var float */ + public $averageHour; + /** @var float */ + public $averageMonth; + /** @var array */ + public $days; + /** @var array> */ + public $entryByCategory; + /** @var array */ + public $entryCount; + /** @var array> */ + public $feedByCategory; + /** @var array */ + public $hours24Labels; + /** @var array>> */ + public $idleFeeds; + /** @var array */ + public $last30DaysLabel; + /** @var array */ + public $last30DaysLabels; + /** @var array */ + public $months; + /** @var array{'total':int,'count_unreads':int,'count_reads':int,'count_favorites':int}|false */ + public $repartition; + /** @var array{'main_stream':array{'total':int,'count_unreads':int,'count_reads':int,'count_favorites':int}|false,'all_feeds':array{'total':int,'count_unreads':int,'count_reads':int,'count_favorites':int}|false} */ + public $repartitions; + /** @var array */ + public $repartitionDayOfWeek; + /** @var array|array */ + public $repartitionHour; + /** @var array */ + public $repartitionMonth; + /** @var array */ + public $topFeed; + +} -- cgit v1.2.3