This commit is contained in:
@@ -29,6 +29,9 @@ CREATE TABLE IF NOT EXISTS tasks (
|
||||
nft_prompt_instructions TEXT NOT NULL DEFAULT '',
|
||||
nft_negative_prompt TEXT NOT NULL DEFAULT '',
|
||||
nft_style_reference TEXT NOT NULL DEFAULT '',
|
||||
retire_after_completion INTEGER NOT NULL DEFAULT 0,
|
||||
artifact_owner_client_id TEXT REFERENCES clients(id),
|
||||
artifact_origin TEXT NOT NULL DEFAULT 'win',
|
||||
created_at INTEGER NOT NULL,
|
||||
completed_at INTEGER,
|
||||
winner_client_id TEXT REFERENCES clients(id),
|
||||
@@ -45,6 +48,19 @@ CREATE TABLE IF NOT EXISTS tasks (
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS tasks_status_created_idx ON tasks(status, created_at);
|
||||
|
||||
-- Current collectible ownership is separate from historical winner provenance.
|
||||
-- Transfers keep the original winner fields untouched and are audit logged here.
|
||||
CREATE TABLE IF NOT EXISTS artifact_transfers (
|
||||
id TEXT PRIMARY KEY,
|
||||
task_id TEXT NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
|
||||
from_client_id TEXT REFERENCES clients(id) ON DELETE SET NULL,
|
||||
to_client_id TEXT NOT NULL REFERENCES clients(id),
|
||||
reason TEXT NOT NULL DEFAULT '',
|
||||
created_at INTEGER NOT NULL
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS artifact_transfers_task_idx ON artifact_transfers(task_id, created_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS artifact_transfers_to_idx ON artifact_transfers(to_client_id, created_at DESC);
|
||||
|
||||
-- False guesses are intentionally not persisted. This table only keeps the
|
||||
-- aggregate state needed for the 3D map, ranking, rate limiting and next seq.
|
||||
CREATE TABLE IF NOT EXISTS task_points (
|
||||
|
||||
Reference in New Issue
Block a user