feat(db): bbb_autosave table for the client's BBB autosave

The client sends SetBBBAutosave (996) with the model being built every five
minutes, before an AFK kick and before quitting, and expects the server to
rebuild an unfinished model later (RebuildBBBAutosaveMsg). This keeps the
last one per character with the model items that were in the BBB inventory
at the time. MySQL 82 / SQLite 65; parity test included.

Refs #1632

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-27 04:08:19 -05:00
parent b9d6b739d5
commit 9256b31b23
13 changed files with 187 additions and 1 deletions

View File

@@ -0,0 +1,9 @@
/* The brick by brick model each character was building when their client last sent SetBBBAutosave, and the model items
that were in their BBB inventory at that time. Rebuilt into models when a build ends without a save (see
docs/BuildWorkflow.md). */
CREATE TABLE IF NOT EXISTS bbb_autosave (
character_id BIGINT NOT NULL PRIMARY KEY,
lxfml MEDIUMBLOB NOT NULL,
source_items TEXT NOT NULL,
updated_at BIGINT NOT NULL DEFAULT 0
);

View File

@@ -0,0 +1,7 @@
/* bbb_autosave: see the MySQL migration. */
CREATE TABLE IF NOT EXISTS bbb_autosave (
character_id BIGINT NOT NULL PRIMARY KEY,
lxfml BLOB NOT NULL,
source_items TEXT NOT NULL,
updated_at BIGINT NOT NULL DEFAULT 0
);