18 lines
615 B
SQL
18 lines
615 B
SQL
CREATE TABLE osint.assets (
|
|
id TEXT PRIMARY KEY,
|
|
level_id TEXT NOT NULL REFERENCES osint.levels(id) ON DELETE CASCADE,
|
|
original_name TEXT NOT NULL,
|
|
mime_type TEXT NOT NULL,
|
|
byte_size BIGINT NOT NULL CHECK (byte_size >= 0),
|
|
content BYTEA NOT NULL,
|
|
checksum_sha256 TEXT NOT NULL,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX assets_level_idx ON osint.assets(level_id, created_at);
|
|
|
|
ALTER TABLE osint.widgets
|
|
ADD COLUMN asset_id TEXT REFERENCES osint.assets(id) ON DELETE SET NULL;
|
|
|
|
COMMENT ON TABLE osint.assets IS 'Uploaded source files used by database-backed document widgets';
|