o2o-site-AEO/solution/backend/services/weather_notes.json
Mina Choi 872d00f3c4 [feat] solution: 미니 블로그·이용후기·예약요청 추가, /s/stay 목업·발행 사이트 UI 다수 수정
인앱 미니 블로그(AI 자동 포스트, 이메일 승인)·이용후기(즉시 게시)·예약 요청(메일 발송)을
새로 붙였고, 병행해서 /s/stay 목업과 발행 사이트 공통 렌더러(UnitsSection·FestivalSection·
LocalGuideSection·WeatherSection 등)의 UI 버그를 다수 고쳤다. 범위가 넓지만 한 주 분량
작업을 한 커밋으로 묶어 달라는 요청에 따라 하나로 묶는다.

- solution/backend: post/review/booking_request 라우터·서비스·CRUD 추가, 스케줄러에
  블로그 초안 생성(새벽 4:10)·발송(아침 9:00) cron 등록, 마이그레이션 4건 추가
- solution/frontend, admin/frontend: 생성된 API 클라이언트 갱신, 리뷰 모더레이션·
  블로그 글 관리 페이지 추가
- solution/site/src: 객실 상세+실시간예약(날짜선택·연락처 폼)을 모달로 통합, 축제·
  주변안내 카드 클릭 시 모달 전환, 후기 목록 카드 UI, 공용 Modal 컴포넌트 신설,
  날씨 문구 동기화 버그 수정(하늘줄·기온줄 한 타이머로), 시설·편의 가능/불가 아이콘
  색상 하이라이트, 헤더 메뉴 순서를 실제 섹션 순서에 맞춤, 하단 탭바 아이콘 정렬 버그
  (line-height) 수정, 추천일정 점선 연결+데스크톱 자동펼침/모바일 축소, 채널 라벨에
  크롤링 원문("NOL")이 새던 것을 bookingLabel() 로 교체
- solution/site/scripts/mockup: /s/stay 패치 스크립트·주입 CSS·JS 다수 수정, stay4~6
  빌드 스크립트 추가(다른 세션 작업)

테스트: solution/site `npx tsc --noEmit` 통과, `npx vitest run` 93 passed,
solution/backend `pytest tests/test_booking_request.py` 6 passed(로컬 DB 대상).
예약 요청 메일은 실제 발송까지 확인(place 66894a1b 소유자 이메일 누락을 DB에서 보정).
2026-09-18 09:03:18 +09:00

105 lines
6.0 KiB
JSON

{
"sky": {
"맑음": [
"맑은 날에는 잠깐 쉬어 가며 오늘 담은 사진을 골라 보세요.",
"분주했던 걸음을 멈추고 느긋하게 쉬어 가도 좋겠습니다.",
"오늘 기억하고 싶은 장면을 한 줄 남겨 보세요.",
"다음 일정을 서두르기보다 잠시 여유를 가져 보세요.",
"좋아하는 책 몇 장을 넘기며 쉬어 가는 건 어떨까요?"
],
"구름많음": [
"구름이 많은 날에는 실내에서 다음 일정을 천천히 골라 보세요.",
"여행 사진을 정리하며 잠깐 쉬어 가세요.",
"함께 온 사람과 오늘 가장 좋았던 순간을 이야기해 보세요.",
"바깥 일정 사이에 여유로운 휴식 시간을 넣어 보세요.",
"오늘의 기분을 짧은 글로 남겨도 좋겠습니다."
],
"흐림": [
"흐린 날에는 실내에서 느긋하게 쉬어 가도 좋겠습니다.",
"잠깐 책을 읽으며 다음 일정을 기다려 보세요.",
"바깥 풍경 대신 오늘 나눈 이야기에 집중해 보세요.",
"천천히 쉬면서 돌아갈 때 가져갈 추억을 골라 보세요.",
"분주한 일정 사이에 조용한 휴식을 끼워 넣어 보세요."
],
"비": [
"비가 오는 동안에는 실내에서 쉬며 일정을 조정해 보세요.",
"서두르지 말고 비가 잦아드는지 확인한 뒤 움직이세요.",
"빗소리를 들으며 읽고 싶었던 글을 펼쳐 보세요.",
"젖은 물건을 정리하고 잠깐 쉬어 가세요.",
"바깥 일정 대신 함께 찍은 사진을 나눠 봐도 좋겠습니다."
],
"눈": [
"눈 오는 날에는 실내에서 쉬며 바깥 상황을 살펴보세요.",
"다음 이동을 서두르지 말고 쉬어 가세요.",
"따뜻하게 머물며 오늘의 여행을 한 줄 남겨 보세요.",
"실내에서 다음 일정과 이동편을 확인해 보세요.",
"눈길을 나서기 전에는 여유 있게 준비하세요."
],
"안개": [
"안개가 낮게 깔린 아침입니다. 서두르지 말고 천천히 나서 보세요.",
"시야가 흐린 날에는 가까운 곳부터 둘러보는 편이 좋습니다.",
"안개 걷히는 시간을 기다리며 느긋하게 아침을 보내 보세요.",
"운전하신다면 평소보다 여유 있게 출발하시길 권합니다.",
"뿌연 공기 너머로 보이는 풍경도 오늘만의 그림입니다."
],
"이슬비": [
"가는 비가 내립니다. 우산 하나면 산책에 무리가 없습니다.",
"빗방울이 약해 걷기에는 오히려 조용하고 좋은 날입니다.",
"얇은 겉옷 하나 챙기시면 이슬비 정도는 걱정 없습니다.",
"젖은 길이 미끄러울 수 있으니 편한 신발을 권합니다.",
"빗소리가 작게 깔리는 날, 실내에서 쉬어 가기도 좋습니다."
],
"소나기": [
"소나기가 지나가는 중입니다. 잠시 기다리면 금세 갭니다.",
"갑자기 쏟아질 수 있으니 우산을 꼭 챙겨 나가세요.",
"비가 그친 뒤 공기가 가장 맑습니다. 그때를 노려 보세요.",
"지금은 실내에 머물다가 하늘이 열리면 나서는 편이 좋습니다.",
"짧고 굵게 지나가는 비입니다. 일정을 통째로 바꾸실 필요는 없습니다."
],
"뇌우": [
"천둥번개가 치고 있습니다. 실외 활동은 잠시 미뤄 주세요.",
"비바람이 강합니다. 오늘은 실내에서 쉬어 가시길 권합니다.",
"번개가 잦을 때는 높은 곳과 물가를 피하는 편이 안전합니다.",
"날이 거칩니다. 이동 계획이 있다면 시간을 넉넉히 잡으세요.",
"궂은 날씨가 지나가면 하늘이 크게 열립니다. 조금만 기다려 보세요."
]
},
"temperature": {
"혹서": [
"더위가 강한 시간에는 바깥 이동을 줄이고 실내 위주로 일정을 잡아 보세요.",
"한낮 산책은 짧게 하고 충분히 쉬어 가세요.",
"외출 전 기상특보와 방문할 곳의 운영 여부를 확인하세요.",
"다음 장소로 이동할 때에는 쉴 시간을 넉넉히 두세요.",
"긴 야외 일정은 미루고 가까운 동선부터 살펴보세요."
],
"더움": [
"바깥 일정 사이에 실내에서 쉬는 시간을 넣어 보세요.",
"외출할 때에는 물을 챙기고 무리한 이동은 줄이세요.",
"주변을 둘러보더라도 한 번에 오래 걷지는 마세요.",
"방문할 곳의 운영 시간을 먼저 확인하고 이동하세요.",
"더위가 느껴지면 일정을 줄이고 쉬어 가세요."
],
"선선": [
"비나 눈이 없다면 주변을 가볍게 둘러보는 건 어떨까요?",
"날씨와 이동 경로를 확인하고 짧은 산책을 계획해 보세요.",
"바깥 일정을 잡기 전에 방문할 곳의 운영 여부를 확인하세요.",
"편한 신발을 챙기고 자신의 속도로 동네를 둘러보세요.",
"비가 오지 않는다면 일정 사이에 잠깐 걸어 보세요."
],
"쌀쌀": [
"외출할 때에는 걸칠 옷을 챙겨 보세요.",
"바깥에 오래 머물기보다 쉬어 갈 곳을 함께 정해 두세요.",
"일교차에 대비해 옷차림을 조절하세요.",
"이동 경로를 짧게 잡고 실내 일정도 함께 살펴보세요.",
"돌아오는 시간의 기온도 확인한 뒤 외출하세요."
],
"추움": [
"따뜻한 옷을 챙기고 바깥 이동은 짧게 잡아 보세요.",
"찬 바람을 피할 수 있는 실내 일정을 살펴보세요.",
"출발 전 눈이나 결빙으로 이동이 어려운 곳은 없는지 확인하세요.",
"야외에 오래 머무르지 않도록 쉬는 시간을 충분히 두세요.",
"방문할 곳의 운영 여부를 확인하고 따뜻하게 준비하세요."
]
}
}