/** * Логика «цепочки» теста: попытки и версии (см. docs/revision_task/card1.md V.2). * @param {import('pg').Pool | { query: Function }} pool пул или объект с методом query(sql, params) * @param {string} testId UUID теста (tests.id) * @returns {Promise} true, если по любой версии этой цепочки есть хотя бы одна попытка */ export async function hasAnyAttemptForTest(pool, testId) { const { rows } = await pool.query( `SELECT EXISTS ( SELECT 1 FROM test_attempts ta INNER JOIN test_versions tv ON ta.test_version_id = tv.id WHERE tv.test_id = $1 ) AS has_any`, [testId] ); return rows[0].has_any === true; }