Changing external id to Int, remove not needed columns, add expansion information, and update seeder.

This commit is contained in:
Bradley Shellnut 2023-10-14 22:04:34 +13:00
parent 75aa901a24
commit 5d9af200b7
2 changed files with 94 additions and 111 deletions

View file

@ -158,7 +158,6 @@ model Game {
name String name String
slug String slug String
description String? @db.LongText description String? @db.LongText
description_preview String? @db.LongText
year_published Int? @db.Year year_published Int? @db.Year
min_players Int? min_players Int?
max_players Int? max_players Int?
@ -170,11 +169,6 @@ model Game {
thumb_url String? thumb_url String?
url String? url String?
rules_url String? rules_url String?
is_expansion Boolean @default(false)
primary_publisher_id String?
primary_publisher Publisher? @relation("PrimaryPublishers", references: [id], fields: [primary_publisher_id])
primary_designer_id String?
primary_designer Designer? @relation("PrimaryDesigners", references: [id], fields: [primary_designer_id])
categories Category[] categories Category[]
mechanics Mechanic[] mechanics Mechanic[]
designers Designer[] designers Designer[]
@ -185,12 +179,13 @@ model Game {
collection_items CollectionItem[] collection_items CollectionItem[]
wishlist_items WishlistItem[] wishlist_items WishlistItem[]
list_items ListItem[] list_items ListItem[]
external_id String @unique external_id Int @unique
last_sync_at DateTime? @db.Timestamp(6)
created_at DateTime @default(now()) @db.Timestamp(6) created_at DateTime @default(now()) @db.Timestamp(6)
updated_at DateTime @updatedAt @db.Timestamp(6) updated_at DateTime @updatedAt @db.Timestamp(6)
@@fulltext([name]) @@fulltext([name])
@@index([primary_publisher_id]) @@fulltext([slug])
@@map("games") @@map("games")
} }
@ -211,9 +206,8 @@ model Publisher {
id String @id @default(cuid()) id String @id @default(cuid())
name String name String
slug String slug String
external_id String @unique external_id Int @unique
games Game[] games Game[]
primary_publisher Game[] @relation("PrimaryPublishers")
created_at DateTime @default(now()) @db.Timestamp(6) created_at DateTime @default(now()) @db.Timestamp(6)
updated_at DateTime @updatedAt @db.Timestamp(6) updated_at DateTime @updatedAt @db.Timestamp(6)
@ -226,7 +220,7 @@ model Category {
name String name String
slug String slug String
games Game[] games Game[]
external_id String @unique external_id Int @unique
created_at DateTime @default(now()) @db.Timestamp(6) created_at DateTime @default(now()) @db.Timestamp(6)
updated_at DateTime @updatedAt @db.Timestamp(6) updated_at DateTime @updatedAt @db.Timestamp(6)
@ -239,7 +233,7 @@ model Mechanic {
name String name String
slug String slug String
games Game[] games Game[]
external_id String @unique external_id Int @unique
created_at DateTime @default(now()) @db.Timestamp(6) created_at DateTime @default(now()) @db.Timestamp(6)
updated_at DateTime @updatedAt @db.Timestamp(6) updated_at DateTime @updatedAt @db.Timestamp(6)
@ -251,9 +245,8 @@ model Designer {
id String @id @default(cuid()) id String @id @default(cuid())
name String name String
slug String slug String
external_id String @unique external_id Int @unique
games Game[] games Game[]
primary_designer Game[] @relation("PrimaryDesigners")
created_at DateTime @default(now()) @db.Timestamp(6) created_at DateTime @default(now()) @db.Timestamp(6)
updated_at DateTime @updatedAt @db.Timestamp(6) updated_at DateTime @updatedAt @db.Timestamp(6)
@ -265,6 +258,7 @@ model Artist {
id String @id @default(cuid()) id String @id @default(cuid())
name String name String
slug String @unique slug String @unique
external_id Int @unique
games Game[] games Game[]
created_at DateTime @default(now()) @db.Timestamp(6) created_at DateTime @default(now()) @db.Timestamp(6)
updated_at DateTime @updatedAt @db.Timestamp(6) updated_at DateTime @updatedAt @db.Timestamp(6)
@ -275,15 +269,13 @@ model Artist {
model Expansion { model Expansion {
id String @id @default(cuid()) id String @id @default(cuid())
name String base_game Game @relation(fields: [base_game_id], references: [id])
year_published Int? base_game_id String
base_game Game? @relation(fields: [base_game_id], references: [id]) game_id String
base_game_id String?
external_id String @unique
created_at DateTime @default(now()) @db.Timestamp(6) created_at DateTime @default(now()) @db.Timestamp(6)
updated_at DateTime @updatedAt @db.Timestamp(6) updated_at DateTime @updatedAt @db.Timestamp(6)
@@fulltext([name])
@@index([base_game_id]) @@index([base_game_id])
@@index([game_id])
@@map("expansions") @@map("expansions")
} }

View file

@ -20,59 +20,50 @@ async function main() {
console.log('Roles already exist. No action taken.'); console.log('Roles already exist. No action taken.');
} }
console.log('Creating Mechanics ...'); if (!await prisma.publisher.findFirst({
const existingMechanics = await prisma.mechanic.findMany(); where: {
if (existingMechanics.length === 0) { external_id: 9999
for (const mechanic of mechanics.mechanics) {
await prisma.mechanic.create({
data: {
name: mechanic.name,
external_id: createId(),
slug: kebabCase(mechanic.name)
} }
}); })) {
} console.log('Publisher does not exist. Creating...');
console.log('Mechanics created.');
}
console.log('Creating Categories ...');
const existingCategories = await prisma.category.findMany();
if (existingCategories.length === 0) {
for (const category of categories.categories) {
await prisma.category.create({
data: {
name: category.name,
external_id: createId(),
slug: kebabCase(category.name)
}
});
}
console.log('Categories created.');
}
await prisma.publisher.create({ await prisma.publisher.create({
data: { data: {
name: 'Unknown', name: 'Unknown',
slug: 'unknown', slug: 'unknown',
external_id: createId() external_id: 9999
} }
}); });
}
if (!await prisma.designer.findFirst({
where: {
external_id: 9999
}
})) {
console.log('Designer does not exist. Creating...');
await prisma.designer.create({ await prisma.designer.create({
data: { data: {
name: 'Unknown', name: 'Unknown',
slug: 'unknown', slug: 'unknown',
external_id: createId() external_id: 9999
} }
}); });
}
if (!await prisma.artist.findFirst({
where: {
external_id: 9999
}
})) {
console.log('Artist does not exist. Creating...');
await prisma.artist.create({ await prisma.artist.create({
data: { data: {
name: 'Unknown', name: 'Unknown',
slug: 'unknown' slug: 'unknown',
external_id: 9999
} }
}); });
}
// for (const p of userData) { // for (const p of userData) {
// const user = await prisma.user.create({ // const user = await prisma.user.create({
// data: { // data: {