- Introduced InputEvent model with status tracking (PENDING, PROCESSING, SUCCEEDED, FAILED) and unique request IDs. - Added DatabaseTurnDaemonTransport for sending commands and handling idempotency. - Implemented executeInputEvent function to manage input event lifecycle and error handling. - Created DatabaseTurnDaemonCommandQueue for managing command processing and lease recovery. - Enhanced turn daemon lifecycle to support atomic command execution and error recovery. - Added tests for input event atomicity, command queuing, and error handling scenarios.
30 lines
1.3 KiB
TypeScript
30 lines
1.3 KiB
TypeScript
import type { GamePrisma, GamePrismaClient } from './gamePrisma.js';
|
|
|
|
export interface DatabaseClient {
|
|
$transaction?: GamePrismaClient['$transaction'];
|
|
$queryRaw: GamePrismaClient['$queryRaw'];
|
|
$executeRaw: GamePrismaClient['$executeRaw'];
|
|
worldState: GamePrisma.WorldStateDelegate;
|
|
general: GamePrisma.GeneralDelegate;
|
|
city: GamePrisma.CityDelegate;
|
|
nation: GamePrisma.NationDelegate;
|
|
diplomacy: GamePrisma.DiplomacyDelegate;
|
|
diplomacyLetter: GamePrisma.DiplomacyLetterDelegate;
|
|
yearbookHistory: GamePrisma.YearbookHistoryDelegate;
|
|
rankData: GamePrisma.RankDataDelegate;
|
|
hallOfFame: GamePrisma.HallOfFameDelegate;
|
|
gameHistory: GamePrisma.GameHistoryDelegate;
|
|
oldNation: GamePrisma.OldNationDelegate;
|
|
oldGeneral: GamePrisma.OldGeneralDelegate;
|
|
emperor: GamePrisma.EmperorDelegate;
|
|
generalTurn: GamePrisma.GeneralTurnDelegate;
|
|
nationTurn: GamePrisma.NationTurnDelegate;
|
|
troop: GamePrisma.TroopDelegate;
|
|
logEntry: GamePrisma.LogEntryDelegate;
|
|
inheritancePoint: GamePrisma.InheritancePointDelegate;
|
|
inheritanceLog: GamePrisma.InheritanceLogDelegate;
|
|
inheritanceResult: GamePrisma.InheritanceResultDelegate;
|
|
inheritanceUserState: GamePrisma.InheritanceUserStateDelegate;
|
|
inputEvent: GamePrisma.InputEventDelegate;
|
|
}
|