adrianbonpin
051c5c22df
feat: add playability calculation API
...
- Auto-calculate playability from benchmark data (FPS, anti-cheat, upscaler dependency)
- Manual override by admins/contributors
- Clear override to revert to auto-calculated
- Three endpoints: /calculate/:gameId, /override/:gameId, /clear-override/:gameId
- Calculation logic: great (≥55 FPS, no upscaler), playable (≥30 FPS), needs_tweaks (≥20 FPS), unplayable (<20 FPS or anti-cheat unsupported)
2026-04-30 19:22:27 +08:00
adrianbonpin
4cfd046953
feat: create saved filters table
2026-04-30 19:16:45 +08:00
adrianbonpin
4c0284ef9e
fix: add onDelete set null to reviewedBy FK
2026-04-30 19:14:45 +08:00
adrianbonpin
4e324fa6e0
feat: create community suggestions table
2026-04-30 19:07:54 +08:00
adrianbonpin
33b0198506
fix: add notNull constraints to playability fields
2026-04-30 19:04:02 +08:00
adrianbonpin
d21e83897f
feat: add playability fields to games and platform support schemas
2026-04-30 18:59:38 +08:00
adrianbonpin
09bf8f64d6
fix: use pgEnum for steamReviewSentiment
2026-04-30 18:50:48 +08:00
adrianbonpin
5dfd8db578
feat: add steam review fields to games schema
2026-04-30 18:46:18 +08:00
adrianbonpin
d79a2605ed
fix: resolve type errors and lint warnings in sync system
2026-04-29 11:46:35 +08:00
adrianbonpin
a4cf2636e7
feat: add image validation and SteamGridDB fallback to game stub creation
2026-04-29 11:36:38 +08:00
adrianbonpin
06e811613d
fix: add bulk sync limit (100), fix N+1 queries, improve route ordering and responses
2026-04-29 11:19:19 +08:00
adrianbonpin
5d388f6f49
feat: add sync API endpoints (single + bulk)
2026-04-29 10:58:21 +08:00
adrianbonpin
3388d3225a
fix: use exponential backoff for sync retry instead of fixed 7-day interval
2026-04-29 10:55:21 +08:00
adrianbonpin
5227b1fd90
feat: enhance sync with error tracking, image validation, and SteamGridDB fallback
2026-04-29 10:44:49 +08:00
adrianbonpin
861ac7dfdc
schema: add sync error tracking columns to games table
2026-04-29 10:33:53 +08:00
adrianbonpin
133a4a9cc2
fix: resolve lint warnings - remove unused imports and fix type annotations
2026-04-29 01:47:11 +08:00
adrianbonpin
7903c9fbbd
Tasks 12-13: Fix release date input to type=date, add sort direction toggle to games page
2026-04-29 01:45:04 +08:00
adrianbonpin
8a063bfb6c
fix: include benchmark games in device filter and exclude soft-deleted entries from search
...
Task 10: Device filter now combines games with platform support entries
AND games with performance entries for the selected hardware, instead of
only checking gamePlatformSupport. This ensures games that have benchmarks
but no explicit platform support entry still appear in filtered results.
Task 11: The benchmark count query (bCounts) in unified search now filters
out soft-deleted performance entries using isRemoved = false. The pCounts
and perfStats queries already had this filter; only bCounts was missing it.
2026-04-29 01:43:37 +08:00
adrianbonpin
b64e55157e
fix: add horizontal scroll to benchmarks table, add hard delete functionality
...
- Wrap table in overflow-x-auto container with min-w-[800px] to prevent overflow on smaller screens
- Add hard delete (purge) button to actions column for each benchmark entry
- Add confirmation dialog for permanent deletion with warning
- Add handleHardDelete handler that calls DELETE /api/admin/performance/:id/hard-delete
- Add DELETE endpoint for hard-deleting performance entries from the database
- Expand confirmAction state type to include 'hardDelete'
2026-04-29 01:38:29 +08:00
adrianbonpin
2101dfef08
feat: compare page with game selector, stats comparison, and charts
2026-04-29 00:45:16 +08:00
adrianbonpin
0f0176ae39
feat: add compare API endpoints for games and presets
2026-04-29 00:36:21 +08:00
adrianbonpin
b8173bd8f8
feat: non-Steam game editing API, createdBy tracking, and source badges in search
2026-04-29 00:16:43 +08:00
adrianbonpin
c6d4e7b3d1
feat: non-Steam game submission wizard with SteamGridDB integration
2026-04-29 00:00:10 +08:00
adrianbonpin
74fe0447ee
feat: add SteamGridDB proxy API for non-Steam game images
2026-04-28 23:36:00 +08:00
adrianbonpin
cc34fd17ef
feat: add pinned presets with admin pin/unpin and dedicated section
2026-04-28 23:32:32 +08:00
adrianbonpin
799bfbbf31
feat: add system requirements, store stats, and pricing to game schema and steam sync
2026-04-28 23:13:08 +08:00
adrianbonpin
7e2ab978e1
feat: add performance tier and stability scatter charts
2026-04-28 23:08:01 +08:00
adrianbonpin
741c19e840
feat: display 1% low FPS in presets, stats API, and game details
2026-04-28 22:56:43 +08:00
adrianbonpin
4d759160db
feat: add 1% low FPS field to benchmark submission wizard
2026-04-28 22:43:46 +08:00
adrianbonpin
943fcff12b
feat: add fps_one_percent_low column to performance entries
2026-04-28 22:39:23 +08:00
adrianbonpin
ab27ba948f
fix: add image fallback chain for missing game covers in search
2026-04-28 22:30:19 +08:00
adrianbonpin
d6a9601591
fix: refactor wizard edit mode to use lazy state init instead of effect setState
2026-04-28 09:51:26 +08:00
adrianbonpin
37c5d87baa
Add admin benchmarks page with search, filter tabs, pagination, verify/remove/restore actions
2026-04-28 08:31:36 +08:00
adrianbonpin
2ab4ac5ebc
feat: add admin comments API route
...
- GET /admin/comments: list all comments with pagination, removed filter, and author search
- PATCH /admin/comments/:id/remove: admin-only soft delete
- PATCH /admin/comments/:id/restore: admin-only restore
2026-04-28 07:55:57 +08:00
adrianbonpin
6d27ec03ab
Task 2: Admin Performance Entries API Route
...
- GET /admin/performance — paginated listing with removed/verified/search filters,
joining games, gameVersions, hardware, and user tables
- PATCH /admin/performance/:id/verify — verify entry (contributor or admin)
- PATCH /admin/performance/:id/remove — soft-delete entry (admin only)
- PATCH /admin/performance/:id/restore — restore entry (admin only)
- Registered route in app/api/[[...slugs]]/route.ts and lib/api/index.ts
2026-04-28 07:52:49 +08:00
adrianbonpin
1108264e4c
feat: add admin reports API route
...
- GET /admin/reports with pagination, status filtering, joins, and batch author name lookup
- PATCH /admin/reports/:id/status to review (soft-delete entry) or dismiss
- Register route in lib/api/index.ts and app/api/[[...slugs]]/route.ts
2026-04-28 07:44:39 +08:00
adrianbonpin
d375112c8e
fix: resolve SQL ambiguity in subquery, remove unused imports, fix lint errors
2026-04-28 02:14:13 +08:00
adrianbonpin
7bcee83d03
feat: add Contact route to navigation
2026-04-28 02:10:28 +08:00
adrianbonpin
b1cdfae6b7
feat: add contact form API with Discord webhook, rate limiting, and anti-bot checks
2026-04-28 02:04:25 +08:00
adrianbonpin
3aa8ecd94f
fix: resolve benchmark sort alias mismatch and prioritize Steam Deck in deckStatus
2026-04-28 01:55:21 +08:00
adrianbonpin
4f1f654024
feat: add games listing API endpoint with search, genre/device filter, and sort
2026-04-28 01:45:13 +08:00
adrianbonpin
f35b6aee1e
feat: transfer admin check to middleware and add vertical padding
2026-04-27 23:47:24 +08:00
adrianbonpin
012ad64a0d
feat: add admin layout with sidebar, auth guard, and navbar link
...
- Admin layout with server-side auth guard (redirects non-admins)
- Reusable sidebar component with active state detection
- Navbar profile dropdown shows admin link for admin users
- Admin routes are noindexed (robots: false)
- /admin redirects to /admin/users
2026-04-27 21:02:28 +08:00
adrianbonpin
ab076a92c8
refactor: remove broken Community Trust chart (TrustBar)
...
- Remove TrustBar component and chart
- Remove trust data from game-stats API response
- Remove trust section from game detail page
- DB columns and vote endpoints preserved for future voting system
2026-04-27 20:41:28 +08:00
adrianbonpin
599cb024c9
fix: exclude null FPS entries from avgFps calculation in device stats API
2026-04-27 20:36:29 +08:00
adrianbonpin
ecd83b1d70
fix: rename device_type enum 'handled' to 'handheld', add image column
2026-04-27 20:33:25 +08:00
adrianbonpin
f228800593
feat: change user-delete to soft delete for performance entries
2026-04-27 15:36:12 +08:00
adrianbonpin
27cd5e3321
feat: add POST /api/performance/:id/report endpoint
2026-04-27 15:34:17 +08:00
adrianbonpin
b94c29da61
feat: add reports table schema for preset reporting
2026-04-27 15:30:51 +08:00
adrianbonpin
07467a4812
refactor: remove communityPresets schema, API, and routes
2026-04-27 14:29:30 +08:00