feat: update schema with seeding columns

This commit is contained in:
Hachi-R 2024-11-08 17:30:18 -03:00
parent 981dbceb93
commit 21ca26dcfe
6 changed files with 49 additions and 0 deletions

View file

@ -85,6 +85,9 @@ export class Game {
@Column("boolean", { default: false }) @Column("boolean", { default: false })
isDeleted: boolean; isDeleted: boolean;
@Column("boolean", { default: false })
shouldSeed: boolean;
@CreateDateColumn() @CreateDateColumn()
createdAt: Date; createdAt: Date;

View file

@ -41,6 +41,9 @@ export class UserPreferences {
@Column("boolean", { default: false }) @Column("boolean", { default: false })
disableNsfwAlert: boolean; disableNsfwAlert: boolean;
@Column("boolean", { default: true })
seedAfterDownloadComplete: boolean;
@CreateDateColumn() @CreateDateColumn()
createdAt: Date; createdAt: Date;

View file

@ -13,6 +13,8 @@ import { AddBackgroundImageUrl } from "./migrations/20241016100249_add_backgroun
import { AddWinePrefixToGame } from "./migrations/20241019081648_add_wine_prefix_to_game"; import { AddWinePrefixToGame } from "./migrations/20241019081648_add_wine_prefix_to_game";
import { AddStartMinimizedColumn } from "./migrations/20241030171454_add_start_minimized_column"; import { AddStartMinimizedColumn } from "./migrations/20241030171454_add_start_minimized_column";
import { AddDisableNsfwAlertColumn } from "./migrations/20241106053733_add_disable_nsfw_alert_column"; import { AddDisableNsfwAlertColumn } from "./migrations/20241106053733_add_disable_nsfw_alert_column";
import { AddShouldSeedColumn } from "./migrations/20241108200154_add_should_seed_colum";
import { AddSeedAfterDownloadColumn } from "./migrations/20241108201806_add_seed_after_download";
export type HydraMigration = Knex.Migration & { name: string }; export type HydraMigration = Knex.Migration & { name: string };
class MigrationSource implements Knex.MigrationSource<HydraMigration> { class MigrationSource implements Knex.MigrationSource<HydraMigration> {
@ -30,6 +32,8 @@ class MigrationSource implements Knex.MigrationSource<HydraMigration> {
AddWinePrefixToGame, AddWinePrefixToGame,
AddStartMinimizedColumn, AddStartMinimizedColumn,
AddDisableNsfwAlertColumn, AddDisableNsfwAlertColumn,
AddShouldSeedColumn,
AddSeedAfterDownloadColumn,
]); ]);
} }
getMigrationName(migration: HydraMigration): string { getMigrationName(migration: HydraMigration): string {

View file

@ -0,0 +1,17 @@
import type { HydraMigration } from "@main/knex-client";
import type { Knex } from "knex";
export const AddShouldSeedColumn: HydraMigration = {
name: "AddShouldSeedColumn",
up: (knex: Knex) => {
return knex.schema.alterTable("game", (table) => {
return table.boolean("shouldSeed").notNullable().defaultTo(false);
});
},
down: async (knex: Knex) => {
return knex.schema.alterTable("game", (table) => {
return table.dropColumn("shouldSeed");
});
},
};

View file

@ -0,0 +1,20 @@
import type { HydraMigration } from "@main/knex-client";
import type { Knex } from "knex";
export const AddSeedAfterDownloadColumn: HydraMigration = {
name: "AddSeedAfterDownloadColumn",
up: (knex: Knex) => {
return knex.schema.alterTable("user_preferences", (table) => {
return table
.boolean("seedAfterDownloadComplete")
.notNullable()
.defaultTo(true);
});
},
down: async (knex: Knex) => {
return knex.schema.alterTable("user_preferences", (table) => {
return table.dropColumn("seedAfterDownloadComplete");
});
},
};

View file

@ -124,6 +124,7 @@ export interface Game {
objectID: string; objectID: string;
shop: GameShop; shop: GameShop;
downloadQueue: DownloadQueue | null; downloadQueue: DownloadQueue | null;
shouldSeed: boolean;
createdAt: Date; createdAt: Date;
updatedAt: Date; updatedAt: Date;
} }
@ -162,6 +163,7 @@ export interface UserPreferences {
runAtStartup: boolean; runAtStartup: boolean;
startMinimized: boolean; startMinimized: boolean;
disableNsfwAlert: boolean; disableNsfwAlert: boolean;
seedAfterDownloadComplete: boolean;
} }
export interface Steam250Game { export interface Steam250Game {