server: schema — City map coords, Mission narrative/level/loot fields

Add mapX/mapY to City for SVG map positioning; add description,
minLevel, rewardItemId/Quantity to Mission; add named relations
MissionRequiredItem and MissionRewardItem on Item. Seed updated
with Italian city coordinates.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-10 00:11:26 +02:00
parent 0f91ace43e
commit 8804dfeb22
3 changed files with 35 additions and 10 deletions
+12 -4
View File
@@ -60,6 +60,8 @@ model City {
riskLevel Int
policePressure Float @default(1.0)
economyModifier Float @default(1.0)
mapX Float @default(50)
mapY Float @default(50)
createdAt DateTime @default(now())
players Player[]
@@ -77,9 +79,10 @@ model Item {
weight Int @default(1)
createdAt DateTime @default(now())
inventory InventoryItem[]
prices MarketPrice[]
missions Mission[]
inventory InventoryItem[]
prices MarketPrice[]
requiredInMissions Mission[] @relation("MissionRequiredItem")
rewardInMissions Mission[] @relation("MissionRewardItem")
}
model InventoryItem {
@@ -112,19 +115,24 @@ model Mission {
id String @id @default(uuid())
cityId String
title String
description String @default("")
type MissionType
difficulty Int
minLevel Int @default(1)
durationSeconds Int
rewardMoney Int
rewardXp Int
risk Float
requiredItemId String?
requiredItemQuantity Int?
rewardItemId String?
rewardItemQuantity Int?
expiresAt DateTime
createdAt DateTime @default(now())
city City @relation(fields: [cityId], references: [id])
requiredItem Item? @relation(fields: [requiredItemId], references: [id])
requiredItem Item? @relation("MissionRequiredItem", fields: [requiredItemId], references: [id])
rewardItem Item? @relation("MissionRewardItem", fields: [rewardItemId], references: [id])
playerMissions PlayerMission[]
}