63 lines
1.7 KiB
Markdown
63 lines
1.7 KiB
Markdown
# Today Downloads
|
|
|
|
## Route
|
|
|
|
- URL: `GET /downloads/today`
|
|
- Controller: `App\Http\Controllers\User\TodayDownloadsController::index()`
|
|
|
|
## Important scope note
|
|
|
|
This page is not inside `/discover/*`, but it is included here because it is discovery-adjacent and was requested together with the Discover surfaces.
|
|
|
|
## What the page reads
|
|
|
|
This page does not use Meilisearch.
|
|
It is a direct MySQL query over the download event log.
|
|
|
|
## Query logic
|
|
|
|
The controller:
|
|
|
|
1. Takes today's date
|
|
2. Reads `artwork_downloads`
|
|
3. Filters rows to `whereDate(created_at, today)`
|
|
4. Groups by `artwork_id`
|
|
5. Orders by `COUNT(*) DESC`
|
|
6. Eager-loads each artwork and related user/category data
|
|
|
|
Effectively:
|
|
|
|
```text
|
|
SELECT artwork_id, COUNT(*) AS num_downloads
|
|
FROM artwork_downloads
|
|
WHERE DATE(created_at) = today
|
|
GROUP BY artwork_id
|
|
ORDER BY num_downloads DESC
|
|
```
|
|
|
|
Only artworks that are currently public and published are allowed through `whereHas('artwork', ...)`.
|
|
|
|
## Data sources
|
|
|
|
- primary source: `artwork_downloads`
|
|
- supporting source: `artworks`, `users`, `user_profiles`, `categories`
|
|
|
|
Unlike `Most Downloaded`, this page does not trust the aggregate `artwork_stats.downloads` counter for ranking.
|
|
It re-counts today's actual events.
|
|
|
|
## Cache behavior
|
|
|
|
- no dedicated application cache in the controller
|
|
|
|
The page is as fresh as the underlying event log.
|
|
|
|
## Background jobs and schedules
|
|
|
|
No page-specific cron is needed because it reads the raw event log directly.
|
|
|
|
The only prerequisite is that downloads are being recorded correctly by the download endpoint.
|
|
|
|
## Notes
|
|
|
|
- This page is often the more operationally trustworthy answer to "what is being downloaded right now?"
|
|
- Because it counts raw rows, it is less sensitive to delayed aggregate-counter flushes than `Most Downloaded`. |