add series grouping, cover upload, and multi-zip download to games library
- Series grouping: a top-level folder with no .zip but game subfolders is now treated as a GameSeries. Clicking a series drills into it with a breadcrumb; a game-count badge distinguishes series cards from game cards. Series fall back to the first game's cover when no series-level cover exists. - Cover upload: new POST /api/game-cover endpoint writes cover.jpg or widecover.jpg directly into the game/series folder (re-encoded via sharp). A kebab menu on GameDetailModal opens an Edit Images panel showing previews and upload/replace buttons for both cover and wide cover. - Multi-zip download: Game.zipFiles replaces zipPath and includes all .zip files in the folder. A single zip shows the existing download button; multiple zips render a split button — primary action downloads the first file, a dropdown arrow lists all files by name. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -13,7 +13,15 @@ export interface Game {
|
||||
title: string
|
||||
coverUrl: string | null
|
||||
wideCoverUrl: string | null
|
||||
zipPath: string
|
||||
zipFiles: string[]
|
||||
}
|
||||
|
||||
export interface GameSeries {
|
||||
id: string
|
||||
title: string
|
||||
coverUrl: string | null
|
||||
wideCoverUrl: string | null
|
||||
games: Game[]
|
||||
}
|
||||
|
||||
export type MediaType = 'video' | 'image' | 'other'
|
||||
|
||||
Reference in New Issue
Block a user