feat: 移植截图中心后端(索引/分组/编辑保存)
Sync source to CNB / Sync Git ref (push) Has been cancelled

This commit is contained in:
AxTps committed 2026-10-01 21:08:57 +08:00
1 parent e646598078
commit ead5d96b78
13 files changed
+1829 -1

No files matched your search

@@ -0,0 +1,38 @@
-- Screenshot center: unified index of per-instance screenshots plus
-- user-defined groups. Ported from the Axolotl implementation, trimmed of
-- the instance-sync / game-options tables that Starlight does not use.
CREATE TABLE screenshots (
id TEXT NOT NULL PRIMARY KEY,
instance_id TEXT NOT NULL,
file_name TEXT NOT NULL,
content_hash TEXT NOT NULL,
file_size INTEGER NOT NULL,
modified_at INTEGER NOT NULL,
created_at INTEGER NOT NULL,
editor_state TEXT,
UNIQUE (instance_id, file_name),
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
);
CREATE INDEX screenshots_instance_id ON screenshots(instance_id);
CREATE INDEX screenshots_instance_hash ON screenshots(instance_id, content_hash, file_size);
CREATE TABLE screenshot_groups (
id TEXT NOT NULL PRIMARY KEY,
name TEXT NOT NULL,
display_order INTEGER NOT NULL DEFAULT 0,
CHECK (length(trim(name)) > 0)
);
CREATE INDEX screenshot_groups_display_order ON screenshot_groups(display_order);
CREATE TABLE screenshot_group_memberships (
screenshot_id TEXT NOT NULL PRIMARY KEY,
group_id TEXT NOT NULL,
FOREIGN KEY (screenshot_id) REFERENCES screenshots(id) ON DELETE CASCADE,
FOREIGN KEY (group_id) REFERENCES screenshot_groups(id) ON DELETE CASCADE
);
CREATE INDEX screenshot_group_memberships_group_id ON screenshot_group_memberships(group_id);
ALTER TABLE settings ADD COLUMN show_screenshots_tab_in_instances INTEGER NOT NULL DEFAULT FALSE CHECK (show_screenshots_tab_in_instances IN (0, 1));