// Stub seed loader used by both seed_importer_test and catalog_repository_test. // 1 row per catalog (minimal but schema-valid). const protocolsStub = ''' [ { "id": "morning_sunlight", "category": "light_circadian", "title": "아침 햇빛", "what": "기상 후 햇빛.", "when": "기상 후 30~60분.", "dose": "5~10분.", "why": "ipRGC 자극.", "how": ["나간다", "쳐다본다"], "check": "60분 이내 외출", "reference_ids": ["ref_x"], "source_doc": "huberman-protocols.md" } ] '''; const breakProtocolsStub = ''' [ { "id": "alcohol", "category": "alcohol", "title": "음주", "huberman_summary": "ep 86", "phases": [{"week": 1, "what": "환경 정리"}], "default_common_frames": ["dopamine_reset"] } ] '''; const commonFramesStub = ''' [ { "id": "dopamine_reset", "title": "도파민 리셋", "what": "30일 절제", "why": "수용체 회복", "check": "30일 무자극" } ] '''; const methodologiesStub = ''' [ { "id": "atomic_habits", "name": "Atomic Habits", "originator": "James Clear", "one_line_definition": "1% 개선", "core_unit": "1회 행동", "huberman_fit_score": 5, "is_core_engine": true } ] '''; const framePatternsStub = ''' [ { "id": "fp_alcohol", "domain": "drink", "avoidance_keyword": "술 끊기", "l0_example": "술 끊기", "l2_suggestion": "저녁엔 무알콜", "l3_identity": "맑은 정신 추구" } ] '''; const rewardMenuItemsStub = ''' [ { "id": "rmi_walk", "tier_recommended": "T1", "title": "산책 30분" } ] '''; const referencesStub = ''' [ { "id": "ref_x", "kind": "url", "title": "Sample", "url": "https://example.com" } ] '''; const dietPatternsStub = ''' [ { "id": "med", "name": "지중해 식단", "core": "올리브유 + 채소 + 생선 위주의 전통 식단.", "evidence_strength": "strong" } ] '''; Future testStubLoader(String path) async { switch (path) { case 'assets/seed/protocols.json': return protocolsStub; case 'assets/seed/break_protocols.json': return breakProtocolsStub; case 'assets/seed/common_frames.json': return commonFramesStub; case 'assets/seed/methodologies.json': return methodologiesStub; case 'assets/seed/frame_patterns.json': return framePatternsStub; case 'assets/seed/reward_menu_items.json': return rewardMenuItemsStub; case 'assets/seed/references.json': return referencesStub; case 'assets/seed/diet_patterns.json': return dietPatternsStub; } throw StateError('unexpected asset: $path'); }