feat: keep every brick by brick save before it is split into models

The save is stored as the client sent it in the new ugc_unsplit table, and each model split from it points back to it (ugc.unsplit_id), so the whole build can be looked at or restored later. A save is kept while any model split from it exists: deleting models removes saves no model points to any more, and deleting a character removes its saves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-10-16 20:46:33 -05:00
parent f871261b16
commit b579344482
12 changed files with 77 additions and 13 deletions

View File

@@ -0,0 +1,11 @@
-- Every brick by brick save as the client sent it (sd0), before the server splits it into one model per group of
-- connected bricks; each model made from it points back to it
CREATE TABLE IF NOT EXISTS ugc_unsplit (
id BIGINT NOT NULL PRIMARY KEY,
account_id INT NOT NULL REFERENCES accounts(id),
character_id BIGINT NOT NULL REFERENCES charinfo(id),
lxfml MEDIUMBLOB NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE ugc ADD COLUMN unsplit_id BIGINT NULL DEFAULT NULL;