-- ===================================================================== -- Server-authoritative Cyberhack: сервер сам генерирует доску/цели игры -- (см. src/modules/users/cyberhack.rs — портированная 1:1 логика из -- Cyberhack/src/lib.rs), хранит их здесь и при сдаче результата реплеит -- присланный клиентом путь по своей копии, а не доверяет присланному score. -- `used_at` защищает от повторной сдачи одной и той же сессии (двойная награда). -- ===================================================================== CREATE TABLE hack_sessions ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE, matrix JSONB NOT NULL, targets JSONB NOT NULL, base_value INT NOT NULL, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), expires_at TIMESTAMPTZ NOT NULL, used_at TIMESTAMPTZ ); CREATE INDEX idx_hack_sessions_user ON hack_sessions(user_id);