(taskId: string, skillId: string, relation: TaskSkillRelation, versionAt: number)
| 1972 | // ─── Task-Skill Links ─── |
| 1973 | |
| 1974 | linkTaskSkill(taskId: string, skillId: string, relation: TaskSkillRelation, versionAt: number): void { |
| 1975 | const skillExists = this.db.prepare("SELECT 1 FROM skills WHERE id = ?").get(skillId); |
| 1976 | if (!skillExists) return; |
| 1977 | const taskExists = this.db.prepare("SELECT 1 FROM tasks WHERE id = ?").get(taskId); |
| 1978 | if (!taskExists) return; |
| 1979 | this.db.prepare(` |
| 1980 | INSERT OR REPLACE INTO task_skills (task_id, skill_id, relation, version_at, created_at) |
| 1981 | VALUES (?, ?, ?, ?, ?) |
| 1982 | `).run(taskId, skillId, relation, versionAt, Date.now()); |
| 1983 | } |
| 1984 | |
| 1985 | getSkillsByTask(taskId: string): Array<{ skill: Skill; relation: TaskSkillRelation; versionAt: number }> { |
| 1986 | const rows = this.db.prepare(` |
no test coverage detected