refactor: remove persister abstraction layer
Some checks failed
CI / Deploy / test (pull_request) Successful in 8s
CI / Deploy / lint (pull_request) Failing after 46s
CI / Deploy / deploy (pull_request) Has been skipped

Inline persistence logic directly into game stores and handlers:
- game/persist.go: DB mapping methods on GameStore and GameInstance
- snake/persist.go: DB mapping methods on SnakeStore and SnakeGameInstance
- Chat persistence inlined into c4game handlers
- Delete db/persister.go (GamePersister, SnakePersister, ChatPersister)
- Stores now take *repository.Queries directly instead of Persister interface
This commit is contained in:
Ryan Hamamura
2026-03-02 12:30:33 -10:00
parent 8c3b3fc6ea
commit 2aa026b1d5
10 changed files with 475 additions and 448 deletions

View File

@@ -61,16 +61,16 @@ func (si *SnakeGameInstance) countdownPhase() {
si.initGame()
si.game.Status = StatusInProgress
if si.persister != nil {
si.persister.SaveSnakeGame(si.game)
if si.queries != nil {
si.saveSnakeGame(si.game)
}
si.gameMu.Unlock()
si.notify()
return
}
if si.persister != nil {
si.persister.SaveSnakeGame(si.game)
if si.queries != nil {
si.saveSnakeGame(si.game)
}
si.gameMu.Unlock()
si.notify()
@@ -123,8 +123,8 @@ func (si *SnakeGameInstance) gamePhase() {
// Inactivity timeout
if time.Since(lastInput) > inactivityLimit {
si.game.Status = StatusFinished
if si.persister != nil {
si.persister.SaveSnakeGame(si.game)
if si.queries != nil {
si.saveSnakeGame(si.game)
}
si.gameMu.Unlock()
si.notify()
@@ -195,8 +195,8 @@ func (si *SnakeGameInstance) gamePhase() {
si.game.Status = StatusFinished
}
if si.persister != nil {
si.persister.SaveSnakeGame(si.game)
if si.queries != nil {
si.saveSnakeGame(si.game)
}
si.gameMu.Unlock()