feat: add managed ISAC image library

This commit is contained in:
JB
2026-07-26 13:46:44 -04:00
parent e8ed35e35f
commit 63b04d26a9
25 changed files with 705 additions and 57 deletions
+19
View File
@@ -240,6 +240,7 @@ INSERT OR IGNORE INTO permissions(id,name,description) VALUES('permission-audit-
INSERT OR IGNORE INTO permissions(id,name,description) VALUES('permission-audit-revert','audit.revert','Attempt confirmed compensating reversals of supported ISAC audit events');
INSERT OR IGNORE INTO permissions(id,name,description) VALUES('permission-metrics-view','metrics.view','View read-only application, runtime, and database health metrics');
INSERT OR IGNORE INTO permissions(id,name,description) VALUES('permission-system-notifications-manage','system.notifications.manage','View and edit automated ISAC system notification messages');
INSERT OR IGNORE INTO permissions(id,name,description) VALUES('permission-images-manage','images.manage','View, upload, rename, tag, and categorize managed image assets');
INSERT OR IGNORE INTO permissions(id,name,description) VALUES('permission-avatars-review','avatars.review','Review and remove custom user avatars');
INSERT OR IGNORE INTO role_permissions(role_id,permission_id) VALUES('role-data-editor','permission-isac-access');
INSERT OR IGNORE INTO role_permissions(role_id,permission_id) VALUES('role-data-editor','permission-data-manage');
@@ -783,3 +784,21 @@ CREATE TABLE IF NOT EXISTS game_data_icons (
updated_at TEXT NOT NULL,
PRIMARY KEY(entity_type, entity_id)
);
CREATE TABLE IF NOT EXISTS managed_images (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
category TEXT NOT NULL,
tags_json TEXT NOT NULL DEFAULT '[]',
is_icon INTEGER NOT NULL DEFAULT 0 CHECK(is_icon IN (0,1)),
force_white INTEGER NOT NULL DEFAULT 0 CHECK(force_white IN (0,1)),
storage_key TEXT NOT NULL UNIQUE,
original_filename TEXT NOT NULL,
byte_size INTEGER NOT NULL CHECK(byte_size > 0),
width INTEGER NOT NULL CHECK(width > 0),
height INTEGER NOT NULL CHECK(height > 0),
created_by TEXT NOT NULL REFERENCES users(id),
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE UNIQUE INDEX IF NOT EXISTS managed_images_name_nocase_idx ON managed_images(name COLLATE NOCASE);
CREATE INDEX IF NOT EXISTS managed_images_category_idx ON managed_images(category);