"""Aggregated curated bank for 安全每日一题 (security daily quiz). Content lives per category-group under ``seedbank/`` (authored/reviewed independently); this module concatenates them and dedupes by prompt. Inserted idempotently by migration 417 (existing questions are skipped), so the same curated bank converges across every environment without disturbing questions admins have since edited. Each entry: prompt / options (4, keyed A–D) / correct_key / explanation / category / qtype. Every "correct" answer is genuine security best practice. """ from __future__ import annotations from app.domains.security_quiz.seedbank import ( secquiz_network_device_physical_general, secquiz_password_account_data, secquiz_phishing_malware, ) def _assemble() -> list[dict]: seen: set[str] = set() merged: list[dict] = [] for mod in ( secquiz_phishing_malware, secquiz_password_account_data, secquiz_network_device_physical_general, ): for q in mod.QUESTIONS: p = q["prompt"] if p in seen: continue seen.add(p) merged.append(q) return merged SECQUIZ_SEED: list[dict] = _assemble() __all__ = ["SECQUIZ_SEED"]