refactor: 턴 경계와 12턴 묶음을 보존하는 2배속 복구 구현
This commit is contained in:
@@ -145,6 +145,7 @@ model TurnDaemonLease {
|
||||
ownerId String @map("owner_id")
|
||||
leaseUntil DateTime @map("lease_until")
|
||||
fencingEpoch BigInt @default(1) @map("fencing_epoch")
|
||||
clockReady Boolean @default(false) @map("clock_ready")
|
||||
heartbeatAt DateTime @default(now()) @map("heartbeat_at")
|
||||
|
||||
@@map("turn_daemon_lease")
|
||||
@@ -160,6 +161,9 @@ model WorldState {
|
||||
clockTick BigInt? @map("clock_tick")
|
||||
clockMode String @default("realtime") @map("clock_mode")
|
||||
clockWallAnchor DateTime? @map("clock_wall_anchor")
|
||||
clockRecoveryStartTick BigInt? @map("clock_recovery_start_tick")
|
||||
clockRecoveryEndTick BigInt? @map("clock_recovery_end_tick")
|
||||
clockRecoveryStartWallAt DateTime? @map("clock_recovery_start_wall_at")
|
||||
lastTurnTick BigInt? @map("last_turn_tick")
|
||||
clockPhase String @default("RUNNING") @map("clock_phase")
|
||||
clockRevision BigInt @default(1) @map("clock_revision")
|
||||
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
ALTER TABLE "turn_daemon_lease" ADD COLUMN "clock_ready" BOOLEAN NOT NULL DEFAULT FALSE;
|
||||
|
||||
ALTER TABLE "world_state"
|
||||
ADD COLUMN "clock_recovery_start_tick" BIGINT,
|
||||
ADD COLUMN "clock_recovery_end_tick" BIGINT,
|
||||
ADD COLUMN "clock_recovery_start_wall_at" TIMESTAMP(3),
|
||||
ADD CONSTRAINT "world_state_turn_recovery_window_check" CHECK (
|
||||
("clock_recovery_start_tick" IS NULL AND "clock_recovery_end_tick" IS NULL AND "clock_recovery_start_wall_at" IS NULL)
|
||||
OR (
|
||||
"clock_recovery_start_tick" IS NOT NULL AND "clock_recovery_end_tick" IS NOT NULL AND "clock_recovery_start_wall_at" IS NOT NULL
|
||||
AND "clock_recovery_start_tick" BETWEEN -9007199254740991 AND 9007199254740991
|
||||
AND "clock_recovery_end_tick" BETWEEN -9007199254740991 AND 9007199254740991
|
||||
AND "clock_recovery_start_tick" % 36000000 = 0
|
||||
AND "clock_recovery_end_tick" % 36000000 = 0
|
||||
AND "clock_recovery_end_tick" - "clock_recovery_start_tick" BETWEEN 72000000 AND 792000000
|
||||
AND ("clock_recovery_end_tick" - "clock_recovery_start_tick") % 72000000 = 0
|
||||
)
|
||||
);
|
||||
Reference in New Issue
Block a user