diff --git a/backend/alembic/versions/0024_sibling_roms_db_view.py b/backend/alembic/versions/0024_sibling_roms_db_view.py new file mode 100644 index 000000000..f6c438936 --- /dev/null +++ b/backend/alembic/versions/0024_sibling_roms_db_view.py @@ -0,0 +1,68 @@ +"""empty message + +Revision ID: 0024_sibling_roms_db_view +Revises: 0023_make_columns_non_nullable +Create Date: 2024-08-08 12:00:00.000000 + +""" + +import sqlalchemy as sa +from alembic import op + +# revision identifiers, used by Alembic. +revision = "0024_sibling_roms_db_view" +down_revision = "0023_make_columns_non_nullable" +branch_labels = None +depends_on = None + + +def upgrade() -> None: + with op.batch_alter_table("roms", schema=None) as batch_op: + batch_op.create_index("idx_roms_igdb_id", ["igdb_id"]) + batch_op.create_index("idx_roms_moby_id", ["moby_id"]) + + connection = op.get_bind() + + connection.execute( + sa.text( + """ + CREATE VIEW sibling_roms AS + SELECT + r1.id AS rom_id, + r2.id AS sibling_rom_id, + r1.platform_id AS platform_id, + NOW() AS created_at, + NOW() AS updated_at, + CASE WHEN r1.igdb_id <=> r2.igdb_id THEN r1.igdb_id END AS igdb_id, + CASE WHEN r1.moby_id <=> r2.moby_id THEN r1.moby_id END AS moby_id + FROM + roms r1 + JOIN + roms r2 + ON + r1.platform_id = r2.platform_id + AND r1.id != r2.id + AND ( + (r1.igdb_id = r2.igdb_id AND r1.igdb_id IS NOT NULL AND r1.igdb_id != '') + OR + (r1.moby_id = r2.moby_id AND r1.moby_id IS NOT NULL AND r1.moby_id != '') + ); + """ + ), + ) + + +def downgrade() -> None: + connection = op.get_bind() + + connection.execute( + sa.text( + """ + DROP VIEW sibling_roms; + """ + ), + ) + + with op.batch_alter_table("roms", schema=None) as batch_op: + batch_op.drop_index("idx_roms_igdb_id") + batch_op.drop_index("idx_roms_moby_id") diff --git a/backend/endpoints/responses/rom.py b/backend/endpoints/responses/rom.py index 202d23707..ac57312bc 100644 --- a/backend/endpoints/responses/rom.py +++ b/backend/endpoints/responses/rom.py @@ -113,24 +113,9 @@ class RomSchema(BaseModel): created_at: datetime updated_at: datetime - rom_user: RomUserSchema | None = Field(default=None) - sibling_roms: list[RomSchema] = Field(default_factory=list) - class Config: from_attributes = True - @classmethod - def from_orm_with_request(cls, db_rom: Rom, request: Request) -> RomSchema: - rom = cls.model_validate(db_rom) - user_id = request.user.id - - rom.rom_user = RomUserSchema.for_user(user_id, db_rom) - rom.sibling_roms = [ - RomSchema.model_validate(r) for r in db_rom.get_sibling_roms() - ] - - return rom - @computed_field # type: ignore @property def sort_comparator(self) -> str: @@ -144,10 +129,24 @@ def sort_comparator(self) -> str: ) +class SimpleRomSchema(RomSchema): + sibling_roms: list[RomSchema] = Field(default_factory=list) + rom_user: RomUserSchema | None = Field(default=None) + + @classmethod + def from_orm_with_request(cls, db_rom: Rom, request: Request) -> SimpleRomSchema: + rom = cls.model_validate(db_rom) + user_id = request.user.id + + rom.rom_user = RomUserSchema.for_user(user_id, db_rom) + + return rom + + class DetailedRomSchema(RomSchema): merged_screenshots: list[str] - rom_user: RomUserSchema | None = Field(default=None) sibling_roms: list[RomSchema] = Field(default_factory=list) + rom_user: RomUserSchema | None = Field(default=None) user_saves: list[SaveSchema] = Field(default_factory=list) user_states: list[StateSchema] = Field(default_factory=list) user_screenshots: list[ScreenshotSchema] = Field(default_factory=list) @@ -161,9 +160,6 @@ def from_orm_with_request(cls, db_rom: Rom, request: Request) -> DetailedRomSche rom.rom_user = RomUserSchema.for_user(user_id, db_rom) rom.user_notes = RomUserSchema.notes_for_user(user_id, db_rom) - rom.sibling_roms = [ - RomSchema.model_validate(r) for r in db_rom.get_sibling_roms() - ] rom.user_saves = [ SaveSchema.model_validate(s) for s in db_rom.saves if s.user_id == user_id ] diff --git a/backend/endpoints/rom.py b/backend/endpoints/rom.py index 5fe7dd126..666ebfb8a 100644 --- a/backend/endpoints/rom.py +++ b/backend/endpoints/rom.py @@ -17,8 +17,8 @@ AddRomsResponse, CustomStreamingResponse, DetailedRomSchema, - RomSchema, RomUserSchema, + SimpleRomSchema, ) from exceptions.endpoint_exceptions import RomNotFoundInDatabaseException from exceptions.fs_exceptions import RomAlreadyExistsException @@ -102,7 +102,7 @@ def get_roms( limit: int | None = None, order_by: str = "name", order_dir: str = "asc", -) -> list[RomSchema]: +) -> list[SimpleRomSchema]: """Get roms endpoint Args: @@ -110,7 +110,7 @@ def get_roms( id (int, optional): Rom internal id Returns: - list[RomSchema]: List of roms stored in the database + list[SimpleRomSchema]: List of roms stored in the database """ roms = db_rom_handler.get_roms( @@ -122,7 +122,7 @@ def get_roms( limit=limit, ) - return [RomSchema.from_orm_with_request(rom, request) for rom in roms] + return [SimpleRomSchema.from_orm_with_request(rom, request) for rom in roms] @protected_route( diff --git a/backend/endpoints/sockets/scan.py b/backend/endpoints/sockets/scan.py index a8c3c062c..bf0ac621c 100644 --- a/backend/endpoints/sockets/scan.py +++ b/backend/endpoints/sockets/scan.py @@ -7,7 +7,7 @@ import socketio # type: ignore from config import SCAN_TIMEOUT from endpoints.responses.platform import PlatformSchema -from endpoints.responses.rom import RomSchema +from endpoints.responses.rom import SimpleRomSchema from exceptions.fs_exceptions import ( FirmwareNotFoundException, FolderStructureNotMatchException, @@ -361,7 +361,7 @@ async def _identify_rom( { "platform_name": platform.name, "platform_slug": platform.slug, - **RomSchema.model_validate(_added_rom).model_dump( + **SimpleRomSchema.model_validate(_added_rom).model_dump( exclude={"created_at", "updated_at", "rom_user"} ), }, diff --git a/backend/handler/database/roms_handler.py b/backend/handler/database/roms_handler.py index f9acc12a0..d15d92e3c 100644 --- a/backend/handler/database/roms_handler.py +++ b/backend/handler/database/roms_handler.py @@ -23,6 +23,7 @@ def wrapper(*args, **kwargs): selectinload(Rom.states), selectinload(Rom.screenshots), selectinload(Rom.rom_users), + selectinload(Rom.sibling_roms), ) return func(*args, **kwargs) @@ -38,7 +39,9 @@ def wrapper(*args, **kwargs): f"{func} is missing required kwarg 'session' with type 'Session'" ) - kwargs["query"] = select(Rom).options(selectinload(Rom.rom_users)) + kwargs["query"] = select(Rom).options( + selectinload(Rom.rom_users), selectinload(Rom.sibling_roms) + ) return func(*args, **kwargs) return wrapper @@ -153,32 +156,6 @@ def get_rom_by_filename_no_ext( query.filter_by(file_name_no_ext=file_name_no_ext).limit(1) ) - @begin_session - @with_simple - def get_sibling_roms( - self, rom: Rom, query: Query = None, session: Session = None - ) -> list[Rom]: - return session.scalars( - query.where( - and_( - Rom.platform_id == rom.platform_id, - Rom.id != rom.id, - or_( - and_( - Rom.igdb_id == rom.igdb_id, - Rom.igdb_id.isnot(None), - Rom.igdb_id != "", - ), - and_( - Rom.moby_id == rom.moby_id, - Rom.moby_id.isnot(None), - Rom.moby_id != "", - ), - ), - ) - ) - ).all() - @begin_session def get_rom_collections( self, rom: Rom, session: Session = None diff --git a/backend/models/rom.py b/backend/models/rom.py index 06c8a3548..094bed4e9 100644 --- a/backend/models/rom.py +++ b/backend/models/rom.py @@ -5,7 +5,15 @@ from config import FRONTEND_RESOURCES_PATH from models.base import BaseModel -from sqlalchemy import JSON, BigInteger, ForeignKey, String, Text, UniqueConstraint +from sqlalchemy import ( + JSON, + BigInteger, + ForeignKey, + Integer, + String, + Text, + UniqueConstraint, +) from sqlalchemy.dialects.mysql.json import JSON as MySQLJSON from sqlalchemy.orm import Mapped, mapped_column, relationship @@ -66,6 +74,11 @@ class Rom(BaseModel): ) platform: Mapped[Platform] = relationship(lazy="immediate") + sibling_roms: Mapped[list[Rom]] = relationship( + secondary="sibling_roms", + primaryjoin="Rom.id == SiblingRom.rom_id", + secondaryjoin="Rom.id == SiblingRom.sibling_rom_id", + ) saves: Mapped[list[Save]] = relationship(back_populates="rom") states: Mapped[list[State]] = relationship(back_populates="rom") @@ -98,12 +111,6 @@ def merged_screenshots(self) -> list[str]: f"{FRONTEND_RESOURCES_PATH}/{s}" for s in self.path_screenshots ] - # This is an expensive operation so don't call it on a list of roms - def get_sibling_roms(self) -> list[Rom]: - from handler.database import db_rom_handler - - return db_rom_handler.get_sibling_roms(self) - def get_collections(self) -> list[Collection]: from handler.database import db_rom_handler @@ -176,3 +183,14 @@ class RomUser(BaseModel): @property def user__username(self) -> str: return self.user.username + + +class SiblingRom(BaseModel): + __tablename__ = "sibling_roms" + + rom_id: Mapped[int] = mapped_column(Integer, primary_key=True) + sibling_rom_id: Mapped[int] = mapped_column(Integer, primary_key=True) + + __table_args__ = ( + UniqueConstraint("rom_id", "sibling_rom_id", name="unique_sibling_roms"), + ) diff --git a/frontend/src/__generated__/index.ts b/frontend/src/__generated__/index.ts index 66aefac00..ba7038a72 100644 --- a/frontend/src/__generated__/index.ts +++ b/frontend/src/__generated__/index.ts @@ -3,50 +3,55 @@ /* tslint:disable */ /* eslint-disable */ -export type { AddFirmwareResponse } from "./models/AddFirmwareResponse"; -export type { AddRomsResponse } from "./models/AddRomsResponse"; -export type { Body_add_collection_collections_post } from "./models/Body_add_collection_collections_post"; -export type { Body_add_firmware_firmware_post } from "./models/Body_add_firmware_firmware_post"; -export type { Body_add_roms_roms_post } from "./models/Body_add_roms_roms_post"; -export type { Body_add_saves_saves_post } from "./models/Body_add_saves_saves_post"; -export type { Body_add_screenshots_screenshots_post } from "./models/Body_add_screenshots_screenshots_post"; -export type { Body_add_states_states_post } from "./models/Body_add_states_states_post"; -export type { Body_token_token_post } from "./models/Body_token_token_post"; -export type { Body_update_collection_collections__id__put } from "./models/Body_update_collection_collections__id__put"; -export type { Body_update_rom_roms__id__put } from "./models/Body_update_rom_roms__id__put"; -export type { Body_update_user_users__id__put } from "./models/Body_update_user_users__id__put"; -export type { CollectionSchema } from "./models/CollectionSchema"; -export type { ConfigResponse } from "./models/ConfigResponse"; -export type { DetailedRomSchema } from "./models/DetailedRomSchema"; -export type { FirmwareSchema } from "./models/FirmwareSchema"; -export type { HeartbeatResponse } from "./models/HeartbeatResponse"; -export type { HTTPValidationError } from "./models/HTTPValidationError"; -export type { IGDBMetadataPlatform } from "./models/IGDBMetadataPlatform"; -export type { IGDBRelatedGame } from "./models/IGDBRelatedGame"; -export type { MessageResponse } from "./models/MessageResponse"; -export type { MetadataSourcesDict } from "./models/MetadataSourcesDict"; -export type { MobyMetadataPlatform } from "./models/MobyMetadataPlatform"; -export type { PlatformSchema } from "./models/PlatformSchema"; -export type { Role } from "./models/Role"; -export type { RomIGDBMetadata } from "./models/RomIGDBMetadata"; -export type { RomMobyMetadata } from "./models/RomMobyMetadata"; -export type { RomSchema } from "./models/RomSchema"; -export type { RomUserSchema } from "./models/RomUserSchema"; -export type { SaveSchema } from "./models/SaveSchema"; -export type { SchedulerDict } from "./models/SchedulerDict"; -export type { ScreenshotSchema } from "./models/ScreenshotSchema"; -export type { SearchCoverSchema } from "./models/SearchCoverSchema"; -export type { SearchRomSchema } from "./models/SearchRomSchema"; -export type { StateSchema } from "./models/StateSchema"; -export type { StatsReturn } from "./models/StatsReturn"; -export type { TaskDict } from "./models/TaskDict"; -export type { TinfoilFeedSchema } from "./models/TinfoilFeedSchema"; -export type { TokenResponse } from "./models/TokenResponse"; -export type { UploadedSavesResponse } from "./models/UploadedSavesResponse"; -export type { UploadedScreenshotsResponse } from "./models/UploadedScreenshotsResponse"; -export type { UploadedStatesResponse } from "./models/UploadedStatesResponse"; -export type { UserNotesSchema } from "./models/UserNotesSchema"; -export type { UserSchema } from "./models/UserSchema"; -export type { ValidationError } from "./models/ValidationError"; -export type { WatcherDict } from "./models/WatcherDict"; -export type { WebrcadeFeedSchema } from "./models/WebrcadeFeedSchema"; +export type { AddFirmwareResponse } from './models/AddFirmwareResponse'; +export type { AddRomsResponse } from './models/AddRomsResponse'; +export type { Body_add_collection_api_collections_post } from './models/Body_add_collection_api_collections_post'; +export type { Body_add_firmware_api_firmware_post } from './models/Body_add_firmware_api_firmware_post'; +export type { Body_add_roms_api_roms_post } from './models/Body_add_roms_api_roms_post'; +export type { Body_add_saves_api_saves_post } from './models/Body_add_saves_api_saves_post'; +export type { Body_add_screenshots_api_screenshots_post } from './models/Body_add_screenshots_api_screenshots_post'; +export type { Body_add_states_api_states_post } from './models/Body_add_states_api_states_post'; +export type { Body_token_api_token_post } from './models/Body_token_api_token_post'; +export type { Body_update_collection_api_collections__id__put } from './models/Body_update_collection_api_collections__id__put'; +export type { Body_update_rom_api_roms__id__put } from './models/Body_update_rom_api_roms__id__put'; +export type { Body_update_user_api_users__id__put } from './models/Body_update_user_api_users__id__put'; +export type { CollectionSchema } from './models/CollectionSchema'; +export type { ConfigResponse } from './models/ConfigResponse'; +export type { DetailedRomSchema } from './models/DetailedRomSchema'; +export type { FirmwareSchema } from './models/FirmwareSchema'; +export type { HeartbeatResponse } from './models/HeartbeatResponse'; +export type { HTTPValidationError } from './models/HTTPValidationError'; +export type { IGDBMetadataPlatform } from './models/IGDBMetadataPlatform'; +export type { IGDBRelatedGame } from './models/IGDBRelatedGame'; +export type { MessageResponse } from './models/MessageResponse'; +export type { MetadataSourcesDict } from './models/MetadataSourcesDict'; +export type { MobyMetadataPlatform } from './models/MobyMetadataPlatform'; +export type { PlatformSchema } from './models/PlatformSchema'; +export type { Role } from './models/Role'; +export type { RomIGDBMetadata } from './models/RomIGDBMetadata'; +export type { RomMobyMetadata } from './models/RomMobyMetadata'; +export type { RomSchema } from './models/RomSchema'; +export type { RomUserSchema } from './models/RomUserSchema'; +export type { SaveSchema } from './models/SaveSchema'; +export type { SchedulerDict } from './models/SchedulerDict'; +export type { ScreenshotSchema } from './models/ScreenshotSchema'; +export type { SearchCoverSchema } from './models/SearchCoverSchema'; +export type { SearchRomSchema } from './models/SearchRomSchema'; +export type { SimpleRomSchema } from './models/SimpleRomSchema'; +export type { StateSchema } from './models/StateSchema'; +export type { StatsReturn } from './models/StatsReturn'; +export type { TaskDict } from './models/TaskDict'; +export type { TinfoilFeedFileSchema } from './models/TinfoilFeedFileSchema'; +export type { TinfoilFeedSchema } from './models/TinfoilFeedSchema'; +export type { TokenResponse } from './models/TokenResponse'; +export type { UploadedSavesResponse } from './models/UploadedSavesResponse'; +export type { UploadedScreenshotsResponse } from './models/UploadedScreenshotsResponse'; +export type { UploadedStatesResponse } from './models/UploadedStatesResponse'; +export type { UserNotesSchema } from './models/UserNotesSchema'; +export type { UserSchema } from './models/UserSchema'; +export type { ValidationError } from './models/ValidationError'; +export type { WatcherDict } from './models/WatcherDict'; +export type { WebrcadeFeedCategorySchema } from './models/WebrcadeFeedCategorySchema'; +export type { WebrcadeFeedItemPropsSchema } from './models/WebrcadeFeedItemPropsSchema'; +export type { WebrcadeFeedItemSchema } from './models/WebrcadeFeedItemSchema'; +export type { WebrcadeFeedSchema } from './models/WebrcadeFeedSchema'; diff --git a/frontend/src/__generated__/models/AddFirmwareResponse.ts b/frontend/src/__generated__/models/AddFirmwareResponse.ts index d57008aeb..e90e01575 100644 --- a/frontend/src/__generated__/models/AddFirmwareResponse.ts +++ b/frontend/src/__generated__/models/AddFirmwareResponse.ts @@ -3,9 +3,10 @@ /* tslint:disable */ /* eslint-disable */ -import type { FirmwareSchema } from "./FirmwareSchema"; +import type { FirmwareSchema } from './FirmwareSchema'; export type AddFirmwareResponse = { - uploaded: number; - firmware: Array; + uploaded: number; + firmware: Array; }; + diff --git a/frontend/src/__generated__/models/AddRomsResponse.ts b/frontend/src/__generated__/models/AddRomsResponse.ts index 9f19f1c36..4c26473e1 100644 --- a/frontend/src/__generated__/models/AddRomsResponse.ts +++ b/frontend/src/__generated__/models/AddRomsResponse.ts @@ -4,6 +4,7 @@ /* eslint-disable */ export type AddRomsResponse = { - uploaded_roms: Array; - skipped_roms: Array; + uploaded_roms: Array; + skipped_roms: Array; }; + diff --git a/frontend/src/__generated__/models/Body_add_collection_api_collections_post.ts b/frontend/src/__generated__/models/Body_add_collection_api_collections_post.ts new file mode 100644 index 000000000..17bb09e95 --- /dev/null +++ b/frontend/src/__generated__/models/Body_add_collection_api_collections_post.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Body_add_collection_api_collections_post = { + artwork?: (Blob | null); +}; + diff --git a/frontend/src/__generated__/models/Body_add_firmware_api_firmware_post.ts b/frontend/src/__generated__/models/Body_add_firmware_api_firmware_post.ts new file mode 100644 index 000000000..d145afd2a --- /dev/null +++ b/frontend/src/__generated__/models/Body_add_firmware_api_firmware_post.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Body_add_firmware_api_firmware_post = { + files: Array; +}; + diff --git a/frontend/src/__generated__/models/Body_add_states_states_post.ts b/frontend/src/__generated__/models/Body_add_roms_api_roms_post.ts similarity index 66% rename from frontend/src/__generated__/models/Body_add_states_states_post.ts rename to frontend/src/__generated__/models/Body_add_roms_api_roms_post.ts index 2189cc71d..084f97f00 100644 --- a/frontend/src/__generated__/models/Body_add_states_states_post.ts +++ b/frontend/src/__generated__/models/Body_add_roms_api_roms_post.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -export type Body_add_states_states_post = { - states: Array; +export type Body_add_roms_api_roms_post = { + roms: Array; }; + diff --git a/frontend/src/__generated__/models/Body_add_firmware_firmware_post.ts b/frontend/src/__generated__/models/Body_add_saves_api_saves_post.ts similarity index 65% rename from frontend/src/__generated__/models/Body_add_firmware_firmware_post.ts rename to frontend/src/__generated__/models/Body_add_saves_api_saves_post.ts index 45bb33207..b2bda120a 100644 --- a/frontend/src/__generated__/models/Body_add_firmware_firmware_post.ts +++ b/frontend/src/__generated__/models/Body_add_saves_api_saves_post.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -export type Body_add_firmware_firmware_post = { - files: Array; +export type Body_add_saves_api_saves_post = { + saves: Array; }; + diff --git a/frontend/src/__generated__/models/Body_add_screenshots_api_screenshots_post.ts b/frontend/src/__generated__/models/Body_add_screenshots_api_screenshots_post.ts new file mode 100644 index 000000000..349d6f393 --- /dev/null +++ b/frontend/src/__generated__/models/Body_add_screenshots_api_screenshots_post.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Body_add_screenshots_api_screenshots_post = { + screenshots: Array; +}; + diff --git a/frontend/src/__generated__/models/Body_add_screenshots_screenshots_post.ts b/frontend/src/__generated__/models/Body_add_screenshots_screenshots_post.ts deleted file mode 100644 index ad25ed065..000000000 --- a/frontend/src/__generated__/models/Body_add_screenshots_screenshots_post.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* generated using openapi-typescript-codegen -- do no edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -export type Body_add_screenshots_screenshots_post = { - screenshots: Array; -}; diff --git a/frontend/src/__generated__/models/Body_add_saves_saves_post.ts b/frontend/src/__generated__/models/Body_add_states_api_states_post.ts similarity index 64% rename from frontend/src/__generated__/models/Body_add_saves_saves_post.ts rename to frontend/src/__generated__/models/Body_add_states_api_states_post.ts index 58627651a..365153618 100644 --- a/frontend/src/__generated__/models/Body_add_saves_saves_post.ts +++ b/frontend/src/__generated__/models/Body_add_states_api_states_post.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -export type Body_add_saves_saves_post = { - saves: Array; +export type Body_add_states_api_states_post = { + states: Array; }; + diff --git a/frontend/src/__generated__/models/Body_token_api_token_post.ts b/frontend/src/__generated__/models/Body_token_api_token_post.ts new file mode 100644 index 000000000..3aeed6ea0 --- /dev/null +++ b/frontend/src/__generated__/models/Body_token_api_token_post.ts @@ -0,0 +1,15 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Body_token_api_token_post = { + grant_type?: string; + scope?: string; + username?: (string | null); + password?: (string | null); + client_id?: (string | null); + client_secret?: (string | null); + refresh_token?: (string | null); +}; + diff --git a/frontend/src/__generated__/models/Body_token_token_post.ts b/frontend/src/__generated__/models/Body_token_token_post.ts deleted file mode 100644 index b4cf29218..000000000 --- a/frontend/src/__generated__/models/Body_token_token_post.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* generated using openapi-typescript-codegen -- do no edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -export type Body_token_token_post = { - grant_type?: string; - scope?: string; - username?: string | null; - password?: string | null; - client_id?: string | null; - client_secret?: string | null; - refresh_token?: string | null; -}; diff --git a/frontend/src/__generated__/models/Body_update_collection_api_collections__id__put.ts b/frontend/src/__generated__/models/Body_update_collection_api_collections__id__put.ts new file mode 100644 index 000000000..731d0cad5 --- /dev/null +++ b/frontend/src/__generated__/models/Body_update_collection_api_collections__id__put.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Body_update_collection_api_collections__id__put = { + artwork?: (Blob | null); +}; + diff --git a/frontend/src/__generated__/models/Body_update_collection_collections__id__put.ts b/frontend/src/__generated__/models/Body_update_collection_collections__id__put.ts deleted file mode 100644 index f04969c88..000000000 --- a/frontend/src/__generated__/models/Body_update_collection_collections__id__put.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* generated using openapi-typescript-codegen -- do no edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -export type Body_update_collection_collections__id__put = { - artwork?: Blob | null; -}; diff --git a/frontend/src/__generated__/models/Body_add_collection_collections_post.ts b/frontend/src/__generated__/models/Body_update_rom_api_roms__id__put.ts similarity index 62% rename from frontend/src/__generated__/models/Body_add_collection_collections_post.ts rename to frontend/src/__generated__/models/Body_update_rom_api_roms__id__put.ts index decb18554..150dfd7b1 100644 --- a/frontend/src/__generated__/models/Body_add_collection_collections_post.ts +++ b/frontend/src/__generated__/models/Body_update_rom_api_roms__id__put.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -export type Body_add_collection_collections_post = { - artwork?: Blob | null; +export type Body_update_rom_api_roms__id__put = { + artwork?: (Blob | null); }; + diff --git a/frontend/src/__generated__/models/Body_update_rom_roms__id__put.ts b/frontend/src/__generated__/models/Body_update_rom_roms__id__put.ts deleted file mode 100644 index 926d02d99..000000000 --- a/frontend/src/__generated__/models/Body_update_rom_roms__id__put.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* generated using openapi-typescript-codegen -- do no edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -export type Body_update_rom_roms__id__put = { - artwork?: Blob | null; -}; diff --git a/frontend/src/__generated__/models/Body_update_user_api_users__id__put.ts b/frontend/src/__generated__/models/Body_update_user_api_users__id__put.ts new file mode 100644 index 000000000..9ac763c36 --- /dev/null +++ b/frontend/src/__generated__/models/Body_update_user_api_users__id__put.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Body_update_user_api_users__id__put = { + avatar?: (Blob | null); +}; + diff --git a/frontend/src/__generated__/models/Body_update_user_users__id__put.ts b/frontend/src/__generated__/models/Body_update_user_users__id__put.ts deleted file mode 100644 index 3ea8dff01..000000000 --- a/frontend/src/__generated__/models/Body_update_user_users__id__put.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* generated using openapi-typescript-codegen -- do no edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -export type Body_update_user_users__id__put = { - avatar?: Blob | null; -}; diff --git a/frontend/src/__generated__/models/CollectionSchema.ts b/frontend/src/__generated__/models/CollectionSchema.ts index 762969e9b..15511aa2e 100644 --- a/frontend/src/__generated__/models/CollectionSchema.ts +++ b/frontend/src/__generated__/models/CollectionSchema.ts @@ -4,18 +4,19 @@ /* eslint-disable */ export type CollectionSchema = { - id: number; - name: string; - description: string; - path_cover_l: string | null; - path_cover_s: string | null; - has_cover: boolean; - url_cover: string; - roms: Array; - rom_count: number; - user_id: number; - user__username: string; - is_public: boolean; - created_at: string; - updated_at: string; + id: number; + name: string; + description: string; + path_cover_l: (string | null); + path_cover_s: (string | null); + has_cover: boolean; + url_cover: string; + roms: Array; + rom_count: number; + user_id: number; + user__username: string; + is_public: boolean; + created_at: string; + updated_at: string; }; + diff --git a/frontend/src/__generated__/models/ConfigResponse.ts b/frontend/src/__generated__/models/ConfigResponse.ts index 2768ac72e..71f01543b 100644 --- a/frontend/src/__generated__/models/ConfigResponse.ts +++ b/frontend/src/__generated__/models/ConfigResponse.ts @@ -4,15 +4,16 @@ /* eslint-disable */ export type ConfigResponse = { - EXCLUDED_PLATFORMS: Array; - EXCLUDED_SINGLE_EXT: Array; - EXCLUDED_SINGLE_FILES: Array; - EXCLUDED_MULTI_FILES: Array; - EXCLUDED_MULTI_PARTS_EXT: Array; - EXCLUDED_MULTI_PARTS_FILES: Array; - PLATFORMS_BINDING: Record; - PLATFORMS_VERSIONS: Record; - ROMS_FOLDER_NAME: string; - FIRMWARE_FOLDER_NAME: string; - HIGH_PRIO_STRUCTURE_PATH: string; + EXCLUDED_PLATFORMS: Array; + EXCLUDED_SINGLE_EXT: Array; + EXCLUDED_SINGLE_FILES: Array; + EXCLUDED_MULTI_FILES: Array; + EXCLUDED_MULTI_PARTS_EXT: Array; + EXCLUDED_MULTI_PARTS_FILES: Array; + PLATFORMS_BINDING: Record; + PLATFORMS_VERSIONS: Record; + ROMS_FOLDER_NAME: string; + FIRMWARE_FOLDER_NAME: string; + HIGH_PRIO_STRUCTURE_PATH: string; }; + diff --git a/frontend/src/__generated__/models/DetailedRomSchema.ts b/frontend/src/__generated__/models/DetailedRomSchema.ts index b9785524f..e3464e450 100644 --- a/frontend/src/__generated__/models/DetailedRomSchema.ts +++ b/frontend/src/__generated__/models/DetailedRomSchema.ts @@ -3,62 +3,63 @@ /* tslint:disable */ /* eslint-disable */ -import type { CollectionSchema } from "./CollectionSchema"; -import type { RomIGDBMetadata } from "./RomIGDBMetadata"; -import type { RomMobyMetadata } from "./RomMobyMetadata"; -import type { RomSchema } from "./RomSchema"; -import type { RomUserSchema } from "./RomUserSchema"; -import type { SaveSchema } from "./SaveSchema"; -import type { ScreenshotSchema } from "./ScreenshotSchema"; -import type { StateSchema } from "./StateSchema"; -import type { UserNotesSchema } from "./UserNotesSchema"; +import type { CollectionSchema } from './CollectionSchema'; +import type { RomIGDBMetadata } from './RomIGDBMetadata'; +import type { RomMobyMetadata } from './RomMobyMetadata'; +import type { RomSchema } from './RomSchema'; +import type { RomUserSchema } from './RomUserSchema'; +import type { SaveSchema } from './SaveSchema'; +import type { ScreenshotSchema } from './ScreenshotSchema'; +import type { StateSchema } from './StateSchema'; +import type { UserNotesSchema } from './UserNotesSchema'; export type DetailedRomSchema = { - id: number; - igdb_id: number | null; - sgdb_id: number | null; - moby_id: number | null; - platform_id: number; - platform_slug: string; - platform_name: string; - file_name: string; - file_name_no_tags: string; - file_name_no_ext: string; - file_extension: string; - file_path: string; - file_size_bytes: number; - name: string | null; - slug: string | null; - summary: string | null; - first_release_date: number | null; - alternative_names: Array; - genres: Array; - franchises: Array; - collections: Array; - companies: Array; - game_modes: Array; - igdb_metadata: RomIGDBMetadata | null; - moby_metadata: RomMobyMetadata | null; - path_cover_s: string | null; - path_cover_l: string | null; - has_cover: boolean; - url_cover: string | null; - revision: string | null; - regions: Array; - languages: Array; - tags: Array; - multi: boolean; - files: Array; - full_path: string; - created_at: string; - updated_at: string; - rom_user?: RomUserSchema | null; - sibling_roms?: Array; - merged_screenshots: Array; - user_saves?: Array; - user_states?: Array; - user_screenshots?: Array; - user_notes?: Array; - user_collections?: Array; - readonly sort_comparator: string; + id: number; + igdb_id: (number | null); + sgdb_id: (number | null); + moby_id: (number | null); + platform_id: number; + platform_slug: string; + platform_name: string; + file_name: string; + file_name_no_tags: string; + file_name_no_ext: string; + file_extension: string; + file_path: string; + file_size_bytes: number; + name: (string | null); + slug: (string | null); + summary: (string | null); + first_release_date: (number | null); + alternative_names: Array; + genres: Array; + franchises: Array; + collections: Array; + companies: Array; + game_modes: Array; + igdb_metadata: (RomIGDBMetadata | null); + moby_metadata: (RomMobyMetadata | null); + path_cover_s: (string | null); + path_cover_l: (string | null); + has_cover: boolean; + url_cover: (string | null); + revision: (string | null); + regions: Array; + languages: Array; + tags: Array; + multi: boolean; + files: Array; + full_path: string; + created_at: string; + updated_at: string; + rom_user?: (RomUserSchema | null); + merged_screenshots: Array; + sibling_roms?: Array; + user_saves?: Array; + user_states?: Array; + user_screenshots?: Array; + user_notes?: Array; + user_collections?: Array; + readonly sort_comparator: string; }; + diff --git a/frontend/src/__generated__/models/FirmwareSchema.ts b/frontend/src/__generated__/models/FirmwareSchema.ts index 6f3b91ea5..de73eb016 100644 --- a/frontend/src/__generated__/models/FirmwareSchema.ts +++ b/frontend/src/__generated__/models/FirmwareSchema.ts @@ -4,18 +4,19 @@ /* eslint-disable */ export type FirmwareSchema = { - id: number; - file_name: string; - file_name_no_tags: string; - file_name_no_ext: string; - file_extension: string; - file_path: string; - file_size_bytes: number; - full_path: string; - is_verified: boolean; - crc_hash: string; - md5_hash: string; - sha1_hash: string; - created_at: string; - updated_at: string; + id: number; + file_name: string; + file_name_no_tags: string; + file_name_no_ext: string; + file_extension: string; + file_path: string; + file_size_bytes: number; + full_path: string; + is_verified: boolean; + crc_hash: string; + md5_hash: string; + sha1_hash: string; + created_at: string; + updated_at: string; }; + diff --git a/frontend/src/__generated__/models/HTTPValidationError.ts b/frontend/src/__generated__/models/HTTPValidationError.ts index 0f7e0013f..c0bcc87cf 100644 --- a/frontend/src/__generated__/models/HTTPValidationError.ts +++ b/frontend/src/__generated__/models/HTTPValidationError.ts @@ -3,8 +3,9 @@ /* tslint:disable */ /* eslint-disable */ -import type { ValidationError } from "./ValidationError"; +import type { ValidationError } from './ValidationError'; export type HTTPValidationError = { - detail?: Array; + detail?: Array; }; + diff --git a/frontend/src/__generated__/models/HeartbeatResponse.ts b/frontend/src/__generated__/models/HeartbeatResponse.ts index 75edfcede..6ca7e7cfd 100644 --- a/frontend/src/__generated__/models/HeartbeatResponse.ts +++ b/frontend/src/__generated__/models/HeartbeatResponse.ts @@ -3,16 +3,17 @@ /* tslint:disable */ /* eslint-disable */ -import type { MetadataSourcesDict } from "./MetadataSourcesDict"; -import type { SchedulerDict } from "./SchedulerDict"; -import type { WatcherDict } from "./WatcherDict"; +import type { MetadataSourcesDict } from './MetadataSourcesDict'; +import type { SchedulerDict } from './SchedulerDict'; +import type { WatcherDict } from './WatcherDict'; export type HeartbeatResponse = { - VERSION: string; - SHOW_SETUP_WIZARD: boolean; - WATCHER: WatcherDict; - SCHEDULER: SchedulerDict; - ANY_SOURCE_ENABLED: boolean; - METADATA_SOURCES: MetadataSourcesDict; - FS_PLATFORMS: Array; + VERSION: string; + SHOW_SETUP_WIZARD: boolean; + WATCHER: WatcherDict; + SCHEDULER: SchedulerDict; + ANY_SOURCE_ENABLED: boolean; + METADATA_SOURCES: MetadataSourcesDict; + FS_PLATFORMS: Array; }; + diff --git a/frontend/src/__generated__/models/IGDBMetadataPlatform.ts b/frontend/src/__generated__/models/IGDBMetadataPlatform.ts index 56c1a8333..f17112214 100644 --- a/frontend/src/__generated__/models/IGDBMetadataPlatform.ts +++ b/frontend/src/__generated__/models/IGDBMetadataPlatform.ts @@ -4,6 +4,7 @@ /* eslint-disable */ export type IGDBMetadataPlatform = { - igdb_id: number; - name: string; + igdb_id: number; + name: string; }; + diff --git a/frontend/src/__generated__/models/IGDBRelatedGame.ts b/frontend/src/__generated__/models/IGDBRelatedGame.ts index 9591ae5b5..279c4048d 100644 --- a/frontend/src/__generated__/models/IGDBRelatedGame.ts +++ b/frontend/src/__generated__/models/IGDBRelatedGame.ts @@ -4,9 +4,10 @@ /* eslint-disable */ export type IGDBRelatedGame = { - id: number; - name: string; - slug: string; - type: string; - cover_url: string; + id: number; + name: string; + slug: string; + type: string; + cover_url: string; }; + diff --git a/frontend/src/__generated__/models/MessageResponse.ts b/frontend/src/__generated__/models/MessageResponse.ts index a7e5cfc53..27036a4a1 100644 --- a/frontend/src/__generated__/models/MessageResponse.ts +++ b/frontend/src/__generated__/models/MessageResponse.ts @@ -4,5 +4,6 @@ /* eslint-disable */ export type MessageResponse = { - msg: string; + msg: string; }; + diff --git a/frontend/src/__generated__/models/MetadataSourcesDict.ts b/frontend/src/__generated__/models/MetadataSourcesDict.ts index cc8052888..69b957236 100644 --- a/frontend/src/__generated__/models/MetadataSourcesDict.ts +++ b/frontend/src/__generated__/models/MetadataSourcesDict.ts @@ -4,7 +4,8 @@ /* eslint-disable */ export type MetadataSourcesDict = { - IGDB_API_ENABLED: boolean; - MOBY_API_ENABLED: boolean; - STEAMGRIDDB_ENABLED: boolean; + IGDB_API_ENABLED: boolean; + MOBY_API_ENABLED: boolean; + STEAMGRIDDB_ENABLED: boolean; }; + diff --git a/frontend/src/__generated__/models/MobyMetadataPlatform.ts b/frontend/src/__generated__/models/MobyMetadataPlatform.ts index 6eab88a26..c6696602e 100644 --- a/frontend/src/__generated__/models/MobyMetadataPlatform.ts +++ b/frontend/src/__generated__/models/MobyMetadataPlatform.ts @@ -4,6 +4,7 @@ /* eslint-disable */ export type MobyMetadataPlatform = { - moby_id: number; - name: string; + moby_id: number; + name: string; }; + diff --git a/frontend/src/__generated__/models/PlatformSchema.ts b/frontend/src/__generated__/models/PlatformSchema.ts index 9edc5c46d..822c036ad 100644 --- a/frontend/src/__generated__/models/PlatformSchema.ts +++ b/frontend/src/__generated__/models/PlatformSchema.ts @@ -3,19 +3,20 @@ /* tslint:disable */ /* eslint-disable */ -import type { FirmwareSchema } from "./FirmwareSchema"; +import type { FirmwareSchema } from './FirmwareSchema'; export type PlatformSchema = { - id: number; - slug: string; - fs_slug: string; - name: string; - rom_count: number; - igdb_id?: number | null; - sgdb_id?: number | null; - moby_id?: number | null; - logo_path?: string | null; - firmware?: Array; - created_at: string; - updated_at: string; + id: number; + slug: string; + fs_slug: string; + name: string; + rom_count: number; + igdb_id?: (number | null); + sgdb_id?: (number | null); + moby_id?: (number | null); + logo_path?: (string | null); + firmware?: Array; + created_at: string; + updated_at: string; }; + diff --git a/frontend/src/__generated__/models/Role.ts b/frontend/src/__generated__/models/Role.ts index 0e570999f..d7c5ce400 100644 --- a/frontend/src/__generated__/models/Role.ts +++ b/frontend/src/__generated__/models/Role.ts @@ -3,4 +3,4 @@ /* tslint:disable */ /* eslint-disable */ -export type Role = "viewer" | "editor" | "admin"; +export type Role = 'viewer' | 'editor' | 'admin'; diff --git a/frontend/src/__generated__/models/RomIGDBMetadata.ts b/frontend/src/__generated__/models/RomIGDBMetadata.ts index 02b48c693..b00c9997b 100644 --- a/frontend/src/__generated__/models/RomIGDBMetadata.ts +++ b/frontend/src/__generated__/models/RomIGDBMetadata.ts @@ -3,25 +3,26 @@ /* tslint:disable */ /* eslint-disable */ -import type { IGDBMetadataPlatform } from "./IGDBMetadataPlatform"; -import type { IGDBRelatedGame } from "./IGDBRelatedGame"; +import type { IGDBMetadataPlatform } from './IGDBMetadataPlatform'; +import type { IGDBRelatedGame } from './IGDBRelatedGame'; export type RomIGDBMetadata = { - total_rating?: string; - aggregated_rating?: string; - first_release_date?: number | null; - genres?: Array; - franchises?: Array; - alternative_names?: Array; - collections?: Array; - companies?: Array; - game_modes?: Array; - platforms?: Array; - expansions?: Array; - dlcs?: Array; - remasters?: Array; - remakes?: Array; - expanded_games?: Array; - ports?: Array; - similar_games?: Array; + total_rating?: string; + aggregated_rating?: string; + first_release_date?: (number | null); + genres?: Array; + franchises?: Array; + alternative_names?: Array; + collections?: Array; + companies?: Array; + game_modes?: Array; + platforms?: Array; + expansions?: Array; + dlcs?: Array; + remasters?: Array; + remakes?: Array; + expanded_games?: Array; + ports?: Array; + similar_games?: Array; }; + diff --git a/frontend/src/__generated__/models/RomMobyMetadata.ts b/frontend/src/__generated__/models/RomMobyMetadata.ts index 31e5f4aa2..d44ea5862 100644 --- a/frontend/src/__generated__/models/RomMobyMetadata.ts +++ b/frontend/src/__generated__/models/RomMobyMetadata.ts @@ -3,11 +3,12 @@ /* tslint:disable */ /* eslint-disable */ -import type { MobyMetadataPlatform } from "./MobyMetadataPlatform"; +import type { MobyMetadataPlatform } from './MobyMetadataPlatform'; export type RomMobyMetadata = { - moby_score?: string; - genres?: Array; - alternate_titles?: Array; - platforms?: Array; + moby_score?: string; + genres?: Array; + alternate_titles?: Array; + platforms?: Array; }; + diff --git a/frontend/src/__generated__/models/RomSchema.ts b/frontend/src/__generated__/models/RomSchema.ts index 427c2e315..3b1660bf0 100644 --- a/frontend/src/__generated__/models/RomSchema.ts +++ b/frontend/src/__generated__/models/RomSchema.ts @@ -3,50 +3,50 @@ /* tslint:disable */ /* eslint-disable */ -import type { RomIGDBMetadata } from "./RomIGDBMetadata"; -import type { RomMobyMetadata } from "./RomMobyMetadata"; -import type { RomUserSchema } from "./RomUserSchema"; +import type { RomIGDBMetadata } from './RomIGDBMetadata'; +import type { RomMobyMetadata } from './RomMobyMetadata'; +import type { RomUserSchema } from './RomUserSchema'; export type RomSchema = { - id: number; - igdb_id: number | null; - sgdb_id: number | null; - moby_id: number | null; - platform_id: number; - platform_slug: string; - platform_name: string; - file_name: string; - file_name_no_tags: string; - file_name_no_ext: string; - file_extension: string; - file_path: string; - file_size_bytes: number; - name: string | null; - slug: string | null; - summary: string | null; - first_release_date: number | null; - alternative_names: Array; - genres: Array; - franchises: Array; - collections: Array; - companies: Array; - game_modes: Array; - igdb_metadata: RomIGDBMetadata | null; - moby_metadata: RomMobyMetadata | null; - path_cover_s: string | null; - path_cover_l: string | null; - has_cover: boolean; - url_cover: string | null; - revision: string | null; - regions: Array; - languages: Array; - tags: Array; - multi: boolean; - files: Array; - full_path: string; - created_at: string; - updated_at: string; - rom_user?: RomUserSchema | null; - sibling_roms?: Array; - readonly sort_comparator: string; + id: number; + igdb_id: (number | null); + sgdb_id: (number | null); + moby_id: (number | null); + platform_id: number; + platform_slug: string; + platform_name: string; + file_name: string; + file_name_no_tags: string; + file_name_no_ext: string; + file_extension: string; + file_path: string; + file_size_bytes: number; + name: (string | null); + slug: (string | null); + summary: (string | null); + first_release_date: (number | null); + alternative_names: Array; + genres: Array; + franchises: Array; + collections: Array; + companies: Array; + game_modes: Array; + igdb_metadata: (RomIGDBMetadata | null); + moby_metadata: (RomMobyMetadata | null); + path_cover_s: (string | null); + path_cover_l: (string | null); + has_cover: boolean; + url_cover: (string | null); + revision: (string | null); + regions: Array; + languages: Array; + tags: Array; + multi: boolean; + files: Array; + full_path: string; + created_at: string; + updated_at: string; + rom_user?: (RomUserSchema | null); + readonly sort_comparator: string; }; + diff --git a/frontend/src/__generated__/models/RomUserSchema.ts b/frontend/src/__generated__/models/RomUserSchema.ts index 03948b7ad..db0740842 100644 --- a/frontend/src/__generated__/models/RomUserSchema.ts +++ b/frontend/src/__generated__/models/RomUserSchema.ts @@ -4,13 +4,14 @@ /* eslint-disable */ export type RomUserSchema = { - id: number; - user_id: number; - rom_id: number; - created_at: string; - updated_at: string; - note_raw_markdown: string; - note_is_public: boolean; - is_main_sibling: boolean; - user__username: string; + id: number; + user_id: number; + rom_id: number; + created_at: string; + updated_at: string; + note_raw_markdown: string; + note_is_public: boolean; + is_main_sibling: boolean; + user__username: string; }; + diff --git a/frontend/src/__generated__/models/SaveSchema.ts b/frontend/src/__generated__/models/SaveSchema.ts index ee487be8e..b58539d94 100644 --- a/frontend/src/__generated__/models/SaveSchema.ts +++ b/frontend/src/__generated__/models/SaveSchema.ts @@ -3,22 +3,23 @@ /* tslint:disable */ /* eslint-disable */ -import type { ScreenshotSchema } from "./ScreenshotSchema"; +import type { ScreenshotSchema } from './ScreenshotSchema'; export type SaveSchema = { - id: number; - rom_id: number; - user_id: number; - file_name: string; - file_name_no_tags: string; - file_name_no_ext: string; - file_extension: string; - file_path: string; - file_size_bytes: number; - full_path: string; - download_path: string; - created_at: string; - updated_at: string; - emulator: string | null; - screenshot: ScreenshotSchema | null; + id: number; + rom_id: number; + user_id: number; + file_name: string; + file_name_no_tags: string; + file_name_no_ext: string; + file_extension: string; + file_path: string; + file_size_bytes: number; + full_path: string; + download_path: string; + created_at: string; + updated_at: string; + emulator: (string | null); + screenshot: (ScreenshotSchema | null); }; + diff --git a/frontend/src/__generated__/models/SchedulerDict.ts b/frontend/src/__generated__/models/SchedulerDict.ts index f1236bcf4..d48121734 100644 --- a/frontend/src/__generated__/models/SchedulerDict.ts +++ b/frontend/src/__generated__/models/SchedulerDict.ts @@ -3,9 +3,10 @@ /* tslint:disable */ /* eslint-disable */ -import type { TaskDict } from "./TaskDict"; +import type { TaskDict } from './TaskDict'; export type SchedulerDict = { - RESCAN: TaskDict; - SWITCH_TITLEDB: TaskDict; + RESCAN: TaskDict; + SWITCH_TITLEDB: TaskDict; }; + diff --git a/frontend/src/__generated__/models/ScreenshotSchema.ts b/frontend/src/__generated__/models/ScreenshotSchema.ts index 4677a3637..3b22e2cbe 100644 --- a/frontend/src/__generated__/models/ScreenshotSchema.ts +++ b/frontend/src/__generated__/models/ScreenshotSchema.ts @@ -4,17 +4,18 @@ /* eslint-disable */ export type ScreenshotSchema = { - id: number; - rom_id: number; - user_id: number; - file_name: string; - file_name_no_tags: string; - file_name_no_ext: string; - file_extension: string; - file_path: string; - file_size_bytes: number; - full_path: string; - download_path: string; - created_at: string; - updated_at: string; + id: number; + rom_id: number; + user_id: number; + file_name: string; + file_name_no_tags: string; + file_name_no_ext: string; + file_extension: string; + file_path: string; + file_size_bytes: number; + full_path: string; + download_path: string; + created_at: string; + updated_at: string; }; + diff --git a/frontend/src/__generated__/models/SearchCoverSchema.ts b/frontend/src/__generated__/models/SearchCoverSchema.ts index 7915dcb20..17f738825 100644 --- a/frontend/src/__generated__/models/SearchCoverSchema.ts +++ b/frontend/src/__generated__/models/SearchCoverSchema.ts @@ -4,6 +4,7 @@ /* eslint-disable */ export type SearchCoverSchema = { - name: string; - resources: Array; + name: string; + resources: Array; }; + diff --git a/frontend/src/__generated__/models/SearchRomSchema.ts b/frontend/src/__generated__/models/SearchRomSchema.ts index 2f303ff1c..8b5a102a3 100644 --- a/frontend/src/__generated__/models/SearchRomSchema.ts +++ b/frontend/src/__generated__/models/SearchRomSchema.ts @@ -4,11 +4,12 @@ /* eslint-disable */ export type SearchRomSchema = { - igdb_id?: number | null; - moby_id?: number | null; - slug: string; - name: string; - summary: string; - igdb_url_cover?: string; - moby_url_cover?: string; + igdb_id?: (number | null); + moby_id?: (number | null); + slug: string; + name: string; + summary: string; + igdb_url_cover?: string; + moby_url_cover?: string; }; + diff --git a/frontend/src/__generated__/models/SimpleRomSchema.ts b/frontend/src/__generated__/models/SimpleRomSchema.ts new file mode 100644 index 000000000..498bce8b9 --- /dev/null +++ b/frontend/src/__generated__/models/SimpleRomSchema.ts @@ -0,0 +1,54 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { RomIGDBMetadata } from './RomIGDBMetadata'; +import type { RomMobyMetadata } from './RomMobyMetadata'; +import type { RomSchema } from './RomSchema'; +import type { RomUserSchema } from './RomUserSchema'; + +export type SimpleRomSchema = { + id: number; + igdb_id: (number | null); + sgdb_id: (number | null); + moby_id: (number | null); + platform_id: number; + platform_slug: string; + platform_name: string; + file_name: string; + file_name_no_tags: string; + file_name_no_ext: string; + file_extension: string; + file_path: string; + file_size_bytes: number; + name: (string | null); + slug: (string | null); + summary: (string | null); + first_release_date: (number | null); + alternative_names: Array; + genres: Array; + franchises: Array; + collections: Array; + companies: Array; + game_modes: Array; + igdb_metadata: (RomIGDBMetadata | null); + moby_metadata: (RomMobyMetadata | null); + path_cover_s: (string | null); + path_cover_l: (string | null); + has_cover: boolean; + url_cover: (string | null); + revision: (string | null); + regions: Array; + languages: Array; + tags: Array; + multi: boolean; + files: Array; + full_path: string; + created_at: string; + updated_at: string; + rom_user?: (RomUserSchema | null); + sibling_roms?: Array; + readonly sort_comparator: string; +}; + diff --git a/frontend/src/__generated__/models/StateSchema.ts b/frontend/src/__generated__/models/StateSchema.ts index 94c09ad52..f26ad095c 100644 --- a/frontend/src/__generated__/models/StateSchema.ts +++ b/frontend/src/__generated__/models/StateSchema.ts @@ -3,22 +3,23 @@ /* tslint:disable */ /* eslint-disable */ -import type { ScreenshotSchema } from "./ScreenshotSchema"; +import type { ScreenshotSchema } from './ScreenshotSchema'; export type StateSchema = { - id: number; - rom_id: number; - user_id: number; - file_name: string; - file_name_no_tags: string; - file_name_no_ext: string; - file_extension: string; - file_path: string; - file_size_bytes: number; - full_path: string; - download_path: string; - created_at: string; - updated_at: string; - emulator: string | null; - screenshot: ScreenshotSchema | null; + id: number; + rom_id: number; + user_id: number; + file_name: string; + file_name_no_tags: string; + file_name_no_ext: string; + file_extension: string; + file_path: string; + file_size_bytes: number; + full_path: string; + download_path: string; + created_at: string; + updated_at: string; + emulator: (string | null); + screenshot: (ScreenshotSchema | null); }; + diff --git a/frontend/src/__generated__/models/StatsReturn.ts b/frontend/src/__generated__/models/StatsReturn.ts index b2c4d0af1..5ef1e66b5 100644 --- a/frontend/src/__generated__/models/StatsReturn.ts +++ b/frontend/src/__generated__/models/StatsReturn.ts @@ -4,10 +4,11 @@ /* eslint-disable */ export type StatsReturn = { - PLATFORMS: number; - ROMS: number; - SAVES: number; - STATES: number; - SCREENSHOTS: number; - FILESIZE: number; + PLATFORMS: number; + ROMS: number; + SAVES: number; + STATES: number; + SCREENSHOTS: number; + FILESIZE: number; }; + diff --git a/frontend/src/__generated__/models/TaskDict.ts b/frontend/src/__generated__/models/TaskDict.ts index 7a8279c67..6e5815bc2 100644 --- a/frontend/src/__generated__/models/TaskDict.ts +++ b/frontend/src/__generated__/models/TaskDict.ts @@ -4,8 +4,9 @@ /* eslint-disable */ export type TaskDict = { - ENABLED: boolean; - TITLE: string; - MESSAGE: string; - CRON: string; + ENABLED: boolean; + TITLE: string; + MESSAGE: string; + CRON: string; }; + diff --git a/frontend/src/__generated__/models/TinfoilFeedFileSchema.ts b/frontend/src/__generated__/models/TinfoilFeedFileSchema.ts new file mode 100644 index 000000000..d859b0a27 --- /dev/null +++ b/frontend/src/__generated__/models/TinfoilFeedFileSchema.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type TinfoilFeedFileSchema = { + url: string; + size: number; +}; + diff --git a/frontend/src/__generated__/models/TinfoilFeedSchema.ts b/frontend/src/__generated__/models/TinfoilFeedSchema.ts index dd0db4ccf..02518e82e 100644 --- a/frontend/src/__generated__/models/TinfoilFeedSchema.ts +++ b/frontend/src/__generated__/models/TinfoilFeedSchema.ts @@ -3,8 +3,12 @@ /* tslint:disable */ /* eslint-disable */ +import type { TinfoilFeedFileSchema } from './TinfoilFeedFileSchema'; + export type TinfoilFeedSchema = { - files: Array>; - directories: Array; - success: string; + files: Array; + directories: Array; + success?: string; + error?: string; }; + diff --git a/frontend/src/__generated__/models/TokenResponse.ts b/frontend/src/__generated__/models/TokenResponse.ts index 90a7da6af..d77287bf8 100644 --- a/frontend/src/__generated__/models/TokenResponse.ts +++ b/frontend/src/__generated__/models/TokenResponse.ts @@ -4,8 +4,9 @@ /* eslint-disable */ export type TokenResponse = { - access_token: string; - refresh_token?: string; - token_type: string; - expires: number; + access_token: string; + refresh_token?: string; + token_type: string; + expires: number; }; + diff --git a/frontend/src/__generated__/models/UploadedSavesResponse.ts b/frontend/src/__generated__/models/UploadedSavesResponse.ts index ff8049233..c445bc061 100644 --- a/frontend/src/__generated__/models/UploadedSavesResponse.ts +++ b/frontend/src/__generated__/models/UploadedSavesResponse.ts @@ -3,9 +3,10 @@ /* tslint:disable */ /* eslint-disable */ -import type { SaveSchema } from "./SaveSchema"; +import type { SaveSchema } from './SaveSchema'; export type UploadedSavesResponse = { - uploaded: number; - saves: Array; + uploaded: number; + saves: Array; }; + diff --git a/frontend/src/__generated__/models/UploadedScreenshotsResponse.ts b/frontend/src/__generated__/models/UploadedScreenshotsResponse.ts index 7642bdaa8..2f23d0992 100644 --- a/frontend/src/__generated__/models/UploadedScreenshotsResponse.ts +++ b/frontend/src/__generated__/models/UploadedScreenshotsResponse.ts @@ -3,10 +3,11 @@ /* tslint:disable */ /* eslint-disable */ -import type { ScreenshotSchema } from "./ScreenshotSchema"; +import type { ScreenshotSchema } from './ScreenshotSchema'; export type UploadedScreenshotsResponse = { - uploaded: number; - screenshots: Array; - merged_screenshots: Array; + uploaded: number; + screenshots: Array; + merged_screenshots: Array; }; + diff --git a/frontend/src/__generated__/models/UploadedStatesResponse.ts b/frontend/src/__generated__/models/UploadedStatesResponse.ts index 81615a9f3..135d82c7c 100644 --- a/frontend/src/__generated__/models/UploadedStatesResponse.ts +++ b/frontend/src/__generated__/models/UploadedStatesResponse.ts @@ -3,9 +3,10 @@ /* tslint:disable */ /* eslint-disable */ -import type { StateSchema } from "./StateSchema"; +import type { StateSchema } from './StateSchema'; export type UploadedStatesResponse = { - uploaded: number; - states: Array; + uploaded: number; + states: Array; }; + diff --git a/frontend/src/__generated__/models/UserNotesSchema.ts b/frontend/src/__generated__/models/UserNotesSchema.ts index b9a84681a..092bff9be 100644 --- a/frontend/src/__generated__/models/UserNotesSchema.ts +++ b/frontend/src/__generated__/models/UserNotesSchema.ts @@ -4,7 +4,8 @@ /* eslint-disable */ export type UserNotesSchema = { - user_id: number; - username: string; - note_raw_markdown: string; + user_id: number; + username: string; + note_raw_markdown: string; }; + diff --git a/frontend/src/__generated__/models/UserSchema.ts b/frontend/src/__generated__/models/UserSchema.ts index 4117c59fa..62ef604c9 100644 --- a/frontend/src/__generated__/models/UserSchema.ts +++ b/frontend/src/__generated__/models/UserSchema.ts @@ -3,17 +3,18 @@ /* tslint:disable */ /* eslint-disable */ -import type { Role } from "./Role"; +import type { Role } from './Role'; export type UserSchema = { - id: number; - username: string; - enabled: boolean; - role: Role; - oauth_scopes: Array; - avatar_path: string; - last_login: string | null; - last_active: string | null; - created_at: string; - updated_at: string; + id: number; + username: string; + enabled: boolean; + role: Role; + oauth_scopes: Array; + avatar_path: string; + last_login: (string | null); + last_active: (string | null); + created_at: string; + updated_at: string; }; + diff --git a/frontend/src/__generated__/models/ValidationError.ts b/frontend/src/__generated__/models/ValidationError.ts index c725678ad..18997ec72 100644 --- a/frontend/src/__generated__/models/ValidationError.ts +++ b/frontend/src/__generated__/models/ValidationError.ts @@ -4,7 +4,8 @@ /* eslint-disable */ export type ValidationError = { - loc: Array; - msg: string; - type: string; + loc: Array<(string | number)>; + msg: string; + type: string; }; + diff --git a/frontend/src/__generated__/models/WatcherDict.ts b/frontend/src/__generated__/models/WatcherDict.ts index 6c3e97a2b..30faf38a1 100644 --- a/frontend/src/__generated__/models/WatcherDict.ts +++ b/frontend/src/__generated__/models/WatcherDict.ts @@ -4,7 +4,8 @@ /* eslint-disable */ export type WatcherDict = { - ENABLED: boolean; - TITLE: string; - MESSAGE: string; + ENABLED: boolean; + TITLE: string; + MESSAGE: string; }; + diff --git a/frontend/src/__generated__/models/WebrcadeFeedCategorySchema.ts b/frontend/src/__generated__/models/WebrcadeFeedCategorySchema.ts new file mode 100644 index 000000000..c16aa7299 --- /dev/null +++ b/frontend/src/__generated__/models/WebrcadeFeedCategorySchema.ts @@ -0,0 +1,16 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { WebrcadeFeedItemSchema } from './WebrcadeFeedItemSchema'; + +export type WebrcadeFeedCategorySchema = { + title: string; + longTitle?: string; + background?: string; + thumbnail?: string; + description?: string; + items: Array; +}; + diff --git a/frontend/src/__generated__/models/Body_add_roms_roms_post.ts b/frontend/src/__generated__/models/WebrcadeFeedItemPropsSchema.ts similarity index 68% rename from frontend/src/__generated__/models/Body_add_roms_roms_post.ts rename to frontend/src/__generated__/models/WebrcadeFeedItemPropsSchema.ts index 0df627c3a..207999906 100644 --- a/frontend/src/__generated__/models/Body_add_roms_roms_post.ts +++ b/frontend/src/__generated__/models/WebrcadeFeedItemPropsSchema.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -export type Body_add_roms_roms_post = { - roms: Array; +export type WebrcadeFeedItemPropsSchema = { + rom: string; }; + diff --git a/frontend/src/__generated__/models/WebrcadeFeedItemSchema.ts b/frontend/src/__generated__/models/WebrcadeFeedItemSchema.ts new file mode 100644 index 000000000..ffa559727 --- /dev/null +++ b/frontend/src/__generated__/models/WebrcadeFeedItemSchema.ts @@ -0,0 +1,17 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { WebrcadeFeedItemPropsSchema } from './WebrcadeFeedItemPropsSchema'; + +export type WebrcadeFeedItemSchema = { + title: string; + longTitle?: string; + description?: string; + type: string; + thumbnail?: string; + background?: string; + props: WebrcadeFeedItemPropsSchema; +}; + diff --git a/frontend/src/__generated__/models/WebrcadeFeedSchema.ts b/frontend/src/__generated__/models/WebrcadeFeedSchema.ts index c931be100..e27e80faf 100644 --- a/frontend/src/__generated__/models/WebrcadeFeedSchema.ts +++ b/frontend/src/__generated__/models/WebrcadeFeedSchema.ts @@ -3,11 +3,14 @@ /* tslint:disable */ /* eslint-disable */ +import type { WebrcadeFeedCategorySchema } from './WebrcadeFeedCategorySchema'; + export type WebrcadeFeedSchema = { - title: string; - longTitle: string; - description: string; - thumbnail: string; - background: string; - categories: Array>; + title: string; + longTitle?: string; + description?: string; + thumbnail?: string; + background?: string; + categories: Array; }; + diff --git a/frontend/src/stores/roms.ts b/frontend/src/stores/roms.ts index b9456821b..81d9cc3ed 100644 --- a/frontend/src/stores/roms.ts +++ b/frontend/src/stores/roms.ts @@ -1,5 +1,5 @@ import type { SearchRomSchema } from "@/__generated__"; -import type { DetailedRomSchema, RomSchema } from "@/__generated__/"; +import type { DetailedRomSchema, SimpleRomSchema } from "@/__generated__/"; import { type Platform } from "@/stores/platforms"; import { type Collection } from "@/stores/collections"; import type { ExtractPiniaStoreType } from "@/types"; @@ -13,8 +13,7 @@ type GalleryFilterStore = ExtractPiniaStoreType; const collectionStore = storeCollection(); -export type SimpleRom = RomSchema; - +export type SimpleRom = SimpleRomSchema; export type DetailedRom = DetailedRomSchema; export default defineStore("roms", {