Files
DosVault/src/libs/objects.py
2025-09-06 13:53:44 -04:00

30 lines
841 B
Python

from dataclasses import dataclass, field
from typing import List, Optional
from pathlib import Path
@dataclass
class Metadata:
title: str = None
description: Optional[str] = None
year: Optional[int] = None
developer: Optional[str] = None
publisher: Optional[str] = None
genre: Optional[List[str]] = field(default_factory=list)
players: Optional[int] = None
cover_image: Optional[str] = None # Remote URL
screenshot: Optional[str] = None # Remote URL
cover_image_path: Optional[Path] = None # Local file path
screenshot_path: Optional[Path] = None # Local file path
tags: Optional[List[str]] = field(default_factory=list)
@dataclass
class Game:
title: str
path: Path
metadata: Metadata|None = None
@dataclass
class Roms:
list: List[Game] = field(default_factory=list)