package model import "time" // TownPausePersisted mirrors HeroMovement fields needed to resume resting, an in-town NPC tour, // or a mid-adventure excursion after reconnect or during offline catch-up. // Stored in heroes.town_pause (JSONB). type TownPausePersisted struct { RestUntil *time.Time `json:"restUntil,omitempty"` RestKind RestKind `json:"restKind,omitempty"` TownRestHealRemainder float64 `json:"townRestHealRemainder,omitempty"` RestHealRemainder float64 `json:"restHealRemainder,omitempty"` NPCQueue []int64 `json:"npcQueue,omitempty"` NextTownNPCRollAt *time.Time `json:"nextTownNPCRollAt,omitempty"` TownLeaveAt *time.Time `json:"townLeaveAt,omitempty"` TownVisitNPCName string `json:"townVisitNPCName,omitempty"` TownVisitNPCType string `json:"townVisitNPCType,omitempty"` TownVisitStartedAt *time.Time `json:"townVisitStartedAt,omitempty"` TownVisitLogsEmitted int `json:"townVisitLogsEmitted,omitempty"` // Excursion (mini-adventure) session persisted for reconnect / offline resume. Excursion *ExcursionPersisted `json:"excursion,omitempty"` }