feat(engine): finalize unification archives atomically

This commit is contained in:
2026-07-31 14:10:22 +00:00
parent 8ea8e6e26f
commit 02515303fd
20 changed files with 1516 additions and 843 deletions
+13
View File
@@ -416,6 +416,19 @@ model Emperor {
@@map("emperior")
}
model UnificationFinalization {
generationKey String @id @map("generation_key")
serverId String @unique @map("server_id")
profileName String @map("profile_name")
winnerNation Int @map("winner_nation")
year Int
month Int
completedAt DateTime @map("completed_at")
createdAt DateTime @default(now()) @map("created_at")
@@map("unification_finalization")
}
model Troop {
troopLeaderId Int @id @map("troop_leader")
nationId Int @map("nation")
@@ -0,0 +1,24 @@
ALTER TABLE "ng_old_nations"
ALTER COLUMN "server_id" TYPE TEXT;
ALTER TABLE "ng_old_generals"
ALTER COLUMN "server_id" TYPE TEXT;
ALTER TABLE "emperior"
ALTER COLUMN "server_id" TYPE TEXT;
CREATE TABLE "unification_finalization" (
"generation_key" TEXT NOT NULL,
"server_id" TEXT NOT NULL,
"profile_name" TEXT NOT NULL,
"winner_nation" INTEGER NOT NULL,
"year" INTEGER NOT NULL,
"month" INTEGER NOT NULL,
"completed_at" TIMESTAMP(3) NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "unification_finalization_pkey" PRIMARY KEY ("generation_key")
);
CREATE UNIQUE INDEX "unification_finalization_server_id_key"
ON "unification_finalization" ("server_id");
+1
View File
@@ -310,6 +310,7 @@ export interface TurnEngineNationUpdateInput {
chiefGeneralId: number | null;
gold: number;
rice: number;
tech: number;
level: number;
typeCode: string;
meta: InputJsonValue;