merge: feat/templates-all-industries(새 템플릿 전 업종) 을 main 에 병합
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
8219d3f45e
@ -66,7 +66,12 @@ HTML 안에 있고 보이는 묶음만 바뀐다. 검색엔진은 네 묶음을
|
||||
거의 없는 집을 위한 것이라, 첫 화면과 객실 카드를 그림으로 채운다.
|
||||
|
||||
업종마다 쓸 수 있는 템플릿과 기본 템플릿은 같은 파일의 `industries`에 적는다. 숙박은 레트로가
|
||||
기본이고, 병원은 심플과 매거진만 쓸 수 있다.
|
||||
기본이다. 새 템플릿 8종(라운드 ~ 솔숲)은 네 업종 모두 쓸 수 있다. 병원은 그 밖에 심플과
|
||||
매거진만 쓴다(고택·레트로는 숙박·음식점 느낌이 강해 뺐다).
|
||||
|
||||
★ 새 템플릿은 숙박 기준으로 만들었다. 숙박이 아니면 객실 자리가 메뉴·시술로 바뀌고
|
||||
(`kit/unitWord.ts`, `UNIT_SPEC`), 객실별 '예약 요청' 버튼은 숨긴다 — 예약 시트가 숙박에만
|
||||
있어서 누르면 아무 일도 안 일어났다.
|
||||
|
||||
### 뼈대(레이아웃)는 필요한 것만 바꾼다
|
||||
|
||||
|
||||
39
solution/backend/services/activity_feed.py
Normal file
39
solution/backend/services/activity_feed.py
Normal file
@ -0,0 +1,39 @@
|
||||
"""크롤링 · 사진 분석 · 빌드 진행 이벤트를 Teams 로 보낸다."""
|
||||
from common.enums import LinkChannel, PlaceCategory
|
||||
from services import alert_service
|
||||
|
||||
KIND = "activity"
|
||||
|
||||
_CHANNEL_NAMES = {
|
||||
LinkChannel.YANOLJA.value: "야놀자",
|
||||
LinkChannel.GOODCHOICE.value: "여기어때",
|
||||
LinkChannel.NAVER_PLACE.value: "네이버 플레이스",
|
||||
LinkChannel.INSTAGRAM.value: "인스타그램",
|
||||
LinkChannel.OFFICIAL_SITE.value: "홈페이지",
|
||||
LinkChannel.BLOG.value: "블로그",
|
||||
LinkChannel.NAVER_BOOKING.value: "네이버 예약",
|
||||
LinkChannel.ETC.value: "기타",
|
||||
}
|
||||
|
||||
_CATEGORY_NAMES = {
|
||||
PlaceCategory.LODGING.value: "숙박",
|
||||
PlaceCategory.CAFE.value: "카페",
|
||||
PlaceCategory.RESTAURANT.value: "음식점",
|
||||
PlaceCategory.CLINIC.value: "피부과·성형외과",
|
||||
}
|
||||
|
||||
|
||||
def channel_name(code) -> str:
|
||||
return _CHANNEL_NAMES.get(code, f"채널{code}")
|
||||
|
||||
|
||||
def category_name(code) -> str:
|
||||
return _CATEGORY_NAMES.get(code, f"업종{code}")
|
||||
|
||||
|
||||
def place_label(place) -> str:
|
||||
return f"{place.name}({category_name(place.category)})"
|
||||
|
||||
|
||||
async def post(title: str, lines: list[str]) -> None:
|
||||
await alert_service.send_alert(KIND, title, "\n\n".join(line for line in lines if line))
|
||||
12
solution/site/src/layouts/kit/unitWord.ts
Normal file
12
solution/site/src/layouts/kit/unitWord.ts
Normal file
@ -0,0 +1,12 @@
|
||||
import {PlaceCategory} from '@o2o/shared';
|
||||
|
||||
const WORD: Record<number, string> = {
|
||||
[PlaceCategory.LODGING]: 'Room',
|
||||
[PlaceCategory.CAFE]: 'Menu',
|
||||
[PlaceCategory.RESTAURANT]: 'Menu',
|
||||
[PlaceCategory.CLINIC]: 'Program',
|
||||
};
|
||||
|
||||
export function unitWord(category: number): string {
|
||||
return WORD[category] ?? 'Menu';
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user