mirror of
https://github.com/BradNut/boredgame
synced 2025-09-08 17:40:22 +00:00
Changing external id to Int, remove not needed columns, add expansion information, and update seeder.
This commit is contained in:
parent
75aa901a24
commit
5d9af200b7
2 changed files with 94 additions and 111 deletions
|
|
@ -13,8 +13,8 @@ datasource db {
|
||||||
}
|
}
|
||||||
|
|
||||||
model Role {
|
model Role {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
name String @unique
|
name String @unique
|
||||||
userRoles UserRole[]
|
userRoles UserRole[]
|
||||||
|
|
||||||
@@map("roles")
|
@@map("roles")
|
||||||
|
|
@ -22,7 +22,7 @@ model Role {
|
||||||
|
|
||||||
model UserRole {
|
model UserRole {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
user User @relation(fields: [user_id], references: [id])
|
user User @relation(fields: [user_id], references: [id])
|
||||||
user_id String
|
user_id String
|
||||||
role Role @relation(fields: [role_id], references: [id])
|
role Role @relation(fields: [role_id], references: [id])
|
||||||
role_id String
|
role_id String
|
||||||
|
|
@ -62,7 +62,7 @@ model Session {
|
||||||
user_id String
|
user_id String
|
||||||
active_expires BigInt
|
active_expires BigInt
|
||||||
idle_expires BigInt
|
idle_expires BigInt
|
||||||
user User @relation(references: [id], fields: [user_id], onDelete: Cascade)
|
user User @relation(references: [id], fields: [user_id], onDelete: Cascade)
|
||||||
|
|
||||||
@@index([user_id])
|
@@index([user_id])
|
||||||
@@map("sessions")
|
@@map("sessions")
|
||||||
|
|
@ -72,7 +72,7 @@ model Key {
|
||||||
id String @id @unique
|
id String @id @unique
|
||||||
hashed_password String?
|
hashed_password String?
|
||||||
user_id String
|
user_id String
|
||||||
user User @relation(references: [id], fields: [user_id], onDelete: Cascade)
|
user User @relation(references: [id], fields: [user_id], onDelete: Cascade)
|
||||||
|
|
||||||
@@index([user_id])
|
@@index([user_id])
|
||||||
@@map("keys")
|
@@map("keys")
|
||||||
|
|
@ -89,11 +89,11 @@ model Collection {
|
||||||
}
|
}
|
||||||
|
|
||||||
model CollectionItem {
|
model CollectionItem {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
collection_id String
|
collection_id String
|
||||||
collection Collection @relation(references: [id], fields: [collection_id], onDelete: Cascade)
|
collection Collection @relation(references: [id], fields: [collection_id], onDelete: Cascade)
|
||||||
game_id String @unique
|
game_id String @unique
|
||||||
game Game @relation(references: [id], fields: [game_id])
|
game Game @relation(references: [id], fields: [game_id])
|
||||||
times_played Int
|
times_played Int
|
||||||
|
|
||||||
@@index([game_id, collection_id])
|
@@index([game_id, collection_id])
|
||||||
|
|
@ -103,9 +103,9 @@ model CollectionItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
model Wishlist {
|
model Wishlist {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
user_id String @unique
|
user_id String @unique
|
||||||
user User @relation(references: [id], fields: [user_id])
|
user User @relation(references: [id], fields: [user_id])
|
||||||
items WishlistItem[]
|
items WishlistItem[]
|
||||||
|
|
||||||
@@index([user_id])
|
@@index([user_id])
|
||||||
|
|
@ -113,13 +113,13 @@ model Wishlist {
|
||||||
}
|
}
|
||||||
|
|
||||||
model WishlistItem {
|
model WishlistItem {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
wishlist_id String
|
wishlist_id String
|
||||||
wishlist Wishlist @relation(references: [id], fields: [wishlist_id], onDelete: Cascade)
|
wishlist Wishlist @relation(references: [id], fields: [wishlist_id], onDelete: Cascade)
|
||||||
game_id String @unique
|
game_id String @unique
|
||||||
game Game @relation(references: [id], fields: [game_id])
|
game Game @relation(references: [id], fields: [game_id])
|
||||||
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)
|
||||||
|
|
||||||
@@index([game_id, wishlist_id])
|
@@index([game_id, wishlist_id])
|
||||||
@@index([game_id])
|
@@index([game_id])
|
||||||
|
|
@ -128,10 +128,10 @@ model WishlistItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
model List {
|
model List {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
name String
|
name String
|
||||||
user_id String @unique
|
user_id String @unique
|
||||||
user User @relation(references: [id], fields: [user_id])
|
user User @relation(references: [id], fields: [user_id])
|
||||||
items ListItem[]
|
items ListItem[]
|
||||||
|
|
||||||
@@index([user_id])
|
@@index([user_id])
|
||||||
|
|
@ -139,13 +139,13 @@ model List {
|
||||||
}
|
}
|
||||||
|
|
||||||
model ListItem {
|
model ListItem {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
list_id String
|
list_id String
|
||||||
list List @relation(references: [id], fields: [list_id], onDelete: Cascade)
|
list List @relation(references: [id], fields: [list_id], onDelete: Cascade)
|
||||||
game_id String @unique
|
game_id String @unique
|
||||||
game Game @relation(references: [id], fields: [game_id])
|
game Game @relation(references: [id], fields: [game_id])
|
||||||
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)
|
||||||
|
|
||||||
@@index([game_id, list_id])
|
@@index([game_id, list_id])
|
||||||
@@index([game_id])
|
@@index([game_id])
|
||||||
|
|
@ -154,12 +154,11 @@ model ListItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
model Game {
|
model Game {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
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?
|
||||||
playtime Int?
|
playtime 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,23 +179,24 @@ 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
|
||||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
last_sync_at DateTime? @db.Timestamp(6)
|
||||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||||
|
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||||
|
|
||||||
@@fulltext([name])
|
@@fulltext([name])
|
||||||
@@index([primary_publisher_id])
|
@@fulltext([slug])
|
||||||
@@map("games")
|
@@map("games")
|
||||||
}
|
}
|
||||||
|
|
||||||
model GameName {
|
model GameName {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
name String
|
name String
|
||||||
slug String
|
slug String
|
||||||
game_id String
|
game_id String
|
||||||
game Game @relation(references: [id], fields: [game_id])
|
game Game @relation(references: [id], fields: [game_id])
|
||||||
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)
|
||||||
|
|
||||||
@@index([game_id])
|
@@index([game_id])
|
||||||
@@map("game_names")
|
@@map("game_names")
|
||||||
|
|
@ -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)
|
||||||
|
|
||||||
|
|
@ -222,26 +216,26 @@ model Publisher {
|
||||||
}
|
}
|
||||||
|
|
||||||
model Category {
|
model Category {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
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)
|
||||||
|
|
||||||
@@fulltext([name])
|
@@fulltext([name])
|
||||||
@@map("categories")
|
@@map("categories")
|
||||||
}
|
}
|
||||||
|
|
||||||
model Mechanic {
|
model Mechanic {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
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)
|
||||||
|
|
||||||
@@fulltext([name])
|
@@fulltext([name])
|
||||||
@@map("mechanics")
|
@@map("mechanics")
|
||||||
|
|
@ -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)
|
||||||
|
|
@ -274,16 +268,14 @@ 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?
|
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||||
external_id String @unique
|
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||||
created_at DateTime @default(now()) @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")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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('Mechanics created.');
|
})) {
|
||||||
|
console.log('Publisher does not exist. Creating...');
|
||||||
|
await prisma.publisher.create({
|
||||||
|
data: {
|
||||||
|
name: 'Unknown',
|
||||||
|
slug: 'unknown',
|
||||||
|
external_id: 9999
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('Creating Categories ...');
|
if (!await prisma.designer.findFirst({
|
||||||
const existingCategories = await prisma.category.findMany();
|
where: {
|
||||||
if (existingCategories.length === 0) {
|
external_id: 9999
|
||||||
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.');
|
})) {
|
||||||
|
console.log('Designer does not exist. Creating...');
|
||||||
|
await prisma.designer.create({
|
||||||
|
data: {
|
||||||
|
name: 'Unknown',
|
||||||
|
slug: 'unknown',
|
||||||
|
external_id: 9999
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
await prisma.publisher.create({
|
if (!await prisma.artist.findFirst({
|
||||||
data: {
|
where: {
|
||||||
name: 'Unknown',
|
external_id: 9999
|
||||||
slug: 'unknown',
|
|
||||||
external_id: createId()
|
|
||||||
}
|
}
|
||||||
});
|
})) {
|
||||||
|
console.log('Artist does not exist. Creating...');
|
||||||
await prisma.designer.create({
|
await prisma.artist.create({
|
||||||
data: {
|
data: {
|
||||||
name: 'Unknown',
|
name: 'Unknown',
|
||||||
slug: 'unknown',
|
slug: 'unknown',
|
||||||
external_id: createId()
|
external_id: 9999
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
await prisma.artist.create({
|
|
||||||
data: {
|
|
||||||
name: 'Unknown',
|
|
||||||
slug: 'unknown'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// for (const p of userData) {
|
// for (const p of userData) {
|
||||||
// const user = await prisma.user.create({
|
// const user = await prisma.user.create({
|
||||||
// data: {
|
// data: {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue