o2o-infinith-demo/supporters/scripts/template/data/places.json
Haewon Kam aa5b05227f feat(supporters): 회복 일정 플래너를 템플릿·워커에 통합 (/plan·/en/plan), /recovery·/stay 를 /plan 으로 정리
- 템플릿: Planner.astro, lib/plan.ts·tour.ts, styles/plan.css, planStrings, pages plan·en/plan·404. Base 내비 회복 일정 → /plan, 언어 짝 /plan↔/en/plan, 옛 주소 리다이렉트(vercel.json), 사이트맵
- 워커 planner 단계(recovery 다음): scripts/build_planner_data.mjs 가 업종별 기본 규칙표(scripts/template/planner/procedures.plastic|derm.json)에 병원 시술 페이지 원문(recoveryNotes)을 matchKeywords 로 붙이고, 장소는 briefs/<clinic>/planner.places.json(큐레이션) 또는 범용 기본표(관광공사 기준 좌표)로 만든다
- 브리프: viewclinic·oracle 큐레이션 장소. 빈 템플릿(관광 데이터 없음)도 빌드·검증 통과(plan.test 14건)
- 이전 세션의 미커밋 작업(피부과 수집·OCR·게이트·언어 스위치, stay 페이지 제거)도 이 커밋에 함께 들어감. docs/prd 변경은 제외

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 11:27:59 +09:00

208 lines
5.3 KiB
JSON

{
"_comment": "범용 큐레이션 기본표. 워커 planner 단계가 {CLINIC_KO}/{CLINIC_EN}/{AREA_KO}/{AREA_EN} 치환자를 팩트 시트 값으로 바꾸고 origin 을 관광공사 수집 기준 좌표로 채운다. 병원별 큐레이션(briefs/<clinic>/planner.places.json)이 있으면 이 표 대신 그것을 쓴다. 숙소는 관광공사 데이터가 맡는다.",
"origin": {
"label": {
"ko": "{CLINIC_KO}",
"en": "{CLINIC_EN}"
},
"lat": 0,
"lng": 0
},
"categories": {
"sightseeing": {
"ko": "관광",
"en": "Sightseeing"
},
"shopping": {
"ko": "쇼핑",
"en": "Shopping"
},
"food": {
"ko": "미식",
"en": "Food"
},
"kpop": {
"ko": "K-pop·핫플",
"en": "K-pop & hotspots"
},
"care": {
"ko": "휴식·케어",
"en": "Rest & care"
},
"essentials": {
"ko": "생활",
"en": "Essentials"
},
"hotel": {
"ko": "숙소",
"en": "Hotels"
}
},
"places": [
{
"id": "pharmacy",
"name": {
"ko": "{AREA_KO} 주변 약국",
"en": "Pharmacies near {AREA_EN}"
},
"category": "essentials",
"minLevel": 1,
"distanceKm": 0.2,
"indoor": true,
"area": {
"ko": "{AREA_KO}",
"en": "{AREA_EN}"
},
"note": {
"ko": "처방약과 냉찜질 팩을 구할 수 있습니다.",
"en": "Prescriptions and cold packs."
},
"mapQuery": "약국 {AREA_KO}",
"verify": true
},
{
"id": "convenience",
"name": {
"ko": "편의점 ({AREA_KO} 일대)",
"en": "Convenience stores ({AREA_EN})"
},
"category": "essentials",
"minLevel": 1,
"distanceKm": 0.1,
"indoor": true,
"area": {
"ko": "{AREA_KO}",
"en": "{AREA_EN}"
},
"note": {
"ko": "생수, 죽, 빨대, 얼음을 24시간 살 수 있습니다.",
"en": "Water, porridge, straws and ice, 24 hours."
},
"mapQuery": "편의점 {AREA_KO}",
"verify": true
},
{
"id": "porridge",
"name": {
"ko": "죽 전문점 (본죽 등 체인)",
"en": "Korean porridge (Bonjuk and similar chains)"
},
"category": "food",
"minLevel": 1,
"distanceKm": 0.5,
"indoor": true,
"area": {
"ko": "{AREA_KO}",
"en": "{AREA_EN}"
},
"note": {
"ko": "유동식·부드러운 식사 단계에서 먹을 수 있는 죽을 배달과 포장으로 받을 수 있습니다.",
"en": "Porridge for the liquid and soft-food stages, by delivery or takeout."
},
"mapQuery": "본죽 {AREA_KO}",
"verify": true,
"dietOk": [
"liquid",
"soft",
"mild",
"normal"
]
},
{
"id": "smoothie",
"name": {
"ko": "스무디·주스 카페 ({AREA_KO})",
"en": "Smoothie and juice cafes ({AREA_EN})"
},
"category": "food",
"minLevel": 1,
"distanceKm": 0.4,
"indoor": true,
"area": {
"ko": "{AREA_KO}",
"en": "{AREA_EN}"
},
"note": {
"ko": "빨대로 마실 수 있는 메뉴가 많습니다. 뜨겁지 않은 것으로 고르세요.",
"en": "Straw-friendly options. Choose nothing hot."
},
"mapQuery": "스무디 카페 {AREA_KO}",
"verify": true,
"dietOk": [
"liquid",
"soft",
"mild",
"normal"
]
},
{
"id": "soup",
"name": {
"ko": "설렁탕·곰탕 ({AREA_KO} 일대)",
"en": "Beef bone soup ({AREA_EN})"
},
"category": "food",
"minLevel": 1,
"distanceKm": 0.6,
"indoor": true,
"area": {
"ko": "{AREA_KO}",
"en": "{AREA_EN}"
},
"note": {
"ko": "국물 위주라 부드러운 음식 단계부터 가능합니다.",
"en": "Broth-based, fine from the soft-food stage."
},
"mapQuery": "설렁탕 {AREA_KO}",
"verify": true,
"dietOk": [
"soft",
"mild",
"normal"
]
},
{
"id": "clinic-followup",
"name": {
"ko": "{CLINIC_KO} 경과 확인",
"en": "{CLINIC_EN} follow-up"
},
"category": "care",
"minLevel": 1,
"distanceKm": 0.05,
"indoor": true,
"area": {
"ko": "{AREA_KO}",
"en": "{AREA_EN}"
},
"note": {
"ko": "경과 확인과 관리는 병원 안내에 따라 예약합니다.",
"en": "Follow-up checks and care, booked per the clinic's guidance."
},
"mapQuery": "{CLINIC_KO}",
"verify": true
},
{
"id": "hotel-lounge",
"name": {
"ko": "호텔 스파·라운지 (숙소 안)",
"en": "Hotel spa and lounge (at your hotel)"
},
"category": "care",
"minLevel": 0,
"distanceKm": 0,
"indoor": true,
"area": {
"ko": "{AREA_KO}",
"en": "{AREA_EN}"
},
"note": {
"ko": "사우나와 마사지는 담당 원장이 허용하기 전에는 피하고 라운지와 룸서비스만 이용하세요.",
"en": "Skip sauna and massage until your doctor allows. Lounge and room service are fine."
},
"mapQuery": null,
"verify": true
}
]
}